SEC01-BP06 自动部署标准安全控制措施 - AWS Well-Architected 框架

SEC01-BP06 自动部署标准安全控制措施

在开发和部署 AWS 环境中的标准安全控制措施时,应用现代化 DevOps 实践。 使用基础设施即代码(IaC)模板定义和配置标准安全控制措施,收集版本控制系统中的更改,测试作为 CI/CD 管道一部分的更改,并自动将更改部署到您的 AWS 环境。

期望结果:使用 IaC 模板收集标准化的安全控制措施,并将其提交给版本控制系统。 在检测到变化的地方部署了 CI/CD 管道,并自动测试和部署 AWS 环境。 在继续部署之前,采取了防护机制来检查模板中的错误配置并发出警报。 工作负载部署到采用标准控制措施的环境中。 团队具有访问权限,可以通过自助服务机制部署经批准的服务配置。 制定了安全的备份和恢复策略,用于控制配置、脚本和相关数据。

常见反模式:

  • 通过 Web 控制台或命令行界面手动更改标准安全控制措施。

  • 依靠各个工作负载团队来手动实施中心团队定义的控制措施。

  • 依靠中心安全团队,根据工作负载团队的要求来部署工作负载级别的控制措施。

  • 允许相同的个人或团队开发、测试和部署安全控制措施自动化脚本,而没有采取适当的职责分离或制衡措施。 

建立此最佳实践的好处:使用模板来定义标准安全控制措施,这样您就可以通过版本控制系统来跟踪和比较随时间发生的变化。 使用自动化功能来测试和部署更改,这样可以实现标准化程序及可预测性,增加成功部署的可能性,减少重复的手动任务。 为工作负载团队提供了自助服务机制来部署经批准的服务和配置,可减少配置错误和滥用的风险。这样还可以让团队在开发过程的早期融入控制措施。

在未建立这种最佳实践的情况下暴露的风险等级:

实施指导

按照 SEC01-BP01 使用账户分隔工作负载中描述的做法,您最终将多个 AWS 账户用于您通过 AWS Organizations 管理的不同环境。 虽然这些环境和工作负载可能会需要不同的安全控制措施,不过您可以对整个企业内的一些安全控制措施进行标准化。 这样的例子包括集成集中式身份提供程序、定义网络和防火墙,以及配置用于存储和分析日志的标准位置。 就像使用基础设施即代码(IaC)将同样严格的应用程序代码开发要求应用于基础设施预置一样,您也可以使用 IaC 来定义和部署标准安全控制措施。

尽可能以声明式方式(例如在 AWS CloudFormation 中)定义安全控制措施,并将这些安全控制措施存储在源代码控制系统中。 使用 DevOps 实践来自动部署控制措施,从而获得可预测性更强的发布,使用 AWS CloudFormation Guard 等工具自动进行测试,并检测已部署的控制措施与所需配置之间的偏差。 您可以使用 AWS CodePipelineAWS CodeBuildAWS CodeDeploy 等服务来构造 CI/CD 管道。请参考使用多个账户组织 AWS 环境中的指导,在每个服务自己的、独立于其他部署管道的账户中,配置这些服务。

您还可以定义模板来实现标准化的 AWS 账户、服务和配置的定义及部署。 利用这种技术,中心安全团队可以管理这些定义,并通过自助服务方法将这些定义提供给工作负载团队。 为此,您可以采取的一种方法是使用 Service Catalog,将模板作为产品发布,供工作负载团队整合到自己的管道部署中。 如果使用的是 AWS Control Tower,则可以使用一些模板和控制措施作为起点。 Control Tower 还提供 Account Factory 功能,让工作负载团队可以使用您定义的标准创建新的 AWS 账户。 在工作负载团队确定了需要新账户时,此功能可以避免需要依赖中心团队来审批和创建新账户。 您可能需要通过这些账户,根据工作负载提供的功能、所处理数据的敏感性或其行为等原因,来隔离不同的工作负载组件。

实施步骤

  1. 确定如何在版本控制系统中存储和维护模板。

  2. 创建 CI/CD 管道来测试和部署模板。 定义测试方法,用于检查配置是否有误,以及模板是否符合公司标准。

  3. 构建标准化模板目录,供工作负载团队根据您的要求部署 AWS 账户和服务。

  4. 为控制配置、脚本和相关数据实施安全的备份和恢复策略。

资源

相关最佳实践:

相关文档:

相关示例:

相关工具: