Роли используются для предоставления определенных привилегий определенным субъектам на определенный промежуток времени. Итак, для роли нужны две вещи: политика разрешений (к каким ресурсам можно получить доступ и какие действия можно предпринять) и политика доверия (какие объекты могут взять на себя роль).
Например, следующий фрагмент CloudFormation создает роль (MyInstanceRole
) с политикой (MyWritePolicy
), предоставляющей доступ к корзине S3, и позволяет экземплярам EC2 (Principal
, или доверенной части) принять роль:
MyInstanceRole:
Type: AWS::IAM::Role
Properties:
AssumeRolePolicyDocument:
Version: 2012-10-17
Statement:
- Effect: Allow
Action: sts:AssumeRole
Principal:
Service: ec2.amazonaws.com
Path: '/'
RoleName: MyInstanceRole
Policies:
- PolicyName: MyWritePolicy
PolicyDocument:
Version: 2012-10-17
Statement:
- Sid: WriteBackups
Action:
- s3:PutObject
Effect: Allow
Resource: !Join ['', ['arn:aws:s3:::', !Join [ '-', [ 'bucketName', !Ref Environment ] ], '/*' ] ]
Во многих случаях будет только один Principal
, но их может быть несколько (учетная запись AWS, пользователь IAM, роль IAM, федеративный пользователь или пользователь предполагаемой роли).
Есть удобная запись в блоге на Теперь вы можете легко создавать и управлять ролями AWS IAM с обновленной консолью IAM , в которой приведены некоторые дополнительные сведения.