

# SEC05-BP04 自动执行网络保护
<a name="sec_network_auto_protect"></a>

 使用 DevOps 实践 [例如*基础设施即代码*（IaC）和 CI/CD 管道] 自动部署网络保护。 这些实践有助于您通过版本控制系统跟踪网络保护措施的变更，缩短部署变更所需的时间，并有助于检测网络保护措施是否偏离了您所需的配置。  

 **期望结果：**您可以使用模板来定义网络保护，并将模板提交到版本控制系统中。 当有新的变更时，自动管道就会启动，协调这些变更的测试和部署。 进行策略检查和其它静态测试，以便在部署之前验证变更。 您可以将变更部署到暂存环境中，以便验证控制措施是否按预期运行。 一旦控制措施获得批准，还可自动部署到生产环境中。

 **常见反模式：**
+  依靠各个工作负载团队各自定义完整的网络堆栈、保护措施和自动化。 不集中发布网络堆栈和保护措施的标准内容，供工作负载团队使用。
+  依靠中央网络团队来定义网络、保护措施和自动化的所有方面。 不将网络堆栈和保护措施的特定工作负载方面委托给该工作负载的团队。
+  在网络团队和工作负载团队之间的集中化和委托之间取得适当平衡，但不在 IaC 模板和 CI/CD 管道中应用一致的测试和部署标准。 没有在检查模板是否符合要求的工具中捕获所需的配置。

 **建立此最佳实践的好处：**使用模板来定义网络保护，可以通过版本控制系统跟踪和比较随时间发生的变更。 使用自动化功能来测试和部署变更，可实现标准化和可预测性，增加成功部署的机会，减少重复的手动配置。

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

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

 [SEC05-BP02 控制网络层中的流量流动](https://docs.aws.amazon.com/wellarchitected/latest/framework/sec_network_protection_layered.html)和 [SEC05-BP03 实施基于检查的保护](https://docs.aws.amazon.com/wellarchitected/latest/framework/sec_network_protection_inspection.html)中描述的许多网络保护控制措施都带有可根据最新威胁情报自动更新的托管规则系统。 保护 Web 端点的示例包括 [AWS WAF 托管规则](https://docs.aws.amazon.com/waf/latest/developerguide/aws-managed-rule-groups.html)和 [AWS Shield Advanced 自动应用层 DDoS 缓解](https://docs.aws.amazon.com/waf/latest/developerguide/ddos-automatic-app-layer-response.html)。使用 [AWS Network Firewall 托管规则组](https://docs.aws.amazon.com/network-firewall/latest/developerguide/nwfw-managed-rule-groups.html)，也可随时更新低声誉域列表和威胁特征。

 除了托管规则外，我们还建议您使用 DevOps 实践来自动部署网络资源、保护措施和您指定的规则。 您可以在 [AWS CloudFormation](https://aws.amazon.com/cloudformation/) 或您选择的其它*基础设施即代码*（IaC）工具中捕获这些定义，将其提交到版本控制系统，并使用 CI/CD 管道进行部署。 使用这种方法可获得 DevOps 在管理网络控制方面的传统优势，如更具可预测性的发布、使用 [AWS CloudFormation Guard](https://docs.aws.amazon.com/cfn-guard/latest/ug/what-is-guard.html) 等工具进行自动测试，以及检测已部署环境与所需配置之间的偏差等。

 根据您在 [SEC05-BP01 创建网络层](https://docs.aws.amazon.com/wellarchitected/latest/framework/sec_network_protection_create_layers.html)中做出的决定，您可以采用集中管理方法创建 VPC，专用于入口、出口和检查流。 如 [AWS Security Reference Architecture（AWS SRA）](https://docs.aws.amazon.com/prescriptive-guidance/latest/security-reference-architecture)所述，您可以在专用[网络基础设施账户](https://docs.aws.amazon.com/prescriptive-guidance/latest/security-reference-architecture/network.html)中定义这些 VPC。 您可以使用类似的技术，来集中定义其它账户中工作负载使用的 VPC、其安全组、AWS Network Firewall 部署、Route 53 Resolver 规则和 DNS Firewall 配置以及其它网络资源。 您可以通过 [AWS Resource Access Manager](https://docs.aws.amazon.com/ram/latest/userguide/what-is.html) 与其它账户共享这些资源。 通过这种方法，您可以将网络控制的自动测试和部署简化到网络账户中，只需管理一个目标即可。 您可以采用混合模式来实现这一点，即集中部署和共享某些控制措施，并将其它控制措施委托给各个工作负载团队及其各自的账户。

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

1.  确定网络和保护措施的哪些方面是集中定义的，哪些是工作负载团队可以维护的。

1.  创建环境来测试和部署对网络及其保护措施的变更。 例如，使用“网络测试”账户和“网络生产”账户。

1.  确定如何在版本控制系统中存储和维护模板。 将中央模板存储在有别于工作负载存储库的存储库中，而工作负载模板可存储在特定于该工作负载的存储库中。

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

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

 **相关最佳实践：**
+  [SEC01-BP06 自动部署标准安全控制措施](https://docs.aws.amazon.com/wellarchitected/latest/framework/sec_securely_operate_automate_security_controls) 

 **相关文档：**
+  [AWS Security Reference Architecture - Network account](https://docs.aws.amazon.com/prescriptive-guidance/latest/security-reference-architecture/network.html) 

 **相关示例：**
+  [AWS Deployment Pipeline Reference Architecture](https://pipelines.devops.aws.dev/) 
+  [NetDevSecOps to modernize AWS networking deployments](https://aws.amazon.com/blogs/networking-and-content-delivery/netdevsecops-to-modernize-aws-networking-deployments/) 
+  [Integrating AWS CloudFormation security tests with AWS Security Hub CSPM and AWS CodeBuild reports](https://aws.amazon.com/blogs/security/integrating-aws-cloudformation-security-tests-with-aws-security-hub-and-aws-codebuild-reports/) 

 **相关工具：**
+  [AWS CloudFormation](https://aws.amazon.com/cloudformation/) 
+  [AWS CloudFormation Guard](https://docs.aws.amazon.com/cfn-guard/latest/ug/what-is-guard.html) 
+  [cfn\$1nag](https://github.com/stelligent/cfn_nag) 