我有一个S3存储桶,其结构如下:
top_level_name
sub_level_1
sub_level_2
sub_level_3
我想全面拒绝top_level_name
上的所有操作(以排除原本可以访问此存储桶的IAM策略),并有选择地允许特定用户访问其各自的{{1} }。最初,我认为该政策可能类似于:
sub_levels
在执行过程中,“允许”似乎无法取代“拒绝”。有什么办法可以重写我的存储桶策略以实现此模式?
答案 0 :(得分:1)
不。 Deny
始终会覆盖Allow
。
但是,只需简单地删除第一个Deny
部分,就可以满足您的用例。这是因为,默认情况下,用户没有权限。因此,除非策略明确允许,否则他们没有最高级别的PutObject
权限。
策略的第二部分授予您所需的较低级别的权限。
如果您有其他授予最高级别访问权限的策略(例如,通过*
策略),那么您将需要重新考虑您的其他策略(例如,从其{{ 1}}授权。