首页 文章

Aws S3只有PutObject策略

提问于
浏览
1

我正在尝试按如下方式设置 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 回答

  • 0

    解决此问题的最佳方法是为您的策略提供以下操作和资源:

    "Action": [
        "s3:*"
    ],
    "Resource": [
        "arn:aws:s3:::my-bucket",
        "arn:aws:s3:::my-bucket/*"
    ]
    

    这将确认您使用的是正确的访问密钥 . 如果它通过,你很可能使用未经授权的操作(例如s3:ListBucket) . 您可以使用CloudTrail查找正在调用的未授权操作 .

相关问题