本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
在多個帳戶 AWS 區域 和帳戶中運行自動化
您可以從中央帳戶在多個 AWS 區域 和/ AWS 帳戶 或 AWS Organizations 組織單位 (OUs) 上執行 AWS Systems Manager 自動化作業。自動化是的一項功能 AWS Systems Manager。在多個區域和帳戶中執行自動化作業,或OUs縮短管理 AWS 資源所需的時間,同時提升運算環境的安全性。
例如,您可以使用自動化 Runbook 來執行下列動作:
-
集中實作修補和安全性更新。
-
修復VPC組態或 Amazon S3 儲存貯體政策上的合規偏移。
-
大規模管理資源,例如 Amazon 彈性運算雲端 (AmazonEC2) EC2 執行個體。
下圖顯示範例為使用者從中央帳戶的多個區域和帳戶中執行 AWS-RestartEC2Instances
Runbook。自動化會使用目標區域和帳戶中的指定標籤找出執行個體。
注意
當您跨多個區域和帳號執行自動化操作時,您可以使用標籤或資 AWS 源群組的名稱來鎖定資源。資源群組必須存在於每個目標帳戶和區域中。每個目標帳戶與區域中的資源群組名稱必須相同。在沒有指定標籤或未包含於指定資源群組的資源上,自動化會無法執行。
選擇自動化的中央帳戶
如果您想要跨越執行自動化OUs,中央帳戶必須具有列出中所有帳戶的權限。OUs只有委派管理員帳戶或組織的管理帳戶才能執行此操作。我們建議您遵循 AWS Organizations 最佳做法,並使用委派的系統管理員帳戶。如需有關 AWS Organizations 最佳做法的詳細資訊,請參閱AWS Organizations 使用者指南中的管理帳戶的最佳做法。若要 AWS CLI 為 Systems Manager 建立委派的系統管理員帳戶,您可以使用register-delegated-administrator
命令,如下列範例所示。
aws organizations register-delegated-administrator \ --account-id
delegated admin account ID
\ --service-principal ssm.amazonaws.com
如果您想要在不受 AWS Organizations管理的多個帳戶執行自動化,則我們建議您為自動化管理建立專屬帳戶。從專屬帳戶執行所有跨帳戶自動化功能,可簡化IAM權限管理、疑難排解工作,並在作業與管理之間建立分隔層。如果您使用此方法,也建議您使用此方法 AWS Organizations,但只想以個別帳戶為目標,而不是OUs。
執行自動化的運作方式
跨多個區域和帳戶執行自動化作業,或依照下列方式運OUs作:
-
確認您要在其上執行自動化操作的所有資源,在所有區域和帳戶中OUs,或者使用相同的標籤。如果沒有,您可以將它們新增至 AWS 資源群組,並將該群組鎖定為目標。如需詳細資訊,請參閱《AWS Resource Groups 和標籤使用者指南》中的什麼是資源群組?。
-
登入您想要設定為自動化主帳戶的帳戶。
-
請使用本主題中的設定多區域和多帳戶自動化的管理帳戶許可程序來建立下列IAM角色:
-
AWS-SystemsManager-AutomationAdministrationRole
-此角色授予用戶在多個帳戶和OUs中運行自動化的權限。 -
AWS-SystemsManager-AutomationExecutionRole
- 此角色可給予使用者在目標帳戶中執行自動化的許可。
-
-
選擇 Runbook、地區和帳戶,或者您OUs要執行自動化的位置。
注意
自動化不會遞歸地執行。OUs請確定目標 OU 包含所需的帳戶。如果您選擇自訂 Runbook,則 Runbook 必須與所有目標帳戶共用。如需共用 Runbook 的資訊,請參閱 分享 SSM 文件。如需共用 Runbook 的詳細資訊,請參閱 使用 SSM 共用文件。
-
執行自動化。
注意
在多個區域、帳戶或OUs執行自動化操作時,您從主要帳戶執行的自動化操作會在每個目標帳戶中啟動子項自動化。主要帳戶中的自動化對每個目標帳戶包含
aws:executeAutomation
個步驟。如果您從 2019 年 3 月 20 日後啟動的新區域啟動自動化操作,並以預設為啟用的區域為目標,則自動化操作會失敗。如果您從預設啟用的區域啟動自動化操作,並以您已啟用的區域為目標,則自動化會成功執行。 -
使用GetAutomationExecutionDescribeAutomationStepExecutions、和DescribeAutomationExecutionsAPI操作從 AWS Systems Manager 主控台或監視 AWS CLI 自動化進度。在您的主要帳戶中自動化步驟的輸出將是子系自動化的
AutomationExecutionId
。若要檢視在目標帳戶中建立之子系自動化的輸出,請務必在您的請求中指定適當的帳戶、區域和AutomationExecutionId
。
設定多區域和多帳戶自動化的管理帳戶許可
使用下列程序來建立 Systems Manager 自動化多區域和多帳戶自動化所需的IAM角色。 AWS CloudFormation此處理程序描述了如何建立 AWS-SystemsManager-AutomationAdministrationRole
角色。您只需要在自動化中央帳戶中建立此角色。此處理程序也描述了如何建立 AWS-SystemsManager-AutomationExecutionRole
角色。您必須在想要設為目標以執行多區域和多帳戶自動化的每個帳戶中建立此角色。我們建議您使用 AWS CloudFormation StackSets ,在您要指定的帳戶中建立AWS-SystemsManager-AutomationExecutionRole
角色,以執行多區域和多帳戶自動化。
若要建立多區域和多帳戶自動化所需的IAM管理角色,請使用 AWS CloudFormation
-
下載並解壓縮
AWS-SystemsManager-AutomationAdministrationRole.zip
。或者,如果您的帳戶由管理 AWS OrganizationsAWS-SystemsManager-AutomationAdministrationRole (org).zip
。此檔案包含AWS-SystemsManager-AutomationAdministrationRole.yaml
AWS CloudFormation 範本檔案。 請在以下位置開啟 AWS CloudFormation 主控台。
https://console.aws.amazon.com/cloudformation -
選擇 Create Stack (建立堆疊)。
-
在 Specify template (指定範本) 區段中,選擇 Upload a template file (上傳範本檔案)。
-
選擇 [選擇檔案],然後選擇
AWS-SystemsManager-AutomationAdministrationRole.yaml
AWS CloudFormation 範本檔案。 -
選擇 Next (下一步)。
-
在 Specify stack details (指定堆疊詳細資訊) 頁面,於 Stack name (堆疊名稱) 欄位輸入名稱。
-
選擇 Next (下一步)。
-
在 Configure stack options (設定堆疊選項) 頁面,針對您想要使用的任何選項輸入值。選擇 Next (下一步)。
-
在 [檢閱] 頁面上,向下捲動並選擇 [我確認 AWS CloudFormation 可能會使用自訂名稱建立IAM資源] 選項。
-
選擇建立堆疊。
AWS CloudFormation 顯示 CREATE_IN_ PROGRESS 狀態大約三分鐘。狀態變更為 CREATE_ COMPLETE。
您必須在您想要設為目標以執行多區域和多帳戶自動化的每個帳戶中重複下列程序。
若要建立多區域和多帳戶IAM自動化所需的自動化角色,請使用 AWS CloudFormation
-
下載
AWS-SystemsManager-AutomationExecutionRole.zip
。或者,如果您的帳戶由管理 AWS OrganizationsAWS-SystemsManager-AutomationExecutionRole (org).zip
。此檔案包含AWS-SystemsManager-AutomationExecutionRole.yaml
AWS CloudFormation 範本檔案。 請在以下位置開啟 AWS CloudFormation 主控台。
https://console.aws.amazon.com/cloudformation -
選擇 Create Stack (建立堆疊)。
-
在 Specify template (指定範本) 區段中,選擇 Upload a template file (上傳範本檔案)。
-
選擇 [選擇檔案],然後選擇
AWS-SystemsManager-AutomationExecutionRole.yaml
AWS CloudFormation 範本檔案。 -
選擇 Next (下一步)。
-
在 Specify stack details (指定堆疊詳細資訊) 頁面,於 Stack name (堆疊名稱) 欄位輸入名稱。
-
在 [參數] 區段的AdminAccountId欄位中,輸入自動化中央帳戶的 ID。
-
如果您要為 AWS Organizations 環境設定此角色,則區段中還有另一個名為 Organation ID 的欄位。輸入您 AWS 組織的 ID。
-
選擇 Next (下一步)。
-
在 Configure stack options (設定堆疊選項) 頁面,針對您想要使用的任何選項輸入值。選擇 Next (下一步)。
-
在 [檢閱] 頁面上,向下捲動並選擇 [我確認 AWS CloudFormation 可能會使用自訂名稱建立IAM資源] 選項。
-
選擇建立堆疊。
AWS CloudFormation 顯示 CREATE_IN_ PROGRESS 狀態大約三分鐘。狀態變更為 CREATE_ COMPLETE。
在多個區域和帳戶中執行自動化 (主控台)
以下程序說明如何使用 Systems Manager 主控台,從 Automation 管理帳戶中於多個區域和帳戶內執行自動化。
開始之前
完成以下程序之前,請記下以下資訊:
-
您用來執行多區域或多帳戶自動化的使用者或角色必須具有該
AWS-SystemsManager-AutomationAdministrationRole
角色的iam:PassRole
許可。 -
AWS 帳戶 IDs或者您OUs想要執行自動化的位置。
-
您希望執行自動化的 Systems Manager 支援區域。
-
您希望執行自動化的資源群組標籤鍵或標籤值,或是其名稱。
在多個區域和帳戶中執行自動化
在開啟 AWS Systems Manager 主控台https://console.aws.amazon.com/systems-manager/
。 -
在導覽窗格中,選擇 Automation (自動化),接著選擇 Execute automation (執行自動化)。
-
在 Automation document (自動化文件)清單中,選擇 Runbook。在 [文件類別] 窗格中選擇一或多個選項,以根據SSM文件用途篩選文件。若要檢視您擁有的 Runbook,請選擇 Owned by me (我所擁有的) 索引標籤。若要檢視與您帳戶共用的 Runbook,請選擇 Shared with me (與我共用的) 索引標籤。若要檢視所有 Runbook,請選擇 All documents (所有文件) 索引標籤。
注意
您可以選擇 Runbook 名稱檢視 Runbook 資訊。
-
在 Document details (文件詳細資訊) 部分,確認 Document version (文件版本) 設定為您想要執行的版本。系統包括以下版本選項:
-
執行期的預設版本:如果 Automation 執行手冊會定期更新且已指派新的預設版本,則請選擇此選項。
-
執行期的最新版本:如果 Automation 執行手冊會定期更新,而您想要執行最近更新的版本,請選擇此選項。
-
1 (預設):選擇此選項以執行文件的第一個版本,也是預設版本。
-
-
選擇 Next (下一步)。
-
在 Execute automation document (執行自動化文件) 頁面,選擇 Multi-account and Region (多帳戶和區域)。
-
在 [目標帳戶和地區] 區段中,使用 [帳戶和組織] (OUs) 欄位來指定您要執行自動化操作的不同單位 AWS 帳戶 或 AWS 組織單位 (OUs)。分隔多個帳戶或OUs以逗號分隔。
-
使用 AWS 區域 清單選擇您想要執行自動化的一個或多個區域。
-
使用 Multi-Region and account rate control (多區域和帳戶速率控制) 選項將自動化限制為數量有限的帳戶在數量有限的區域中執行。這些選項不會限制能夠執行自動化的 AWS 資源數量。
-
在 Location (account-Region pair) concurrency (位置 (帳戶區域對) 並行) 部分,選擇一個選項以限制能夠同時在多個帳戶和區域中執行的自動化數量。例如,如果您選擇在五 (5) 個中執行位於四 (4) AWS 帳戶個的自動化操作 AWS 區域,則 Systems Manager 會以總共 20 個帳戶-區域配對執行自動化作業。您可以使用此選項指定一個絕對數字,例如
2
,這樣自動化就只會同時在兩個帳戶區域對中執行。或者您也能指定可同時執行的帳戶區域對百分比。例如有 20 個帳戶區域對,假設您指定了 20%,則自動化會同時在最多五 (5) 個帳戶區域對中執行。-
選擇 targets (目標),輸入可以同時執行自動化的帳戶區域對絕對數量。
-
選擇 percent (百分比),輸入可以同時執行自動化的帳戶區域對總數之百分比。
-
-
在 Error threshold (錯誤閾值) 部分,選擇一個選項:
-
選擇 errors (錯誤),輸入在 Automation 停止傳送自動化至其他資源之前允許的錯誤絕對數量。
-
選擇 percent (百分比),輸入在 Automation 停止傳送自動化至其他資源之前允許的錯誤百分比。
-
-
在「目標」段落中,選擇要以 AWS 資源為目標的目標方式來執行「自動化」。這些選項是必要的。
-
使用 Parameter (參數) 清單選擇一個參數。Parameter (參數) 清單中的項目,是由您在此程序一開始所選取自動化 Runbook 中的參數決定。藉由選擇參數,您就會定義自動化工作流程執行的資源類型。
-
使用 Targets (目標) 清單選擇您想要如何將資源設為目標。
如果您選擇使用參數值將資源設為目標,則請在 Input parameters (輸入參數) 區段為您所選的參數輸入參數值。
如果您選擇使用來鎖定資源的目標 AWS Resource Groups,請從資源群組清單中選擇群組的名稱。
如果您選擇使用標籤將資源設為目標,請在提供的欄位中輸入標籤索引鍵 (選用) 和標籤值。選擇新增。
如果您想要在目前 AWS 帳戶 的所有執行個體上執行自動化 Runbook AWS 區域,請選擇 [所有執行個體]。
-
-
在 Input parameters (輸入參數) 部分,指定所需的輸入。從AutomationAssumeRole清單中選擇
AWS-SystemsManager-AutomationAdministrationRole
IAM服務角色。注意
您可能不必選擇 Input parameters (輸入參數) 部分的其中一些選項。這是因為您使用標籤或資源群組在多個區域和帳戶中將資源設為目標。例如,如果您選擇
AWS-RestartEC2Instance
runbook,則不需要在 [輸入參數] 區段IDs中指定或選擇執行個體。自動化會使用您指定的標籤找出要重新啟動的執行個體。 -
(選擇性) 選擇要套用至您的自動化動作以進行監控的 CloudWatch 警示。若要將 CloudWatch 警示附加至您的自動化操作,啟動自動化操作的IAM主體必須具有
iam:createServiceLinkedRole
動作的權限。如需有關 CloudWatch 警示的詳細資訊,請參閱使用 Amazon CloudWatch 警示。請注意,如果警示啟用,則會取消自動化,並會執行您定義的任何OnCancel
步驟。如果使用 AWS CloudTrail,則會在追蹤中看到API通話。 -
使用「費率控制」區段中的選項,限制可在每個帳戶-區域配對中執行「自動化」的 AWS 資源數目。
在 Concurrency (並行) 部分,選擇一個選項:
-
選擇 targets (目標),輸入可以同時執行自動化工作流程的目標絕對數量。
-
選擇 percentage (百分比),輸入可以同時執行自動化工作流程的目標集百分比。
-
-
在 Error threshold (錯誤閾值) 部分,選擇一個選項:
-
選擇 errors (錯誤),輸入在自動化停止傳送工作流程至其他資源之前允許的錯誤絕對數量。
-
選擇 percentage (百分比),輸入在自動化停止傳送工作流程至其他資源之前允許的錯誤百分比。
-
-
選擇 Execute (執行)。
在多個區域和帳戶中執行自動化 (命令列)
下列程序說明如何使用 AWS CLI (在 Linux 或 Windows 上),或從自動化管理帳戶在多個區域和帳戶中執行自動化操作。 AWS Tools for PowerShell
開始之前
完成以下程序之前,請記下以下資訊:
-
AWS 帳戶 IDs或者您OUs想要執行自動化的位置。
-
您希望執行自動化的 Systems Manager 支援區域。
-
您希望執行自動化的資源群組標籤鍵或標籤值,或是其名稱。
在多個區域和帳戶中執行自動化
安裝和配置 AWS CLI 或 AWS Tools for PowerShell,如果您尚未安裝。
如需相關資訊,請參閱安裝或更新 AWS CLI的最新版本和安裝 AWS Tools for PowerShell。
-
使用以下格式建立命令,在多個區域和帳戶中執行自動化。替換每個
example resource placeholder
使用您自己的信息。以下是數個範例。
範例 1:此範例會重新啟動位於
123456789012
和us-west-1
區域中的和987654321098
帳戶中的EC2us-east-2
執行個體。執行個體必須使用標籤金鑰對值Env-PROD
加上標籤。範例 2:此範例會重新啟動位於
eu-central-1
區域中的123456789012
和987654321098
帳戶中的EC2執行個體。執行個體必須是prod-instances
AWS 資源群組的成員。範例 3:此範例會重新啟動
ou-1a2b3c-4d5e6c
AWS 組織單位 (OU) 中的EC2執行個體。這些執行個體位於us-west-1
和us-west-2
區域。執行個體必須是WebServices
AWS 資源群組的成員。系統會傳回與以下相似的資訊。
-
執行以下命令檢視自動化的詳細資訊。Replace (取代)
automation execution ID
使用您自己的信息。 -
執行以下命令檢視自動化進度的詳細資訊。
注意
您也可以在主控台中監控自動化的狀態。在 Automation executions (自動化執行清單) 中,選擇您剛執行的自動化,接著選擇 Execution steps (執行步驟) 標籤。此索引標籤會顯示自動化動作的狀態。