AWS根用户在S3 Bucket策略上被拒绝访问

9
我在AWS S3的网络向导中创建了一个新的存储桶。 我当时是以根用户登录的。
我尝试添加一个名为Bucket policy的内容。
{
    "Version": "2012-10-17",
    "Statement": [{
        "Sid": "AddPerm",
        "Effect": "Allow",
        "Principal": "*",
        "Action": [
            "s3:GetObject"
        ],
        "Resource": [
            "arn:aws:s3:::<my-bucket-name-is-here>/*"
        ]
    }]
}

我在Web编辑器和CLI中都遇到了权限被拒绝的错误

Web工具 aws管理面板错误弹出框

CLI 执行PutBucketPolicy操作时发生错误(AccessDenied):拒绝访问

在IAM设置中,根用户具有完全控制访问权限

    "Statement": [
        {
            "Effect": "Allow",
            "Action": "*",
            "Resource": "*"
        }
    ]

我添加了

        {
            "Effect": "Allow",
            "Action": "s3:*",
            "Resource": "*"
        }

我也尝试添加

        {
            "Sid": "ModifyBucketPolicy",
            "Action": [
                "s3:GetBucketPolicy",
                "s3:PutBucketPolicy"
            ],
            "Effect": "Allow",
            "Resource": "arn:aws:s3:::<MY-BUCKET-NAME>*"
        },

我仍然没有权限


你能澄清一下你想要实现什么吗?无论如何,这都是无效的存储桶策略,所以我不确定你的目的是什么。 - Marcin
2
不确定是否是原因,但您是否关闭了S3阻止公共访问功能,以允许新的Bucket策略? - John Rotenstein
1
@JohnRotenstein,这可能是情况。我正在进行测试。但是,“阻止公共访问”为什么会阻止授权用户进行更新呢? - auerbachb
1
错误提示为 PutBucketPolicy -- 这是 S3 阻止公共访问所影响的操作之一。 - John Rotenstein
@JohnRotenstein 这就是问题所在。谢谢!我猜这是必要的,以防止存储桶策略控制访问和 Web UI 中的公共访问控制之间发生冲突。我希望这能更清晰些。 - auerbachb
1个回答

18

感谢@JohnRotenstein的帮助,我发现因为我在AWS中接受了默认的“阻止所有公共访问”,所以我无法编辑存储桶策略。这是合理的,因为存储桶策略也可以控制访问权限,可能会产生冲突。

然而,错误信息很令人困惑,因为它没有提到是“阻止公共访问(存储桶设置)”导致了更新失败。错误信息只是说明了访问被拒绝或没有权限,这让我认为是我的用户IAM设置阻止了我修改资源。


我有相同的问题,只不过我的是s3:putAccelerationConfiguration。 - Chidozie Duru

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接