

# 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) 

 **相關範例：**
+  [使用 Service Catalog 自動化帳戶建立和資源佈建 AWS Organizations，以及 AWS Lambda](https://aws.amazon.com/blogs/mt/automate-account-creation-and-resource-provisioning-using-aws-service-catalog-aws-organizations-and-aws-lambda/) 
+  [使用 AWS Secrets Manager、 和 增強 DevOps 管道 AWS KMS並保護資料 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) 
+  [上的登陸區域加速器 AWS](https://github.com/awslabs/landing-zone-accelerator-on-aws) 