配置非破坏性 Amazon S3 存储桶策略

配置非破坏性 Amazon S3 存储桶策略

有一个存储桶,一些用户可能会将他们的数据写入其中以用于备份目的。

他们习惯s3cmdput新文件放入他们的存储桶中。

我想对这些存储桶实施非破坏性策略 - 这意味着用户不可能破坏数据,而只能添加数据。

我如何创建一个存储桶策略,仅允许特定用户放置尚不存在的文件,并且不允许他对该存储桶执行任何其他操作。

答案1

考虑启用版本控制对于存储桶。这样,用户可以更改和删除他们想要的内容,但实际上不会删除任何数据,除非通过特定调用删除旧版本。此外,还可以启用 MFA 删除,这意味着您需要一个多因素身份验证令牌才能永久删除任何内容。

答案2

您可以使用 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>"
        ]
      }
    }

] }

相关内容