有一些用户可能为了备份目的而写入数据的存储桶。
他们使用s3cmd put新的文件放到他们的桶里。
我想对这些桶执行一个非销毁策略 – 这意味着,用户不应该销毁数据,他们应该只能添加数据。
我如何创build一个桶策略,只允许某个用户放置一个文件(如果它不存在的话),而不会让他对这个桶做任何事情。
考虑为存储桶启用版本控制 。 这样,用户可以更改和删除他们想要的东西,但除非通过删除旧版本的特定调用,否则不会删除任何数据。 此外,还有可能启用MFA删除,这意味着您将需要多因素身份validation令牌才能永久删除任何内容。
您可以使用amazons策略生成器轻松生成新的策略。
http://awspolicygen.s3.amazonaws.com/policygen.html
您只需轻松授予某人对ListBuckets和PutObject的权限即可。 问题是PutObject也可以更新对象。 我不确定是否可以使用策略将这两者分开。 只要你确定用户能够更新和添加,那么策略是非常简单的。
{ "Id": "Policy1334428511844", "Statement": [ { "Sid": "Stmt1334428508621", "Action": [ "s3:GetObject", "s3:ListAllMyBuckets", "s3:ListBucket", "s3:PutObject" ], "Effect": "Allow", "Resource": "arn:aws:s3:::<bucket>\<folder>", "Principal": { "AWS": [ "<account-id>" ] } }
]}