

# SEC01-BP06 自动部署标准安全控制措施
<a name="sec_securely_operate_automate_security_controls"></a>

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

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

 **常见反模式：**
+  通过 Web 控制台或命令行界面手动更改标准安全控制措施。
+  依靠各个工作负载团队来手动实施中心团队定义的控制措施。
+  依靠中心安全团队，根据工作负载团队的要求来部署工作负载级别的控制措施。
+  允许相同的个人或团队开发、测试和部署安全控制措施自动化脚本，而没有采取适当的职责分离或制衡措施。  

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

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

## 实施指导
<a name="implementation-guidance"></a>

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

 尽可能以声明式方式（例如在 [AWS CloudFormation](https://aws.amazon.com/cloudformation/) 中）定义安全控制措施，并将这些安全控制措施存储在源代码控制系统中。 使用 DevOps 实践来自动部署控制措施，从而获得可预测性更强的发布，使用 [AWS CloudFormation Guard](https://docs.aws.amazon.com/cfn-guard/latest/ug/what-is-guard.html) 等工具自动进行测试，并检测已部署的控制措施与所需配置之间的偏差。 您可以使用 [AWS CodePipeline](https://aws.amazon.com/codepipeline/)、[AWS CodeBuild](https://aws.amazon.com/codebuild/) 和 [AWS CodeDeploy](https://aws.amazon.com/codedeploy/) 等服务来构造 CI/CD 管道。请参考[使用多个账户组织 AWS 环境](https://docs.aws.amazon.com/whitepapers/latest/organizing-your-aws-environment/deployments-ou.html)中的指导，在每个服务自己的、独立于其他部署管道的账户中，配置这些服务。

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

## 实施步骤
<a name="implementation-steps"></a>

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

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

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

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

## 资源
<a name="resources"></a>

 **相关最佳实践：**
+  [OPS05-BP01 使用版本控制](https://docs.aws.amazon.com/wellarchitected/latest/framework/ops_dev_integ_version_control.html) 
+  [OPS05-BP04 使用构建和部署管理系统](https://docs.aws.amazon.com/wellarchitected/latest/framework/ops_dev_integ_build_mgmt_sys.html) 
+  [REL08-BP05 使用自动化功能部署更改](https://docs.aws.amazon.com/wellarchitected/latest/framework/rel_tracking_change_management_automated_changemgmt.html) 
+  [SUS06-BP01 采用可以快速引入可持续性改进的方法](https://docs.aws.amazon.com/wellarchitected/latest/framework/sus_sus_dev_a2.html) 

 **相关文档：**
+  [使用多个账户整理您的 AWS 环境](https://docs.aws.amazon.com/whitepapers/latest/organizing-your-aws-environment/deployments-ou.html) 

 **相关示例：**
+  [Automate account creation, and resource provisioning using Service Catalog, AWS Organizations, and AWS Lambda](https://aws.amazon.com/blogs/mt/automate-account-creation-and-resource-provisioning-using-aws-service-catalog-aws-organizations-and-aws-lambda/) 
+  [Strengthen the DevOps pipeline and protect data with AWS Secrets Manager, AWS KMS, and AWS Certificate Manager](https://aws.amazon.com/blogs/security/strengthen-the-devops-pipeline-and-protect-data-with-aws-secrets-manager-aws-kms-and-aws-certificate-manager/) 

 **相关工具：**
+  [AWS CloudFormation Guard](https://docs.aws.amazon.com/cfn-guard/latest/ug/what-is-guard.html) 
+  [Landing Zone Accelerator on AWS](https://github.com/awslabs/landing-zone-accelerator-on-aws) 