2017-04-26 19 views
0

所有する別のawsアカウントからS3バケットのリソースにアクセスするには、クロスアカウントロールを作成する必要があります。S3クロスアカウントアクセス(ロール付き)

私は、アクセスまたは秘密鍵を使用せずにクロスアカウントのIAMの役割を使用してこれを実装するのを手伝ってください。アカウントBでの役割

  • バケツBに関連付けられているアカウントAでアカウントA
  • インスタンスAで

    • ロールA

    あなたが望む:

  • 答えて

    1

    のは、あなたが持っているとしましょうインスタンスA上のアプリケーションがバケットBのコンテンツにアクセスできるようにする。

    Request Information That You Can Use for Policy Variablesのドキュメントを含むaws:useridのさまざまな値を示す表があります。

    Amazon EC2インスタンスに割り当てられ役割については、それがためrole-id:ec2-instance-id

    に設定されているが、あなたは役割のIDを使用することができアクセスを許可するAmazon EC2インスタンスに関連付けられたロール、またはインスタンスID。例えば

    は、このバケットポリシーは役割IDに基づいている:ロールIDを取得するには

    { 
        "Version": "2012-10-17", 
        "Statement": [ 
         { 
          "Sid": "SID123", 
          "Effect": "Allow", 
          "Action": [ 
           "s3:*" 
          ], 
          "Resource": [ 
           "arn:aws:s3:::MYBUCKET", 
           "arn:aws:s3:::MYBUCKET/*" 
          ], 
          "Principal": "*", 
          "Condition": { 
           "StringLike": { 
            "aws:userid": [ 
             "AROAIIPEUJOUGITIU5BB6*" 
            ] 
           } 
          } 
         } 
        ] 
    } 
    

    、使用:

    aws iam get-role --role-name ROLENAME 
    

    このバケットポリシーはインスタンスに基づいていますID

    { 
        "Version": "2012-10-17", 
        "Statement": [ 
         { 
          "Sid": "SID123", 
          "Effect": "Allow", 
          "Action": [ 
           "s3:*" 
          ], 
          "Resource": [ 
           "arn:aws:s3:::MYBUCKET", 
           "arn:aws:s3:::MYBUCKET/*" 
          ], 
          "Principal": "*", 
          "Condition": { 
           "StringLike": { 
            "aws:userid": [ 
             "AROAIIPEUJOUGITIU5BB6*" 
            ] 
           } 
          } 
         } 
        ] 
    } 
    

    インスタンスIDはインスタンスに残されますが、新しいインスタンスが起動されると、同じAmazonマシンイメージ(AMI)からでもインスタンスIDが割り当てられます。

    もちろん、これらのアクセス許可をs3:*ではなく、s3:GetObjectに制限することをお勧めします。

    (この回答はGranting access to S3 resources based on role nameに基づいています)

    +0

    ありがとうございます。出来た。 – JVA

    関連する問題