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. 針對控制組態、指令碼和相關資料實作安全的備份和復原策略。

資源

相關的最佳實務:

相關文件:

相關範例:

相關工具: