禁止从S3桶中删除

我想创build一个不允许删除文件的S3存储桶。

有谁知道我能做到这一点?

你不能切换桶上的标志来表示“这个桶不能被删除或其内容被删除”,因为为了生效,该标志将不得不阻止账户所有者做这些事情 – 这将意味着你永远不能取消你的帐户。 不爽。

但是,AWS有能力提供有限权限的主体,这些主体可以授予AWS资源的一部分权限。 这就是所谓的“IAM-身份和访问pipe理”,根据这个scheme,AWS账户本身的login细节将被保持在紧密locking的状态(而不是公司中的所有人) ,只有受限制的证书才会像青less年野营旅行中的doobie一样被交付。

我在IAM和S3方面没有太多的第一手经验,但是通过与IAM策略生成器的短暂调整,我觉得看起来像下面这样的策略是可行的:

{ "Id": "Policy1344116539061", "Statement": [ { "Sid": "Stmt1344116519156", "Action": [ "s3:GetObject", "s3:ListBucket", "s3:PutObject" ], "Effect": "Allow", "Resource": "arn:aws:s3:::mybucket/*", "Principal": { "AWS": [ "womble" ] } } ] } 

我肯定会testing,以确保它不允许任何你不想要的东西(例如,s3:PutObject允许覆盖现有的对象,你可能不想要的 – 答案是版本化),而且还需要学习如何应用策略( IAM用户指南或IAM API参考可能会帮助您的策略),或者如果这些策略不能说明,请在此处询问详细问题可能有足够的IAM fu能够指引你正确的方向),但至less你现在已经有了一个指向正确的方向的指针。