AmazonS3ReadOnlyAccess
策略的EC2实例赋予了一个角色。"Action": "s3:*",
"Effect": "Deny",
"Resource": "arn:aws:s3:::ananda-demo-bucket-1/",
"Principal": "*"
但是,在我的EC2实例中,我仍然可以列出存储桶的内容。这是否意味着我无法使用自定义存储桶策略覆盖AWS IAM策略,或者我创建的存储桶策略是错误的?
答案 0 :(得分:1)
是的,它确实可以覆盖策略,但是仅在使用拒绝的情况下。如果其中包含“允许”,但IAM策略中包含“拒绝”,则不会被评估为“允许”。
为使您的策略拒绝S3存储桶内的所有操作,存储桶策略中的资源应包括以下内容:
arn:aws:s3:::ananda-demo-bucket-1
arn:aws:s3:::ananda-demo-bucket-1/*
通过使用主体*
进行此操作,您将拒绝访问所有内容,因此您将不再能够从任何资源(包括控制台)与该S3存储桶进行交互,进行如此大的更改之前。尝试限制要拒绝的操作,以便仍可以在控制台中使用S3存储桶的管理。
要在任何权限评估中归纳策略评估逻辑,如果以下任何一项被拒绝,则该操作将被拒绝:
完整的评估流程如下所示
有关更多信息,请查看AWS文档中的Policy Evaluation Logic页面。
答案 1 :(得分:0)
某些命令在存储桶级下运行,而其他命令在对象级上运行。
尝试一下:
"Action": "s3:*",
"Effect": "Deny",
"Resource": [
"arn:aws:s3:::ananda-demo-bucket-1",
"arn:aws:s3:::ananda-demo-bucket-1/*",
]
"Principal": "*"