【发布时间】:2020-05-09 14:52:29
【问题描述】:
存储桶政策
{
"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 用户能否列出、获取、放置、删除?
【问题讨论】:
-
不,当然不是。如果授予访问权限,假设您知道 AWS 上的任何资源的 ARN,就可以访问它。那将是非常糟糕的。请参阅下面米兰的答案。
-
跨账户策略评估逻辑解释here。长话短说,您需要双方(即资源和原则)都同意。
标签: amazon-web-services amazon-s3 amazon-iam