对所有 S3 存储桶普遍应用存储桶策略限制

对所有 S3 存储桶普遍应用存储桶策略限制

我想对所有 S3 存储桶应用特定限制。通常,AWS 发布的资源会描述每个存储桶的解决方案。但是,这并不能解决其他用户创建可以规避给定限制的存储桶策略的问题。

举例来说:s3-bucket-ssl-仅请求,以下为相关限制示例:

{
      "Effect": "Deny",
      "Principal": "*",
      "Action": "*",
      "Resource": "arn:aws:s3:::example-bucket/*",
      "Condition": {
        "Bool": {
          "aws:SecureTransport": "false"
        }
      }
    }

这是否只能用于新存储桶并不重要,但回顾性应用将是一个好处。似乎没有存储桶策略层次结构,所以我的问题基本上是,实现这一点的推荐方法是什么?

答案1

使用附加到您的 AWS 组织 OU 的 AWS 服务控制策略。下面的代码片段仅强制执行传输中的 S3 加密,但您也可以强制执行:

  • 静态 S3 / EBS / RDS 加密(可能其他服务也一样)
  • 允许的 EC2 大小/系列
  • 创建默认 VPC
  • 禁用默认 EBS 加密
  • 停用安全服务
  • 根用户做了很多事情(实际上他们不应该做任何事情)
  • 区域执行
  • OU 的白名单服务

我的括号可能不太正确,我是从更大的 SCP 中剪下来的,但任何 IDE(如 VSCode)都可以帮助解决这个问题。

{
  "Version": "2012-10-17",
  "Statement": [{
        "Sid": "S3EncryptionInTransit",
        "Effect": "Deny",
        "Action": "s3:PutObject",
        "Resource": "*",
        "Condition": {
          "ForAllValues:StringNotEquals": {
            "s3:x-amz-server-side-encryption": ["AES256", "aws:kms"]
          }
        }
    }]
}
      

相关内容