【发布时间】:2015-10-05 18:35:13
【问题描述】:
我对 S3 存储桶策略有一些经验,但最近我开始尝试使用 IAM 用户/组和 S3 存储桶 ACL。困扰我的是我无法理解它们是如何协同工作的。谁覆盖了什么?我想要完成的是让特定的 IAM 用户(带有凭证)用于在我的应用程序中上传。我已将 IAM 政策附加到它,如下所示:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"s3:PutObject",
"s3:GetObject",
"s3:DeleteObject"
],
"Resource": "arn:aws:s3:::*"
}
]
}
此策略附加到 IAM 用户。然后我在 S3 Bucket 上创建了以下策略:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "DefaultPrivate",
"Effect": "Deny",
"Principal": "*",
"Action": "*",
"Resource": "arn:aws:s3:::xxxxx-xxxxxx-xxxx/*"
},
{
"Sid": "ThumbnailAndGaleryReadOnly",
"Effect": "Allow",
"Principal": "*",
"Action": "s3:GetObject",
"Resource": [
"arn:aws:s3:::xxxx-xxx-xxxx-xxxx/*/xxxxx/*",
"arn:aws:s3:::xxxxx-xxxxx-xxxxx/*/xxxxxxx/*"
]
},
{
"Sid": "S3UploaderWrite",
"Effect": "Allow",
"Principal": {"AWS":"arn:aws:iam::xxxxxxxxxx:user/xxxxxxxx"},
"Action": [
"s3:GetObject",
"s3:PutObject",
"s3:DeleteObject"
],
"Resource": "arn:aws:s3:::xxxxxxxxxxxx/*"
}
]
}
很遗憾,只要 S3 策略中存在“拒绝”块 - 它就不允许我的 S3 用户上传文件。是否有可能我不能使用“允许”块“覆盖”拒绝特定用户(IAM 标识符是好的 - 我已经仔细检查过)。删除“拒绝”块让它工作,但......这不是重点。
关于这个问题的任何问题?如何明确拒绝一切,然后只允许某些 IAM 用户/组/角色执行某些操作?
谢谢。
【问题讨论】:
标签: amazon-web-services amazon-s3