存储桶策略
{
"Version": "2012-10-17",
"Id": "Policy1589032691178",
"Statement": [
{
"Sid": "Stmt1589032265458",
"Effect": "Allow",
"Principal": "*",
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::<BUCKET>/*"
}
]
}
这将允许所有用户读取对象。
附加到 AWS 账户 1 中的用户 ABC 的 IAM 策略
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "VisualEditor0",
"Effect": "Allow",
"Action": "s3:ListBucket",
"Resource": "arn:aws:s3:::<BUCKET>"
},
{
"Sid": "VisualEditor1",
"Effect": "Allow",
"Action": [
"s3:PutObject",
"s3:GetObject",
"s3:DeleteObject"
],
"Resource": "arn:aws:s3:::<BUCKET>/*"
}
]
}
通过此设置,任何人都可以公开读取对象
IAM 策略附加到用户 ABC,因此 ABC 有权访问列表、放置、获取、删除
现在的问题是 如果 AWS 账户 2 中的某人创建用户 XYZ 并附加与上述相同的 IAM 策略 AWS 账户 2 中的 XYZ 用户是否能够列出、获取、放置、删除?
最佳答案
您发布的内容类似于基于资源和 IAM 策略
跨账户访问。
为了允许账户 2 中的用户 XYZ 对账户 1 中的存储桶执行上述操作,除了您为用户 XYZ 指定的策略之外,您还需要在存储桶的策略中为用户 XYZ 指定允许的操作。
另一种方法是允许跨账户 IAM 角色代入,其中账户 2 中的用户可以代入账户 1 中的角色,从而授予对账户 1 中 S3 存储桶的所需访问权限。
更多信息和示例可以在 https://aws.amazon.com/premiumsupport/knowledge-center/cross-account-access-s3/ 找到
关于amazon-web-services - 公共(public)存储桶的跨账户 S3 访问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61698673/