【问题标题】:Aws S3 Only PutObject Policy仅 Aws S3 PutObject 策略
【发布时间】:2015-07-30 21:30:39
【问题描述】:

我正在尝试为存储桶设置 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 在不应该抱怨此政策时抱怨?

编辑:

经过几个小时的试验,我遇到了一个奇怪的行为,我想解释一下。

如果我将s3:ListBucket 添加到上述策略中,它就可以正常工作。没有它,它会返回 403。为什么亚马逊在我不想拥有它的时候强迫我执行 ListBucket 操作?

谢谢

【问题讨论】:

    标签: amazon-web-services amazon-s3 policies


    【解决方案1】:

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

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

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

    【讨论】:

    猜你喜欢
    • 2016-06-12
    • 2016-12-29
    • 1970-01-01
    • 1970-01-01
    • 2021-06-29
    • 1970-01-01
    • 2016-10-08
    • 1970-01-01
    • 2018-05-20
    相关资源
    最近更新 更多