You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

AWS Control Tower Guardrail阻止S3桶创建时配置加密方案咨询

问题根因

Control Tower 原生提供的「Disallow Changes to S3 配置」类预防性防护栏,对应SCP采用的是全局DENY对应配置类操作的逻辑。而AWS控制台、CloudFormation等官方工具创建S3桶的逻辑是分两步执行:第一步调用s3:CreateBucket创建空桶,第二步调用对应配置接口(如s3:PutEncryptionConfiguration、s3:PutBucketLogging等)写入加密、日志等配置。原生SCP没有区分创建时的配置操作和创建后的修改操作,所以第二步的配置请求会被直接拦截,导致桶创建成功但配置丢失。

最优解决方案

通过自定义SCP替换原生防护栏的SCP规则,加入AWS官方提供的s3:BucketResourceExists条件键,仅在桶已经存在的场景下DENY配置修改操作,创建桶时的配置请求不受影响。

适配所有同类防护栏的SCP规则示例

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Deny",
      "Action": [
        "s3:PutEncryptionConfiguration",
        "s3:PutBucketLogging",
        "s3:PutBucketPolicy",
        "s3:PutLifecycleConfiguration"
      ],
      "Resource": "arn:aws:s3:::*",
      "Condition": {
        "Bool": {
          "s3:BucketResourceExists": "true"
        },
        "StringNotLike": {
          "aws:PrincipalARN": [
            "arn:aws:iam::*:role/AWSControlTowerExecution",
            "你需要豁免的其他运维角色ARN"
          ]
        }
      }
    }
  ]
}

操作步骤

  1. 在Control Tower控制台禁用原来启用的4个原生elective防护栏
  2. 进入AWS Organizations控制台,创建自定义SCP,粘贴上述规则,按实际需求补充豁免角色
  3. 将自定义SCP绑定到对应业务OU,设置优先级高于其他SCP规则即可

验证逻辑

  • 配置完成后,普通用户创建S3桶时指定加密、日志、生命周期规则等配置可以正常生效,无报错
  • 桶创建完成后,普通用户尝试修改上述任意配置都会被SCP拦截,符合预期

内容的提问来源于stack exchange,提问作者Jay Bonk

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 01:24:01