我对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用户/组/角色的某些操作?
感谢。
答案 0 :(得分:0)
你可以删除拒绝委托人*。你可以指定被拒绝的用户或角色,例如" Principal":{" AWS":" arn:aws:iam :: xxxxxxxxxx:user / xxxxxxxx"}。它解决了你的问题。