web-dev-qa-db-ja.com

AWS-IAMの役割と信頼関係

AWSとIAMは初めてで、役割と信頼関係を理解し​​ようとしています。

役割が使用される理由、それらを作成する方法、およびそれらの使用例を完全に理解しています。

私が得られないのは、信頼関係のステップです。私が見たほとんどすべてのケースで、それは一対一の関係です。 EC2にはEC2との信頼が必要です。なぜ余分なステップがあるのですか?

EC2インスタンスとS3権限を持つロールを作成すると、なぜそれで十分ではないのですか?

4
MangoGuy

ロールは、設定された期間、特定のアクターに特定の特権を付与するために使用されます。したがって、役割には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ロールをより簡単に作成および管理する に便利なブログ投稿があります。

6
craigcaulfield