禁止从 S3 存储桶中删除

禁止从 S3 存储桶中删除

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

有人知道我怎样才能实现这一目标吗?

答案1

您无法在存储桶上切换标志以表示“此存储桶永远不能被删除或其内容被删除”,因为要有效,该标志必须阻止帐户所有者执行任何这些操作 - 这意味着您可以绝不取消你的账户。这太不酷了。

但是,AWS 有能力提供有限权限主体,这些主体可以授予 AWS 资源的部分权限。这被称为“IAM——身份和访问管理”,在这种方案下,AWS 帐户本身的登录详细信息将被严密保密(而不是随意分发给公司中的每个人),并且只有受限制的凭证才会像青少年露营旅行中的大麻烟一样被传阅。

我对 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"
        ]
      }
    }
  ]
}

我肯定会进行测试,以确保它不会允许任何你不想要的操作(例如,s3:PutObject 允许覆盖现有对象,而你可能不想要这样做——答案就是版本控制),而且你仍然需要学习如何应用该策略(为此IAM 用户指南或者IAM API 参考也许能够提供帮助——或者,如果这些都不能说明问题,在这里问一个详细的问题,有人可能有足够的 IAM fu 能够为你指明正确的方向),但至少你现在已经得到了正确方向的指针。

相关内容