如何防止删除 S3 存储桶?

如何防止删除 S3 存储桶?

看起来像创建一个存储桶策略可能会有效果,但我在制定政策时遇到了麻烦。

答案1

AWS 策略生成器是探索和制定此类政策的一个非常有用的工具,其用法在相应的介绍性博客文章(直接链接可同时在大多数政策输入表格中找到AWS 管理控制台也)。

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

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

请注意,对于具有此类策略的存储桶,AWS 管理控制台当前既不会隐藏删除命令,也不会报告其执行失败,但是,存储桶仍然保留在原位;)

答案2

所以@Steffen 的回答是正确的,但我想再强调一点。虽然该策略可以防止实际存储桶被删除。但它无法防止存储桶中的项目被删除。这很有道理,但您应该知道的是,如果您在 AWS 控制台中选择删除存储桶,它将删除存储桶中的所有项目,然后无法删除存储桶。因此,存储桶中的所有数据都将消失。这一点一开始并不明显,如果有人不知情,可能会给他们带来严重问题。

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

答案3

另一个选项是启用版本控制和 MFA 删除。这使得清空和删除存储桶变得更加困难。

相关内容