

# 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) 中所做的決策，您可能有建立專用VPCs於輸入、輸出和檢查流程的中央管理方法。 如[AWS 安全參考架構 （AWS SRA）](https://docs.aws.amazon.com/prescriptive-guidance/latest/security-reference-architecture) 中所述，您可以在VPCs專用[網路基礎設施帳戶中](https://docs.aws.amazon.com/prescriptive-guidance/latest/security-reference-architecture/network.html)定義這些屬性。 您可以使用類似的技術集中定義其他帳戶中工作負載VPCs使用的 、其安全群組、 AWS Network Firewall 部署、Route 53 Resolver 規則和DNS防火牆組態，以及其他網路資源。 您可以透過 [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 - 網路帳戶](https://docs.aws.amazon.com/prescriptive-guidance/latest/security-reference-architecture/network.html) 

 **相關範例：**
+  [AWS 部署管道參考架構](https://pipelines.devops.aws.dev/) 
+  [NetDevSecOps 將 AWS 網路部署現代化](https://aws.amazon.com/blogs/networking-and-content-delivery/netdevsecops-to-modernize-aws-networking-deployments/) 
+  [將 AWS CloudFormation 安全測試與 AWS Security Hub CSPM 和 AWS CodeBuild 報告整合](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) 