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