【问题标题】:AWS Control Tower Guardrail - Prevents S3 Bucket being created with encryptionAWS Control Tower Guardrail - 防止使用加密创建 S3 存储桶
【发布时间】:2021-10-31 02:00:10
【问题描述】:

我们已经应用了这篇文章中提到的护栏,AWS 预防性 S3 护栏。 1。不幸的是,我们没有得到预期的结果。我们对 Amazon S3 存储桶 2 的加密配置应用了不允许更改。

SCP 对 s3:PutEncryptionConfiguration 有一个拒绝,条件是 arn:aws:iam::*:role/AWSControlTowerExecution 角色除外。

问题是任何人都可以创建 S3 存储桶,这是可以接受的。但是,当在控制台或通过 CloudFormation 创建存储桶并尝试指定加密 SSE 或 KMS 时,会生成错误并且创建的存储桶没有加密。

理想情况下,我们需要让任何人都能够创建 S3 存储桶并启用加密。我们希望这个 SCP 能做的是防止在应用到存储桶后删除加密。

我们预计文章中提到的其他护栏会出现类似问题:

不允许更改所有 Amazon S3 存储桶的加密配置 [以前:为日志存档启用静态加密] 禁止更改所有 Amazon S3 存储桶的日志记录配置 [以前:为日志存档启用访问日志记录] 禁止更改所有 Amazon S3 存储桶的存储桶策略 [以前:禁止更改日志存档的策略] 禁止更改所有 Amazon S3 存储桶的生命周期配置 [以前:为日志存档设置保留策略]

有人遇到过这个问题吗?实现允许使用所需的加密、日志记录、存储桶策略和生命周期创建存储桶并在创建存储桶后禁止删除或更改的最佳实施方式是什么?

【问题讨论】:

    标签: amazon-web-services amazon-s3 aws-organizations aws-control-tower


    【解决方案1】:

    恐怕 scp 不能提供您需要的灵活性,仅仅是因为您需要的条件键不在 api 调用中。没有一个政策说“允许 createbucket 在启用加密的条件下”。

    我曾在多个平台团队为企业实施这些类型的控制,并多次遇到这些限制。基本上有三种策略:

    1. 侦探合规性
    2. 纠正合规性
    3. 预防性合规性

    首先确保您了解配置的方式。您可以为此使用 aws config 规则。肯定有一些规则可以检查 s3 存储桶的加密设置。确保使用您的安全帐户中的 aws config 聚合器集中这些规则的结果。检测后,您可以手动跟进检测到的错误配置(或在大规模运行时自动执行此操作)。

    如果您还想纠正错误,可以使用 aws config 自动修复操作。还可以使用各种开源工具来帮助您解决此问题。一个经常使用的是带有 c7n-org 插件的云托管。也有许多商业报价,但价格相当昂贵。

    使用 scp 或 iam 策略,您可以阻止某人做一些事情,这比在错误配置发生后纠正错误配置的风险要低一些。但是,它也很不灵活,策略可以很快变得复杂,而且它也没有告诉用户为什么他不能做某事。通常,scp 仅用于非常简单的任务(例如,不能创建任何 iam 用户)或阻止外部或某些区域的操作。

    我会选择先确保你正确检测到东西,然后看看你是否可以纠正或阻止它。

    编辑: 如果您有只使用 ci/cd 和 infra 作为代码的成熟团队,您还可以确保在管道构建阶段使用 cfn-guard 等工具实施安全控制。如果他们的模板不符合标准,只需让构建失败。

    Edit2:回到您的问题:对于某些操作,如果有单独的 api 用于禁用诸如“DisableEncryption”操作之类的东西,则可以阻止使用 scp。但是,对于大多数操作,它是类似于 PutEncryptionSetting 的操作,您无法真正判断它是启用还是禁用。

    【讨论】:

      猜你喜欢
      • 2017-06-26
      • 2019-11-10
      • 2020-05-04
      • 1970-01-01
      • 2020-12-14
      • 2020-05-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多