自動化部署 - StackSets - AWS 上的自動化安全回應

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

自動化部署 - StackSets

注意

我們建議您使用 StackSets 部署 。不過,對於單一帳戶部署或測試或評估目的,請考慮堆疊部署選項。

啟動解決方案之前,請檢閱本指南中討論的架構、解決方案元件、安全性和設計考量事項。遵循本節中的step-by-step說明,設定解決方案並將其部署到您的 AWS Organizations。

部署時間:每個帳戶約 30 分鐘,取決於 StackSet 參數。

先決條件

AWS Organizations 可協助您集中管理多帳戶 AWS 環境和資源。StackSets 最適合與 AWS Organizations 搭配使用。

如果您先前已部署此解決方案的 v1.3.x 或更早版本,則必須解除安裝現有的解決方案。如需詳細資訊,請參閱更新解決方案

在部署此解決方案之前,請檢閱您的 AWS Security Hub 部署:

  • 您的 AWS Organization 中必須有委派的 Security Hub 管理員帳戶。

  • Security Hub 應設定為跨區域彙總問題清單。如需詳細資訊,請參閱《AWS Security Hub 使用者指南》中的跨區域彙總問題清單。

  • 您應該在擁有 AWS 用量的每個區域中,為您的組織啟用 Security Hub

此程序假設您有多個使用 AWS Organizations 的帳戶,並已委派 AWS Organizations 管理員帳戶和 AWS Security Hub 管理員帳戶。

請注意,此解決方案適用於 AWS Security Hub 和 AWS Security Hub CSPM

部署概觀

注意

此解決方案的 StackSets 部署使用服務受管和自我管理 StackSets 的組合。自我管理的 StackSets 必須目前使用,因為它們使用巢狀 StackSets,服務管理的 StackSets 尚不支援。

從 AWS Organizations 中的委派管理員帳戶部署 StackSets。 https://docs.aws.amazon.com/organizations/latest/userguide/services-that-can-integrate-cloudformation.html AWS Organizations

規劃

使用下列表單來協助 StackSets 部署。準備您的資料,然後在部署期間複製並貼上值。

AWS Organizations admin account ID: _______________
Security Hub admin account ID: _______________
CloudTrail Logs Group: ______________________________
Member account IDs (comma-separated list):
___________________,
___________________,
___________________,
___________________,
___________________
AWS Organizations OUs (comma-separated list):
___________________,
___________________,
___________________,
___________________,
___________________

(選用) 步驟 0:部署票證整合堆疊

  • 如果您想要使用票證功能,請先將票證整合堆疊部署到您的 Security Hub 管理員帳戶。

  • 從此堆疊複製 Lambda 函數名稱,並提供它做為管理員堆疊的輸入 (請參閱步驟 1)。

步驟 1:在委派的 Security Hub 管理員帳戶中啟動管理員堆疊

  • 使用自我管理的 StackSet,在與 Security Hub 管理員位於相同區域的 AWS Security Hub 管理員帳戶中啟動 automated-security-response-admin.template AWS CloudFormation 範本。此範本使用巢狀堆疊。

  • 選擇要安裝的安全標準。根據預設,只會選取 SC (建議)。

  • 選擇要使用的現有 Orchestrator 日誌群組。Yes 如果先前安裝SO0111-ASR- Orchestrator已存在,請選取 。

  • 選擇是否啟用解決方案的 Web UI。如果您選擇啟用此功能,您也必須輸入要指派管理員角色的電子郵件地址。

  • 選取收集與解決方案運作狀態相關的 CloudWatch 指標的偏好設定。

如需自我管理 StackSets 的詳細資訊,請參閱《AWS CloudFormation 使用者指南》中的授予自我管理許可

步驟 2:在每個 AWS Security Hub 成員帳戶中安裝修復角色

等待步驟 1 完成部署,因為步驟 2 中的範本參考步驟 1 建立的 IAM 角色。

  • 使用服務管理的 StackSet,在 automated-security-response-member-roles.template AWS Organizations 中每個帳戶中的單一區域中啟動 AWS CloudFormation 範本。 AWS Organizations

  • 選擇在新帳戶加入組織時自動安裝此範本。

  • 輸入您的 AWS Security Hub 管理員帳戶的帳戶 ID。

  • 輸入 的值namespace,此值將用於防止資源名稱與相同帳戶中的先前或並行部署發生衝突。輸入最多 9 個小寫英數字元的字串。

步驟 3:在每個 AWS Security Hub 成員帳戶和區域中啟動成員堆疊

  • 使用自我管理的 StackSets,在 AWS Organization automated-security-response-member.template 中擁有相同 Security Hub 管理員管理之每個帳戶中 AWS 資源的所有區域中啟動 AWS CloudFormation 範本。

    注意

    在服務受管 StackSets 支援巢狀堆疊之前,您必須為加入組織的任何新帳戶執行此步驟。

  • 選擇要安裝的 Security Standard 手冊。

  • 提供 CloudTrail 日誌群組的名稱 (由部分修復使用)。

  • 輸入您的 AWS Security Hub 管理員帳戶的帳戶 ID。

  • 輸入 的值namespace,此值將用於防止資源名稱與相同帳戶中的先前或並行部署發生衝突。輸入最多 9 個小寫英數字元的字串。這應該與您為成員角色堆疊選取的namespace值相符,此外,命名空間值不需要為每個成員帳戶唯一。

(選用) 步驟 0:啟動票證系統整合堆疊

  1. 如果您想要使用票證功能,請先啟動個別的整合堆疊。

  2. 選擇 Jira 或 ServiceNow 提供的整合堆疊,或使用它們做為藍圖,以實作您自己的自訂整合。

    若要部署 Jira 堆疊

    1. 輸入堆疊的名稱。

    2. 將 URI 提供給 Jira 執行個體。

    3. 為您要傳送票證的 Jira 專案提供專案金鑰。

    4. 在 Secrets Manager 中建立新的金鑰值秘密,該秘密會保留您的 Jira UsernamePassword

      注意

      您可以選擇使用 Jira API 金鑰來取代您的密碼,方法是將您的使用者名稱提供為 Username,並將您的 API 金鑰提供為 Password

    5. 新增此秘密的 ARN 做為堆疊的輸入。

      提供堆疊名稱 Jira 專案資訊和 Jira API 登入資料。

      票證系統整合堆疊 jira

      若要部署 ServiceNow 堆疊

    6. 輸入堆疊的名稱。

    7. 提供 ServiceNow 執行個體的 URI。

    8. 提供您的 ServiceNow 資料表名稱。

    9. 在 ServiceNow 中建立 API 金鑰,並具有修改您要寫入之資料表的許可。

    10. 使用 金鑰在 Secrets Manager 中建立秘密,API_Key並提供秘密 ARN 做為堆疊的輸入。

      提供堆疊名稱 ServiceNow 專案資訊和 ServiceNow API 登入資料。

      票證系統整合堆疊服務現在

      若要建立自訂整合堆疊:包含解決方案協調器 Step Functions 可以針對每個修復呼叫的 Lambda 函數。Lambda 函數應採用 Step Functions 提供的輸入,根據您的票證系統需求建構承載,並向您的系統提出建立票證的請求。

步驟 1:在委派的 Security Hub 管理員帳戶中啟動管理員堆疊

  1. automated-security-response-admin.template使用您的 Security Hub 管理員帳戶啟動管理員堆疊 。一般而言,單一區域中每個組織一個。由於此堆疊使用巢狀堆疊,您必須將此範本部署為自我管理的 StackSet。

Parameters

參數 預設 說明

載入 SC 管理員堆疊

yes

指定是否要安裝管理員元件以自動修復 SC 控制項。

載入 AFSBP 管理員堆疊

no

指定是否要安裝管理員元件以自動修復 FSBP 控制項。

載入 CIS120 管理員堆疊

no

指定是否要安裝管理員元件以自動修復 CIS120 控制項。

載入 CIS140 管理員堆疊

no

指定是否要安裝管理員元件以自動修復 CIS140 控制項。

載入 CIS300 管理員堆疊

no

指定是否要安裝管理員元件以自動修復 CIS300 控制項。

載入 PC1321 管理員堆疊

no

指定是否要安裝管理員元件以自動修復 PC1321 控制項。

載入 NIST Admin Stack

no

指定是否要安裝管理員元件以自動修復 NIST 控制項。

重複使用協調器日誌群組

no

選取是否要重複使用現有的 SO0111-ASR-Orchestrator CloudWatch Logs 群組。這可簡化重新安裝和升級,而不會遺失先前版本的日誌資料。yes 如果此帳戶中先前部署Orchestrator Log Group仍存在 ,請重複使用現有的Orchestrator Log Group選擇,否則為 no。如果您從比 v2.3.0 更舊的版本執行堆疊更新,請選擇 no

ShouldDeployWebUI

yes

部署 Web UI 元件,包括 API Gateway、Lambda 函數和 CloudFront 分佈。選取「是」以啟用 Web 型使用者介面,以檢視問題清單和修復狀態。如果您選擇停用此功能,您仍然可以使用 Security Hub CSPM 自訂動作設定自動修復並隨需執行修復。

AdminUserEmail

(選用輸入)

初始管理員使用者的電子郵件地址。此使用者將擁有 ASR Web UI 的完整管理存取權。只有在啟用 Web UI 時才需要。

使用 CloudWatch 指標

yes

指定是否啟用 CloudWatch 指標來監控解決方案。這會建立 CloudWatch Dashboard 來檢視指標。

使用 CloudWatch 指標警示

yes

指定是否啟用解決方案的 CloudWatch 指標警示。這將為解決方案收集的特定指標建立警示。

RemediationFailureAlarmThreshold

5

指定每個控制項 ID 修復失敗百分比的閾值。例如,如果您輸入 5,當控制 ID 在指定日期失敗超過 5% 的修復時,您會收到警示。

只有在警示建立時,此參數才會運作 (請參閱使用 CloudWatch Metrics 警示參數)。

EnableEnhancedCloudWatchMetrics

no

如果為 yes, 會建立其他 CloudWatch 指標,以個別追蹤 CloudWatch 儀表板上的所有控制項 IDs,並做為 CloudWatch 警示。

請參閱 成本 一節,以了解這會產生的額外成本。

TicketGenFunctionName

(選用輸入)

選用。如果您不想整合票證系統,請保留空白。否則,請從步驟 0 的堆疊輸出提供 Lambda 函數名稱,例如:SO0111-ASR-ServiceNow-TicketGenerator

設定 StackSet 選項

設定堆疊集選項
  1. 針對帳戶號碼參數,輸入 AWS Security Hub 管理員帳戶的帳戶 ID。

  2. 針對指定區域參數,僅選取開啟 Security Hub 管理員的區域。請等待此步驟完成,再繼續步驟 2。

步驟 2:在每個 AWS Security Hub 成員帳戶中安裝修補角色

使用服務管理的 StackSets 來部署成員角色範本 automated-security-response-member-roles.template。此 StackSet 必須部署在每個成員帳戶的一個區域中。它定義了允許從 ASR Orchestrator 步驟函數進行跨帳戶 API 呼叫的全域角色。

Parameters

參數 預設 說明

命名空間

需要輸入

輸入最多 9 個小寫英數字元的字串。要新增為修補 IAM 角色名稱尾碼的唯一命名空間。相同的命名空間應該用於成員角色和成員堆疊。對於每個解決方案部署,此字串應該是唯一的,但不需要在堆疊更新期間變更。命名空間值不需要每個成員帳戶是唯一的。

Sec Hub 帳戶管理員

需要輸入

輸入 AWS Security Hub 管理員帳戶的 12 位數帳戶 ID。此值會將許可授予管理員帳戶的解決方案角色。

  1. 根據您的組織政策,部署到整個組織 (典型) 或組織單位。

  2. 開啟自動部署,讓 AWS Organizations 中的新帳戶收到這些許可。

  3. 針對指定區域參數,選取單一區域。IAM 角色是全域的。您可以在此 StackSet 部署時繼續執行步驟 3。

    指定 StackSet 詳細資訊

    指定堆疊集詳細資訊

步驟 3:在每個 AWS Security Hub 成員帳戶和區域中啟動成員堆疊

由於成員堆疊使用巢狀堆疊,您必須部署為自我管理的 StackSet。這不支援自動部署到 AWS Organization 中的新帳戶。

Parameters

參數 預設 說明

提供用於建立指標篩選條件和警示的 LogGroup 名稱

需要輸入

指定 CloudTrail 記錄 API 呼叫的 CloudWatch CloudWatch Logs 群組名稱。這用於 CIS 3.1-3.14 修復。

載入 SC 成員堆疊

yes

指定是否要安裝成員元件以自動修復 SC 控制項。

載入 AFSBP 成員堆疊

no

指定是否要安裝成員元件以自動修復 FSBP 控制項。

載入 CIS120 成員堆疊

no

指定是否要安裝成員元件以自動修復 CIS120 控制項。

載入 CIS140 成員堆疊

no

指定是否要安裝成員元件以自動修復 CIS140 控制項。

載入 CIS300 成員堆疊

no

指定是否要安裝成員元件以自動修復 CIS300 控制項。

載入 PC1321 成員堆疊

no

指定是否要安裝成員元件以自動修復 PC1321 控制項。

載入 NIST 成員堆疊

no

指定是否要安裝成員元件以自動修復 NIST 控制項。

為 Redshift 稽核記錄建立 S3 儲存貯體

no

選取yes是否應為 FSBP RedShift.4 修復建立 S3 儲存貯體。如需 S3 儲存貯體和修復的詳細資訊,請參閱 AWS Security Hub 使用者指南中的 Redshift.4 修復

Sec Hub 管理員帳戶

需要輸入

輸入 AWS Security Hub 管理員帳戶的 12 位數帳戶 ID。

命名空間

需要輸入

輸入最多 9 個小寫英數字元的字串。此字串會成為 IAM 角色名稱和動作日誌 S3 儲存貯體的一部分。針對成員堆疊部署和成員角色堆疊部署使用相同的值。每個解決方案部署的字串應該是唯一的,但不需要在堆疊更新期間變更。

EnableCloudTrailForASRActionLog

no

yes 如果您想要監控 CloudWatch 儀表板上解決方案執行的管理事件,請選取 。解決方案會在您選取 的每個成員帳戶中建立 CloudTrail 追蹤yes。您必須將解決方案部署至 AWS Organization 以啟用此功能。此外,您只能在相同帳戶中的單一區域中啟用此功能。請參閱 成本 一節,了解這會產生的額外成本。

帳戶

帳戶

部署位置:您可以指定帳戶號碼或組織單位的清單。

指定區域:選取您要修復問題清單的所有區域。您可以根據帳戶和區域的數目適當調整部署選項。區域並行可以是平行的。