Amazon web services 想从其他帐户使用EC2实例配置文件访问S3吗
假设您有两个帐户(A、B) 在帐户A中,您已经创建了一个S3存储桶 在帐户B中,您已经创建了一个EC2实例 如何从帐户B中的EC2实例访问帐户A中的S3存储桶?因此,情况是:Amazon web services 想从其他帐户使用EC2实例配置文件访问S3吗,amazon-web-services,amazon-s3,amazon-ec2,Amazon Web Services,Amazon S3,Amazon Ec2,假设您有两个帐户(A、B) 在帐户A中,您已经创建了一个S3存储桶 在帐户B中,您已经创建了一个EC2实例 如何从帐户B中的EC2实例访问帐户A中的S3存储桶?因此,情况是: 账户A有亚马逊S3存储桶A 帐户B有一个Amazon EC2实例B 您希望从实例B访问Bucket A 最佳实践是通过将IAM角色与EC2实例关联,将凭据分配给Amazon EC2实例。然后,实例上运行的任何应用程序都可以自动访问这些凭据 但是,在这种情况下,还有一个额外的要求,因为帐户B无法分配访问帐户A中资源的权限
- 账户A有亚马逊S3存储桶A
- 帐户B有一个Amazon EC2实例B
- 您希望从实例B访问Bucket A
- 在帐户B中创建一个IAM角色,并将其与实例B关联(正常)
- 将一个Bucket策略添加到向帐户B中的角色授予访问权限(例如
)的Bucket a中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(主体
)中的角色访问帐户A(资源
)中的存储桶
这样,帐户B中使用指定角色启动的任何EC2实例都将被允许从Bucket A获取对象。谢谢您的帮助。但是角色附加到用户而不是ec2实例您提到的“实例配置文件”,它是IAM角色的容器,在启动时传递给ec2实例。这是向EC2实例提供凭据的“正确”方法。除此之外,您可以从帐户B中的IAM凭据设置对帐户A的bucket的跨帐户访问。请参阅前面的链接或。好的,因此我必须将此bucket策略附加到我的bucket。但我应该在附加到实例b的帐户b的角色中包含什么策略?角色b不需要任何权限。事实上,它无法为差异帐户中的资源授予权限。它只是作为向实例B提供凭据的一种方式,并提供ARN(Amazon资源名称),以便Bucket a上的Bucket策略可以引用该角色。这样想吧:我告诉大楼前门的保安(A先生)让B太太进入大楼,保安让她进去。B太太没有这幢大楼的钥匙。相反,建筑警卫(A先生)准许她进入。B太太所需要的只是一个身份证来证明她是谁。