首页 > 解决方案 > AWS 根用户权限被 S3 存储桶策略拒绝

问题描述

我通过 Web 向导在 AWS S3 上创建了一个新存储桶。我以 root 用户身份登录

我正在尝试添加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 中都被拒绝了权限

网络工具 aws 管理面板错误模式

命令行界面 An error occurred (AccessDenied) when calling the PutBucketPolicy operation: Access Denied

在 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>*"
        },

我还是没有权限

标签: amazon-web-servicesamazon-s3permission-denied

解决方案


感谢@JohnRotenstein,我看到因为我接受了来自 AWS 的默认“阻止所有公共访问”,所以我无法编辑存储桶策略。这是有道理的,因为存储桶策略也可以控制访问,因此可能会发生冲突。

但是,错误消息令人困惑,因为它没有提及Block public access (bucket settings)阻止更新的事实。错误消息说明access denied/you don't have permissions让我认为是我的用户的 IAM 设置阻止我修改资源。


推荐阅读