【发布时间】:2017-11-15 15:49:31
【问题描述】:
我想控制对由另一个 AWS 账户创建的对象的访问。我可以通过存储桶策略做到这一点吗? 换句话说,存储桶策略是否适用于其他帐户拥有的对象?
我没有 2 个 AWS 账户,因此无法实际测试此案例。
【问题讨论】:
-
使用 AWS Organizations 创建多个 AWS 账户非常简单。
标签: amazon-web-services amazon-s3
我想控制对由另一个 AWS 账户创建的对象的访问。我可以通过存储桶策略做到这一点吗? 换句话说,存储桶策略是否适用于其他帐户拥有的对象?
我没有 2 个 AWS 账户,因此无法实际测试此案例。
【问题讨论】:
标签: amazon-web-services amazon-s3
没有。
只能通过拥有存储桶/对象的账户来授予对对象的访问权限。
如果您考虑一下,这是有道理的——您不会希望我授予对您对象的访问权限。只有拥有存储桶/对象的帐户才能执行此操作。
【讨论】:
是的,您可以通过创建策略来实现。请在下面找到示例政策,
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "Example permissions",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::AccountB-ID:root"
},
"Action": [
"s3:GetBucketLocation",
"s3:ListBucket"
],
"Resource": [
"arn:aws:s3:::examplebucket"
]
}
]
}
您可以通过 AWS 控制台、CLI 或 API 执行此操作。请在下面找到 CLI 示例,
aws s3 ls s3://examplebucket --profile AccountBadmin
aws s3api get-bucket-location --bucket examplebucket --profile AccountBadmin
请阅读文档here了解更多详情
【讨论】:
x-amz-acl: bucket-owner-full-control 或等效的非标准 ACL 赋予账户 A(存储桶所有者)对对象的完全控制权。