本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
將 Systems Manager Automation Runbook 整合到 Incident Manager 中,以進行事件修復
您可以使用 AWS Systems Manager Automation 的 Runbook,這是 的功能 AWS Systems Manager,來自動化 AWS 雲端 環境中常見的應用程式和基礎設施任務。
每個 Runbook 都會定義 Runbook 工作流程 ,由 Systems Manager 對受管節點或其他 AWS 資源類型執行的動作組成。您可以使用 Runbook 自動化資源 AWS 的維護、部署和修復。
在 Incident Manager 中,runbook 會驅動事件回應和緩解,而您會指定要用來作為回應計劃一部分的 Runbook。
在您的回應計劃中,您可以從數十個預先設定的 Runbook 中,為一般自動執行的任務進行選擇,也可以建立自訂 Runbook。當您在回應計畫定義中指定 Runbook 時,系統可在事件啟動時自動啟動 Runbook。
重要
跨區域容錯移轉建立的事件不會叫用回應計劃中指定的 Runbook。
如需有關 Systems Manager 自動化、 Runbook 和搭配 Incident Manager 使用 Runbook 的詳細資訊,請參閱下列主題:
-
若要將 Runbook 新增至回應計劃,請參閱 在 Incident Manager 中建立和設定回應計劃。
-
若要進一步了解 Runbook,請參閱 AWS Systems Manager 使用者指南 和 AWS Systems Manager Automation AWS Systems Manager Runbook 參考 中的自動化。
-
如需使用 Runbook 的成本資訊,請參閱 Systems Manager 定價
。 -
如需在 Amazon CloudWatch 警示或 Amazon EventBridge 事件建立事件時自動叫用 Runbook 的資訊,請參閱教學課程:搭配 Incident Manager 使用 Systems Manager Automation Runbook。
IAM 啟動和執行 Runbook 工作流程所需的許可
Incident Manager 需要執行手冊的許可,才能作為事件回應的一部分。若要提供這些許可,您可以使用 AWS Identity and Access Management (IAM) 角色、 Runbook 服務角色 和 Automation AssumeRole
。
Runbook 服務角色是必要的服務角色。此角色為 Incident Manager 提供存取和啟動 Runbook 工作流程所需的許可。
自動化AssumeRole
提供執行 Runbook 中指定的個別命令所需的許可。
注意
如果未指定任何 AssumeRole
,Systems Manager Automation 會嘗試針對個別命令使用 Runbook 服務角色。如果您未指定 AssumeRole
,則必須將必要的許可新增至 Runbook 服務角色。如果沒有,則 Runbook 無法執行這些命令。
不過,作為安全最佳實務,我們建議您使用單獨的 AssumeRole
。使用單獨的 AssumeRole
,您可以限制您必須新增至每個角色的必要許可。
如需 Automation 的詳細資訊AssumeRole
,請參閱 AWS Systems Manager 使用者指南 中的設定自動化的服務角色 (假設角色) 存取權。
您可以在IAM主控台中自行手動建立任一類型的角色。- 您也可以讓 Incident Manager 在建立或更新回應計劃時為您建立任一類型的角色。
Runbook 服務角色許可
Runbook 服務角色許可是透過類似下列的政策提供。
第一個陳述式可讓 Incident Manager 啟動 Systems Manager StartAutomationExecution
操作。然後,此操作會在由三種 Amazon Resource Name (ARN) 格式表示的資源上執行。
第二個陳述式允許 Runbook 服務角色在受影響的帳戶中執行 Runbook 時,在另一個帳戶中擔任角色。如需詳細資訊,請參閱 AWS Systems Manager 使用者指南 中的在多個 AWS 區域 和 帳戶中執行自動化。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "ssm:StartAutomationExecution", "Resource": [ "arn:aws:ssm:*:{{DocumentAccountId}}:automation-definition/{{DocumentName}}:*", "arn:aws:ssm:*:{{DocumentAccountId}}:document/{{DocumentName}}:*", "arn:aws:ssm:*::automation-definition/{{DocumentName}}:*" ] }, { "Effect": "Allow", "Action": "sts:AssumeRole", "Resource": "arn:aws:iam::*:role/AWS-SystemsManager-AutomationExecutionRole", "Condition": { "StringEquals": { "aws:CalledViaLast": "ssm.amazonaws.com" } } } ] }
自動化 AssumeRole 許可
當您建立或更新回應計劃時,您可以從數個 AWS 受管政策中選擇要連接至 Incident Manager 建立 AssumeRole 的 。這些政策提供許可,以執行用於 Incident Manager Runbook 案例的許多常見操作。您可以選擇一或多個這些受管政策來提供
AssumeRole
政策的許可。下表說明從
AssumeRole
Incident Manager 主控台建立 時可以選擇的政策。
AWS 受管政策名稱 | 政策描述 |
---|---|
AmazonSSMAutomationRole |
准許 Systems Manager Automation 服務執行 Runbook 中定義的活動。將此政策指派給管理員和信任的高權限使用者。 |
AWSIncidentManagerResolverAccess |
准許使用者啟動、檢視和更新事件。您也可以使用它們在事件儀表板中建立客戶時間軸事件和相關項目。 |
您可以使用這些受管政策,授予許多常見事件回應案例的許可。不過,您需要的特定任務所需的許可可能會有所不同。在這些情況下,您需要為 提供額外的政策許可AssumeRole
。如需詳細資訊,請參閱 AWS Systems Manager Automation Runbook 參考 。
使用 Runbook 參數
將 Runbook 加入回應計劃時,您可以指定 Runbook 在執行時間應使用的參數。回應計劃支援具有靜態和動態值的參數。對於靜態值,您可以在定義回應計劃中的參數時輸入值。對於動態值,系統會透過從事件中收集資訊來確定正確的參數值。Incident Manager 支援以下動態參數:
Incident ARN
-
當 Incident Manager 建立事件時,系統會擷取對應事件記錄的 Amazon Resource Name (ARN),並在 Runbook 中輸入此參數。
注意
此值只能指派給
String
類型的參數。如果指派給任何其他類型的參數,則無法執行 Runbook。 Involved resources
-
當 Incident Manager 建立事件時,系統會擷取事件中涉及ARNs的資源。這些資源接著ARNs會指派給 Runbook 中的此參數。
關於相關聯的資源
Incident Manager 可以將 CloudWatch 警示、 EventBridge 事件和手動建立的事件中指定的ARNs AWS 資源的 填入 Runbook 參數值。本節說明當 Incident Manager 填入此參數ARNs時,可以擷取的不同類型的資源。
CloudWatch 警示
從 CloudWatch 警示動作建立事件時,Invent Manager 會自動從相關聯的指標中擷取下列類型的資源。然後,它會使用下列涉及的資源填入選取的參數:
AWS 服務 | 資源類型 |
---|---|
Amazon DynamoDB |
全域次要索引 串流 資料表 |
Amazon EC2 |
映像 執行個體 |
AWS Lambda |
函數別名 函數版本 函數 |
Amazon Relational Database Service (Amazon RDS) |
叢集 資料庫執行個體 |
Amazon Simple Storage Service (Amazon S3) |
儲存貯體 |
EventBridge 規則
當系統從 EventBridge 事件建立事件時,Incident Manager 會將事件中選取的參數填入 Resources
屬性。如需詳細資訊,請參閱 Amazon EventBridge 使用者指南 中的 Amazon 事件。 EventBridge
手動建立的事件
當您使用 StartIncidentAPI動作建立事件時,Invent Manager 會使用API通話中的資訊填入選取的參數。具體而言,它會使用在參數中傳遞的類型項目INVOLVED_RESOURCE
來填入relatedItems
參數。
注意
該INVOLVED_RESOURCES
值只能指派給類型 的參數StringList
。如果指派給任何其他類型的參數,則無法執行 Runbook。
定義 Runbook
建立 Runbook 時,您可以遵循此處提供的步驟,也可以遵循 Systems Manager 使用者指南 中的使用 Runbook 一節所提供的更詳細指南。 如果您要建立多帳戶、多區域 Runbook,請參閱 Systems Manager 使用者指南 中的在多個 AWS 區域 和 帳戶中執行自動化。
定義 Runbook
-
在 開啟 Systems Manager 主控台https://console.aws.amazon.com/systems-manager/
。 -
在導覽窗格中,選擇 Documents (文件)。
-
選擇 Create automation (建立自動化)。
-
輸入唯一且可識別的 Runbook 名稱。
-
輸入 Runbook 的說明。
-
為要擔任的自動化文件提供IAM角色。這可讓 Runbook 自動執行命令。如需詳細資訊,請參閱設定 Automation 工作流程的服務角色存取權。
-
(選用) 新增 Runbook 開頭的任何輸入參數。您可以在啟動 Runbook 時使用動態或靜態參數。動態參數會使用 Runbook 啟動之事件的值。靜態參數會使用您提供的值。
-
(選用) 新增目標類型。
-
(選用) 新增標籤。
-
填寫 Runbook 執行時將採取的步驟。每個步驟都需要:
-
名稱。
-
步驟用途的說明。
-
步驟期間要執行的動作。Runbook 使用暫停動作類型來描述手動步驟。
-
(選用) 命令屬性。
-
-
新增所有必要的 Runbook 步驟後,選擇建立自動化 。
若要啟用跨帳戶功能,請將管理帳戶中的 Runbook 與事件期間使用 Runbook 的所有應用程式帳戶共用。
共用 Runbook
-
在 開啟 Systems Manager 主控台https://console.aws.amazon.com/systems-manager/
。 -
在導覽窗格中,選擇 Documents (文件)。
-
在文件清單中,選擇您要共用的文件,然後選擇檢視詳細資訊 。在 Permissions (許可) 索引標籤中,驗證您是文件的擁有者。只有文件擁有者可以分享文件。
-
選擇編輯。
-
若要公開共享命令,選擇 Public (公有),然後選擇 Save (儲存)。若要私下共用命令,請選擇私有 、輸入 AWS 帳戶 ID、選擇新增許可 ,然後選擇儲存 。
Incident Manager Runbook 範本
Incident Manager 提供下列 Runbook 範本,以協助您的團隊開始在 Systems Manager 自動化中編寫 Runbook。您可以使用此範本,或對其進行編輯,以包含應用程式和資源的特定詳細資訊。
尋找 Incident Manager Runbook 範本
-
在 開啟 Systems Manager 主控台https://console.aws.amazon.com/systems-manager/
。 -
在導覽窗格中,選擇 Documents (文件)。
-
在文件區域中,
AWSIncidents-
輸入搜尋欄位以顯示所有 Incident Manager Runbook。提示
輸入
AWSIncidents-
作為任意文字,而不是使用文件名稱字首篩選條件選項。
使用範本
-
在 開啟 Systems Manager 主控台https://console.aws.amazon.com/systems-manager/
。 -
在導覽窗格中,選擇 Documents (文件)。
-
從文件清單中選擇您要更新的範本。
-
選擇內容索引標籤,然後複製文件的內容。
-
在導覽窗格中,選擇 Documents (文件)。
-
選擇 Create automation (建立自動化)。
-
輸入唯一且可識別的名稱。
-
選擇編輯器索引標籤。
-
選擇編輯。
-
在文件編輯器區域中貼上或輸入複製的詳細資訊。
-
選擇 Create automation (建立自動化)。
AWSIncidents-CriticalIncidentRunbookTemplate
AWSIncidents-CriticalIncidentRunbookTemplate
是提供手動步驟中 Incident Manager 事件生命週期的範本。這些步驟的通用性足以在大多數應用程式中使用,但詳細資訊足以讓回應者開始使用事件解決方案。