我正在尝试按照以下规则在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屏幕截图:
答案 0 :(得分:0)
我首先要提到的是,您添加的是“危险”存储桶策略,如果弄错了,则只能使用root登录名将其删除。这是因为,如果编码不正确,它可能会拒绝每个人接触存储桶策略。
您可以使用NotPrincipal
而不是使用条件。参见:AWS JSON Policy Elements: NotPrincipal
还请检查阻止S3公共访问权限的设置,该设置可能会阻止创建存储桶策略。