放置存储桶策略时访问被拒绝

时间:2019-09-16 01:20:44

标签: amazon-web-services amazon-s3

我正在尝试按照以下规则在S3存储桶上放置存储桶策略。这样做时,我收到错误访问被拒绝

case GET_ITEMS:
      return state;

我能够对帐户中的其他存储桶设置相同的规则,因此可以确认IAM角色是否具有权限。

我能够在此存储桶上放置其他规则,因此可以确认也有在该存储桶上放置策略的权限。我也可以删除存储桶策略。成功的规则之一如下:

{
        "Sid": "Deny bucket/policy delete",
        "Effect": "Deny",
        "Principal": "*",
        "Action": [
            "s3:DeleteBucket",
            "s3:DeleteBucketPolicy",
            "s3:PutBucketPolicy"
        ],
        "Resource": "arn:aws:s3:::mybucket",
        "Condition": {
            "ArnNotEquals": {
                "aws:PrincipalArn": "arn:aws:iam::<account-id>:role/role_name"
            }
        }
    }

成功的规则适用于bucket / *

失败的规则在存储桶中。

如果IAM角色没有限制,那么可能还有其他问题吗?不知道我在想什么。请提出建议。

ACL屏幕截图:

enter image description here

1 个答案:

答案 0 :(得分:0)

我首先要提到的是,您添加的是“危险”存储桶策略,如果弄错了,则只能使用root登录名将其删除。这是因为,如果编码不正确,它可能会拒绝每个人接触存储桶策略。

您可以使用NotPrincipal而不是使用条件。参见:AWS JSON Policy Elements: NotPrincipal

还请检查阻止S3公共访问权限的设置,该设置可能会阻止创建存储桶策略。