我正在尝试按如下方式设置 Only PutObject 策略:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "Stmt####",
"Effect": "Allow",
"Action": [
"s3:PutObject",
"s3:PutObjectAcl",
"s3:PutObjectVersionAcl"
],
"Resource": [
"arn:aws:s3:::my-bucket/*"
]
}
]
}
但是,当我尝试上传文件时 AWS SDK
我收到来自AWS的403回复 . 我绝对肯定会使用附加了此策略的IAM用户的正确访问密钥 .
任何人都知道为什么AWS3不应该抱怨这个政策?
Edit:
经过几个小时的试验,我遇到了一个奇怪的行为,我想解释一下 .
如果我将 s3:ListBucket
添加到上述策略中它就可以正常工作 . 如果没有它,它将返回403.为什么亚马逊迫使我在我不想拥有它的时候放置 ListBucket 动作?
谢谢
1 回答
解决此问题的最佳方法是为您的策略提供以下操作和资源:
这将确认您使用的是正确的访问密钥 . 如果它通过,你很可能使用未经授权的操作(例如s3:ListBucket) . 您可以使用CloudTrail查找正在调用的未授权操作 .