如何防止删除S3存储桶?

看起来创build存储桶策略可能会有所斩获,但是我在创build策略时遇到了问题。

AWS策略生成器是一个非常有用的工具,用于探索和创build这样的策略,它的用法在相应的入门博客文章中解释(与AWSpipe理控制台中的大多数策略input表单同时可以直接链接) )。

我已经根据你的规范创build了一个例子(当然,确保为你自己的资源生成一个新的例子):

{ "Id": "ExamplePolicyId12345678", "Statement": [ { "Sid": "ExampleStmtSid12345678", "Action": [ "s3:DeleteBucket" ], "Effect": "Deny", "Resource": "arn:aws:s3:::test-example-com", "Principal": { "AWS": [ "*" ] } } ] } 

请注意,AWSpipe理控制台目前既没有隐藏删除命令,也没有报告其执行对于使用此类策略的存储桶是不成功的,但是存储桶仍然保留;)

所以@ Steffen的回答是对的,但我想提出另一个重要的说明。 而策略将防止实际的桶被删除。 它不会保护存储桶中的项目被删除。 这是有道理的,但是您应该注意的是,在AWS控制台中,如果select删除存储桶,则会删除存储桶中的所有项目,然后无法删除存储桶。 所以你在桶中的任何数据都将消失。 这一开始并不明显,如果他们不知道,可能会导致严重的问题。

TL;DR; Trying to delete the bucket even with delete bucket prohibited will kill all the items in the bucket but keep the bucket around