想要使用来自其他帐户的EC2实例配置文件访问S3

时间:2017-09-21 17:55:39

标签: amazon-web-services amazon-s3 amazon-ec2

假设您有2个帐户(A,B)。

在帐户A中,您创建了一个S3存储桶。

在帐户B中,您已创建了EC2实例。

如何从帐户B中的EC2实例访问帐户A中的S3存储桶?

1 个答案:

答案 0 :(得分:1)

所以,情况是:

  • 帐户A具有Amazon S3 Bucket A
  • 帐户B的Amazon EC2 实例B
  • 您想从实例B访问Bucket A

最佳做法是通过将IAM角色与EC2实例相关联将凭据分配给Amazon EC2实例。然后,在实例上运行的任何应用程序都可以自动访问这些凭据。

但是,在这种情况下还有一个额外的要求,因为帐户B无法分配访问帐户A中资源的权限。因此,所需的步骤是:

  • 在帐户B中创建 IAM角色并将其与实例B关联(正常)
  • 向Bucket A添加广告管理政策,以便向帐户B中的角色授予访问权限(例如GetObject

以下是一个示例存储分区策略:

{
  "Id": "CrossAccountAccess",
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "AccessFromRole",
      "Action": [
        "s3:GetObject"
      ],
      "Effect": "Allow",
      "Resource": "arn:aws:s3:::bucket-a",
      "Principal": {
        "AWS": [
          "arn:aws:iam::123456789012:role/role-in-account-b"
        ]
      }
    }
  ]
}

此政策允许帐户B(Principal)中的角色访问帐户A(Resource)中的存储区。

这样,使用指定角色启动的帐户B中的任何EC2实例都将被允许从Bucket A GetObject