本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
建立關聯
State Manager中的工具 AWS Systems Manager,可協助您將 AWS 資源保持在您定義和減少組態偏離的狀態。若要執行此操作,State Manager 會使用關聯。關聯是您指派給 AWS 資源的組態。該組態會定義您想在資源上維持的狀態。例如,關聯可以指定必須在受管節點上安裝和執行防毒軟體,或者必須關閉特定連接埠。
關聯會指定套用組態並以關聯為目標的排程。例如,防毒軟體的關聯可能在 AWS 帳戶的所有受管節點上一天執行一次。如果節點上未安裝軟體,則關聯會指示 State Manager 來安裝。如果已安裝軟體,但並未執行服務,則關聯可能會指示 State Manager 來啟動服務。
警告
建立關聯時,您可以選擇受管節點 AWS 的資源群組做為關聯的目標。如果 AWS Identity and Access Management (IAM) 使用者、群組或角色具有建立以受管節點資源群組為目標的關聯許可,則該使用者、群組或角色會自動擁有群組中所有節點的根層級控制。只有受信任的管理員才能建立關聯。
關聯目標和速率控制
關聯會指定哪些受管節點 (或目標) 應接收關聯。State Manager 包含多項功能,可協助您將受管節點設為目標,並控制如何將關聯部署至這些目標。如需目標和速率控制的詳細資訊,請參閱了解 State Manager 關聯中的目標和速率控制。
標記關聯
當您使用 AWS CLI 或 等命令列工具建立關聯時,您可以將標籤指派給關聯 AWS Tools for PowerShell。不支援使用 Systems Manager 主控台將標籤新增至關聯。
執行關聯
依預設,在您建立關聯後,State Manager 會立即執行關聯,之後再根據您定義的排程執行。
系統也會根據下列規則執行關聯:
-
State Manager 嘗試於間隔期間在所有已指定或設為目標的節點上執行關聯。
-
如果未在間隔期間執行關聯 (例如,因為並行值限制了一次所能處理關聯的節點數目),則 State Manager 會嘗試在下一個間隔期間執行關聯。
-
關聯組態、目標節點、文件或參數發生變更後,State Manager 會執行關聯。如需詳細資訊,請參閱 了解何時將關聯套用至資源
-
State Manager會記錄所有略過的間隔的歷程記錄。您可以在 Execution History (執行歷程記錄) 標記檢視歷程記錄。
排程關聯
您可以排程關聯,以基本間隔 (例如每 10 小時) 執行,也可以使用自訂 Cron 和 Rate 運算式建立更進階的排程。您也可以在第一次建立關聯時阻止執行關聯。
使用 Cron 和 Rate 運算式來排程關聯執行
State Manager 不僅支援標準的 Cron 和 Rate 運算式,還支援這類 Cron 運算式:包含一週中的某一天和數字符號 (#),來指定一個月的第 n 天執行關聯。以下是在每月第三個週二 23:30 UTC 執行 cron 排程的範例:
cron(30 23 ? * TUE#3 *)
以下是在每月第二個週四午夜 UTC 執行的範例:
cron(0 0 ? * THU#2 *)
State Manager 還支援 (L) 符號來指示一個月的最後 X 天。以下是在每月最後一個週二午夜 UTC 執行 cron 排程的範例:
cron(0 0 ? * 3L *)
若要進一步控制關聯的執行時間,例如,如果您希望在週二修補程式日後的兩天執行關聯,則可以指定偏移量。同時偏移定義在排程的日期之後等待多少天才能執行關聯。例如,如果您指定了 cron(0 0 ? * THU#2 *)
的 cron 排程,則可以在排程偏移欄位指定數字 3,以在該月第二個週四之後的每個週日執行關聯。
注意
若要使用偏移,必須在主控台選取僅在下一個指定的 Cron 間隔時間套用關聯,或者在命令列中指定 ApplyOnlyAtCronInterval
參數。啟用其中任一選項後,State Manager 不會在建立關聯後立即執行。
如需 Cron 和 Rate 運算式的詳細資訊,請參閱參考:Systems Manager 的 Cron 和 Rate 運算式。
建立關聯 (主控台)
下列程序說明如何使用 Systems Manager 主控台來建立 State Manager 關聯。
重要
此程序說明如何建立使用 Command
或 Policy
文件將受管節點設為目標的關聯。如需建立使用 Automation Runbook 鎖定節點或其他類型 AWS 資源的關聯的相關資訊,請參閱 使用 State Manager 關聯排程自動化。
建立 State Manager 關聯
在 https://https://console.aws.amazon.com/systems-manager/
開啟 AWS Systems Manager 主控台。 在導覽窗格中,選擇 State Manager。
-
選擇 Create association (建立關聯)。
-
在 Name (名稱) 欄位中指定名稱。
-
在 Document (文件) 清單中,選擇文件名稱旁的選項。請注意文件類型。此程序適用於
Command
和Policy
文件。如需建立使用 Automation Runbook 的關聯的相關資訊,請參閱 使用 State Manager 關聯排程自動化。重要
如果該文件是從另一個帳戶共用的,則 State Manager 不支援執行使用新版文件的關聯。如果是從另一個帳戶共用的,則 State Manager 一律執行文件的
default
版本,即使 Systems Manager 主控台顯示新版本已處理。如果您想要使用從另一個帳戶共用而來的新版本文件來執行關聯,則必須將文件版本設定為default
。 -
對於 Parameters (參數),指定所需的輸入參數。
-
(選用) 選擇要套用至您的監控關聯的 CloudWatch 警示。
注意
記下有關此步驟的以下資訊。
-
警示清單最多顯示 100 個警示。如果您在清單中看不到您的警示,請使用 AWS Command Line Interface 建立關聯。如需詳細資訊,請參閱建立關聯 (命令列)。
-
若要將 CloudWatch 警示附加至您的命令,建立關聯的 IAM 主體必須具備
iam:createServiceLinkedRole
動作的許可。如需有關 CloudWatch 警示的詳細資訊,請參閱使用 Amazon CloudWatch 警示。 -
如果您的警示啟用,則不會執行任何待處理命令叫用或自動化。
-
-
對於 Targets (目標),請選擇選項。如需使用目標的詳細資訊,請參閱了解 State Manager 關聯中的目標和速率控制。
注意
為了在偵測到新目標節點時套用透過 Automation 執行手冊建立的關聯,必須滿足特定條件。如需相關資訊,請參閱 關於透過 Automation 執行手冊的目標更新。
-
在 Specify schedule (指定排程) 區段中,選擇 On Schedule (按照排程) 或 No schedule (無排程)。如果您選擇 On Schedule (按照排程),請使用提供的按鈕來為關聯建立 Cron 或 Rate 排程。
如果您不希望在建立關聯之後立即執行關聯,請選擇 Apply association only at the next specified Cron interval (僅在下一個指定的 Cron 間隔套用關聯)。
-
(選用) 在 Schedule offset (排程偏移) 欄位中,指定介於 1 和 6 之間的數字。
-
在 Advanced options (進階選項) 區段中,使用 Compliance severity (合規嚴重) 選擇關聯的嚴重性等級,並使用 Change Calendars (變更行事曆) 選擇關聯的變更行事曆。
合規報告會指出關聯狀態合規與否,以及您在這裡指示的嚴重性等級。如需詳細資訊,請參閱關於State Manager關聯合規。
變更行事曆會決定何時執行關聯。如果行事曆已關閉,則不會套用關聯。如果行事曆處於開啟狀態,則會相應地執行關聯。如需詳細資訊,請參閱AWS Systems Manager Change Calendar。
-
在 Rate control (速率控制) 區段中,選擇選項來控制關聯在多個節點上的執行方式。如需使用速率控制的詳細資訊,請參閱了解 State Manager 關聯中的目標和速率控制。
在 Concurrency (並行) 部分,選擇一個選項:
-
選擇 targets (目標),輸入可以同時執行關聯的目標絕對數量。
-
選擇 percentage (百分比),輸入可以同時執行關聯的目標集百分比。
在 Error threshold (錯誤閾值) 部分,選擇一個選項:
-
選擇 errors (錯誤),輸入 State Manager 停止在額外目標執行關聯之前允許的錯誤絕對數量。
-
選擇 percentage (百分比),輸入 State Manager 停止在額外目標執行關聯之前允許的錯誤百分比。
-
(選用) 針對輸出選項,若要將命令輸出儲存至檔案,請選取啟用將輸出寫入 S3 方塊。在方塊中輸入儲存貯體和字首 (資料夾) 名稱。
注意
授予能力以將資料寫入至 S3 儲存貯體的 S3 許可,會是指派給受管節點之執行個體設定檔的許可,而不是執行此任務之 IAM 使用者的許可。如需詳細資訊,請參閱設定 Systems Manager 所需的執行個體許可或建立混合環境的 IAM 服務角色。此外,如果指定的 S3 儲存貯體位於不同的 中 AWS 帳戶,請確認與受管節點相關聯的執行個體設定檔或 IAM 服務角色具有寫入該儲存貯體的必要許可。
以下是開啟關聯的 Amazon Simple Storage Service (Amazon S3) 輸出所需的最低許可。您可以透過將 IAM 政策連接到帳戶內使用者或角色,以進一步限制存取。Amazon EC2 執行個體設定檔至少應擁有具備
AmazonSSMManagedInstanceCore
受管政策和下列內嵌政策的 IAM 角色。{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:PutObject", "s3:GetObject", "s3:PutObjectAcl" ], "Resource": "arn:aws:s3:::
amzn-s3-demo-bucket
/*" } ] }如需最低許可,接收匯出的 Amazon Simple Storage Service (Amazon S3) 儲存貯體必須具備 Amazon Simple Storage Service (Amazon S3) 主控台定義的預設設定。如需有關建立 Amazon Simple Storage Service (Amazon S3) 儲存貯體的詳細資訊,請參閱 Amazon Simple Storage Service (Amazon S3) 使用者指南中的建立儲存貯體。
注意
在關聯執行期間由 SSM 文件啟動的 API 操作不會記錄在 AWS CloudTrail中。
-
選擇 Create Association (建立關聯)。
注意
如果刪除您建立的關聯,關聯將不再在該關聯的任何目標上執行。
建立關聯 (命令列)
下列程序說明如何使用 AWS CLI (在 Linux 或 Windows 上) 或 Tools for PowerShell 來建立State Manager關聯。本節包含數個示範如何使用目標和速率控制的範例。目標和速率控制允許您將關聯指派給數十個或數百個節點,同時控制這些關聯的執行。如需目標和速率控制的詳細資訊,請參閱了解 State Manager 關聯中的目標和速率控制。
重要
此程序說明如何建立使用 Command
或 Policy
文件將受管節點設為目標的關聯。如需建立使用 Automation Runbook 鎖定節點或其他類型 AWS 資源的關聯的相關資訊,請參閱 使用 State Manager 關聯排程自動化。
開始之前
targets
參數是一系列的搜尋條件,使用您指定的 Key
、Value
組合將節點設為目標。如果您打算使用 targets
參數在數十個或數百個節點上建立關聯,請在程序開始之前檢閱下列目標選項。
透過指定 ID 將特定節點設為目標
--targets Key=InstanceIds,Values=
instance-id-1
,instance-id-2
,instance-id-3
--targets Key=InstanceIds,Values=i-02573cafcfEXAMPLE,i-0471e04240EXAMPLE,i-07782c72faEXAMPLE
使用 標籤將執行個體設為目標
--targets Key=tag:
tag-key
,Values=tag-value-1
,tag-value-2
,tag-value-3
--targets Key=tag:Environment,Values=Development,Test,Pre-production
使用 的目標節點 AWS Resource Groups
--targets Key=resource-groups:Name,Values=
resource-group-name
--targets Key=resource-groups:Name,Values=WindowsInstancesGroup
將目前 AWS 帳戶 和 中的所有執行個體設為目標 AWS 區域
--targets Key=InstanceIds,Values=*
注意
記下以下資訊。
-
如果該文件是從另一個帳戶共用的,則 State Manager 不支援執行使用新版文件的關聯。如果是從另一個帳戶共用的,則 State Manager 一律執行文件的
default
版本,即使 Systems Manager 主控台顯示新版本已處理。如果您想要使用從另一個帳戶共用而來的新版本文件來執行關聯,則必須將文件版本設定為default
。 -
您可以使用 AWS CLI指定最多五個標籤鍵。如果您使用 AWS CLI,
create-association
命令中指定的所有標籤索引鍵目前都必須指派給節點。否則,State Manager 無法將相應節點作為關聯的目標。 -
在建立關聯時,指定排程的執行時間。使用 Cron 或 Rate 運算式來指定排程。如需 Cron 和 Rate 運算式的詳細資訊,請參閱關聯的 Cron 與 Rate 運算式。
-
為了在偵測到新目標節點時套用透過 Automation 執行手冊建立的關聯,必須滿足特定條件。如需相關資訊,請參閱 關於透過 Automation 執行手冊的目標更新。
建立關聯
AWS Tools for PowerShell如果您尚未安裝和設定 AWS CLI 或 。
如需相關資訊,請參閱安裝或更新 AWS CLI的最新版本和安裝 AWS Tools for PowerShell。
-
使用以下格式來建立會建立 State Manager 關聯的命令。將每個
範例資源預留位置
取代為您自己的資訊。以下範例會在加上
"Environment,Linux"
標籤的節點上建立關聯。關聯會使用AWS-UpdateSSMAgent
文件在每週日的上午 2:00 UTC 更新目標節點上的 SSM Agent。此關聯在任何指定的時間可在最多 10 個節點上同時執行。此外,如果錯誤計數超過 5 個,此關聯會停止在更多節點上特定執行間隔的執行。針對合規報告,指派給此關聯的嚴重性等級為中等。以下範例會透過指定萬用字元值 (*) 來設定目標節點 ID。這可讓 Systems Manager 在目前 AWS 帳戶 和 中的所有節點上建立關聯 AWS 區域。此關聯在任何指定的時間可在最多 10 個節點上同時執行。此外,如果錯誤計數超過 5 個,此關聯會停止在更多節點上特定執行間隔的執行。針對合規報告,指派給此關聯的嚴重性等級為中等。此關聯使用排程偏移,這意味著它在指定的 Cron 排程後會執行兩天。此外還包括
ApplyOnlyAtCronInterval
參數,這是使用排程偏移所必需的,意味著在建立後關聯不會立即執行。以下範例會在 Resource Groups 中的節點上建立關聯。該群組名為「HR-Department」。該關聯使用
AWS-UpdateSSMAgent
文件,在每週日上午 2:00 UTC 更新目標執行個體上的 SSM Agent。此關聯在任何指定的時間可在最多 10 個節點上同時執行。此外,如果錯誤計數超過 5 個,此關聯會停止在更多節點上特定執行間隔的執行。針對合規報告,指派給此關聯的嚴重性等級為中等。此關聯會在指定的 Cron 排程執行。它不會在建立關聯之後立即執行。以下範例會建立一個關聯,它在標記有特定節點 ID 的節點上執行。關聯會使用 SSM Agent 文件,當變更行事曆開啟時在目標節點上更新一次 SSM Agent。關聯會在執行時檢查行事曆狀態。如果行事曆在啟動時關閉且關聯只執行一次,則它不會再執行一次,因為關聯執行時段已結束。如果行事曆處於開啟狀態,則會相應地執行關聯。
注意
如果您在變更行事曆關閉時,將新節點新增至關聯作用的標籤或資源群組,則在變更行事曆開啟後,關聯就會套用至這些節點。
以下範例會建立一個關聯,它在標記有特定節點 ID 的節點上執行。關聯會使用 SSM Agent 文件,在每週日的上午 2:00 更新目標節點上的 SSM Agent。當變更行事曆開啟時,此關聯只會在指定的 Cron 排程執行。建立關聯時,它會檢查行事曆狀態。如果行事曆已關閉,則不會套用關聯。當套用關聯的間隔在星期日凌晨 2:00 開始時,關聯會檢查行事曆是否已開啟。如果行事曆處於開啟狀態,則會相應地執行關聯。
注意
如果您在變更行事曆關閉時,將新節點新增至關聯作用的標籤或資源群組,則在變更行事曆開啟後,關聯就會套用至這些節點。
注意
如果刪除您建立的關聯,關聯將不再在該關聯的任何目標上執行。此外,如果您已指定 apply-only-at-cron-interval
參數,則可以重設此選項。若要執行這項操作,請在透過命令列更新關聯時指定 no-apply-only-at-cron-interval
參數。此參數會在更新關聯後立即強制執行關聯,以及根據指定的間隔強制執行關聯。