AWS Systems Manager 自動化 - AWS Systems Manager

AWS Systems Manager 自動化

注意

Automation 文件現在稱為 Runbook。

Automation (AWS Systems Manager 功能) 簡化 Amazon Elastic Compute Cloud (Amazon EC2) 執行個體和其他 AWS 資源的一般維護和部署任務。自動化可讓您執行以下動作:

  • 建置自動化,以設定和管理執行個體與 AWS 資源。

  • 建立自訂 Runbook 或使用由 AWS 維護的預先自訂 Runbook。

  • 使用 Amazon EventBridge 接收有關 Automation 任務和 Runbook 的通知。

  • 使用 Systems Manager 主控台監控自動化進度和詳細資訊。

主要元件

Systems Manager Automation 會使用下列元件來執行自動化

概念 詳細資訊

Automation Runbook

Systems Manager Automation Runbook 定義自動化 (Systems Manager 在受管執行個體 和 AWS 資源上執行的動作)。自動化包含數個預先定義的 Runbook,供您用來執行常見任務,像是重新啟動一個或多個 Amazon EC2 執行個體,或建立 Amazon Machine Image (AMI)。您也可以建立自己的 Runbook。Runbooks 使用 JavaScript 物件標記法 (JSON) 或 YAML,其中包括您指定的步驟和參數。步驟會循序執行。如需更多詳細資訊,請參閱 使用 Runbook

Runbook 是類型 Automation 的 Systems Manager 文件,而不是 CommandPolicySession 文件)。Runbook 支援結構描述版本 0.3。命令文件使用結構描述版本 1.2、2.0 或 2.2。政策文件使用結構描述版本 2.0 或更新版本。

自動化動作

Runbook 中定義的自動化包含一個或多個步驟。每個步驟皆與一個特定動作關聯。動作會決定輸入、行為和步驟的輸出。Runbook 的 mainSteps 章節中會定義步驟。自動化支援 20 個不同的動作類型。如需詳細資訊,請參閱 Systems Manager Automation 動作參考

自動化配額

每個 AWS 帳戶 可以同時執行 100 個自動化作業。這包括子系自動化 (由另一個自動化啟動的自動化),以及費率控制自動化。如果您嘗試執行超過此數量的自動化,Systems Manager 會將額外自動化新增至佇列並顯示待定狀態。如需執行自動化的相關詳細資訊,請參閱 執行簡易自動化

自動化佇列配額

如果您嘗試執行的自動化超過並行自動化限制,則後續的自動化會新增至佇列。每個 AWS 帳戶 可將 1,000 個自動化排入佇列。自動化完成時 (或達到結束狀態),佇列中的第一個自動化就會啟動。

費率控制自動化配額

每個 AWS 帳戶 可以同時執行 25 個自動化作業。如果您嘗試執行的費率控制自動化超過並行費率控制自動化限制,則 Systems Manager 會將後續費率控制自動化新增至佇列並顯示「待處理」狀態。如需執行費率控制自動化的詳細資訊,請參閱 執行使用目標和速率控制的自動化

費率控制自動化佇列配額

如果您嘗試執行的自動化超過並行費率控制自動化限制,則後續的自動化會新增至佇列。每個 AWS 帳戶 可將 1,000 個費率控制自動化排入佇列。自動化完成時 (或達到結束狀態),佇列中的第一個自動化就會啟動。

自動化使用案例

本節包含 Systems Manager 自動化的常見使用案例。

執行一般 IT 任務

自動化可以簡化一般 IT 任務,例如變更一個或多個執行個體的狀態 (使用核准自動化) 和根據排程管理執行個體狀態。以下是一些範例:

  • 使用 AWS-StopEC2InstanceWithApproval Runbook 以請求一或多個 AWS Identity and Access Management (IAM) 使用者核准執行個體停止動作。收到核准之後,自動化會停止執行個體。

  • 使用 AWS-StopEC2Instance Runbook,透過 Amazon EventBridge 或透過維護時段任務,根據排程來自動停止執行個體。例如,您可以設定自動化在每週五晚上停止執行個體,接著在每週一早上重新啟動。

  • 使用 AWS-UpdateCloudFormationStackWithApproval Runbook 更新藉由使用 AWS CloudFormation 範本部署的資源。更新會套用新的範本。您可以設定自動化以請求一個或多個 IAM 使用者在更新開始之前核准。

如需有關如何使用 State Manager 執行 Runbook 的詳細資訊,請參閱 使用 State Manager 以根據觸發執行自動化

安全執行大量破壞性工作

Systems Manager 包含的功能可協助您使用 Amazon EC2 標籤以大型執行個體群組為目標,而速度控制可協助您根據您定義的限制推出變更。

使用 AWS-RestartEC2InstanceWithApproval Runbook 以包含多個執行個體的 AWS 資源群組為目標。您可以設定自動化以使用速度控制。例如,您可以指定要同時重新啟動的執行個體數目。您也可以指定在自動化取消之前允許的錯誤數量上限。

簡化複雜的任務

自動化提供一鍵式自動化功能,可簡化複雜的任務,例如建立最佳 Amazon Machine Images (AMIs) 和復原無法連線的 EC2 執行個體。以下是一些範例:

  • 使用 AWS-UpdateLinuxAmiAWS-UpdateWindowsAmi Runbook 建立來源 AMI 的金色 AMIs。您可以在更新套用前後執行自訂指令碼。您也可以包含或排除特定套件以防止安裝。如需如何執行自動化的範例,請參閱 自動化演練

  • 使用 AWSSupport-ExecuteEC2Rescue Runbook 來復原受損的執行個體。執行個體可能會因為各種原因而無法連線,包括網路設定錯誤、RDP 問題或防火牆設定。要針對先前的執行個體疑難排解並重新恢復存取,您必須先執行十幾道手動步驟,才能夠重新恢復存取。您可以使用 AWSSupport-ExecuteEC2Rescue Runbook 以透過指定執行個體 ID 和按一下按鈕重新恢復存取。如需如何執行自動化的更多範例,請參閱 演練:在無法觸達的執行個體上執行 EC2Rescue 工具

強化操作安全

藉由委託管理,您可以針對各種類型的任務限制或提升使用者許可。

委託管理讓您能夠針對特定資源上的特定任務提供許可,不必給予使用者存取資源的直接許可。這可改善您整體的安全性描述檔。例如,假設 User1 沒有重新啟動 Amazon EC2 執行個體的許可,但您想要授權該使用者這麼做。除了給予 User1 直接許可,您可以:

  • 建立 IAM 角色,使其擁有成功停止和啟動 Amazon EC2 執行個體所需的許可。

  • 建立 Runbook 並在 Runbook 中內嵌角色。(最簡單的方式是自訂 AWS-RestartEC2Instance Runbook 並在文件中內嵌角色,而非指定 Automation 服務角色 [或擔任角色])。

  • 為 User1 修改 IAM 許可並給予使用者執行 Runbook 的許可。

如需委派存取權給自動化的範例,請參閱 使用委託管理執行自動化

分享最佳實務

使用 Automation 可讓您與整個組織分享最佳實務。

您可以在 Runbook 中針對資源管理建立最佳實務,並在 AWS 區域 和群組中共用 Runbook。您也可以限制 Runbook 接受之參數的允許值。

EventBridge 支援

此 Systems Manager 功能作為 Amazon EventBridge 規則中的目標類型受到支援。如需詳細資訊,請參閱使用 Amazon EventBridge 監控 Systems Manager參考:Systems Manager 的 Amazon EventBridge 事件模式和類型