AWSとIAMは初めてで、役割と信頼関係を理解しようとしています。
役割が使用される理由、それらを作成する方法、およびそれらの使用例を完全に理解しています。
私が得られないのは、信頼関係のステップです。私が見たほとんどすべてのケースで、それは一対一の関係です。 EC2にはEC2との信頼が必要です。なぜ余分なステップがあるのですか?
EC2インスタンスとS3権限を持つロールを作成すると、なぜそれで十分ではないのですか?
ロールは、設定された期間、特定のアクターに特定の特権を付与するために使用されます。したがって、役割には2つのものが必要です。許可ポリシー(アクセスできるリソースと実行できるアクション)と信頼ポリシー(エンティティが役割を引き受けることができるもの)です。
たとえば、次のCloudFormationスニペットは、S3バケットへのアクセスを許可するポリシー(MyInstanceRole
)を持つロール(MyWritePolicy
)を作成し、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
は1つだけですが、必要に応じて複数(AWSアカウント、IAMユーザー、IAMロール、フェデレーテッドユーザー、または想定ロールユーザー)にすることができます。
更新されたIAMコンソールを使用してAWS IAMロールをより簡単に作成および管理する に便利なブログ投稿があります。