

• 2026 年 4 月 30 日之後將不再提供 AWS Systems Manager CloudWatch Dashboard。客戶可以繼續使用 Amazon CloudWatch 主控台來檢視、建立和管理其 Amazon CloudWatch 儀表板，就像現在一樣。如需詳細資訊，請參閱 [Amazon CloudWatch Dashboard 文件](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Dashboards.html)。

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 了解 State Manager 的運作方式
<a name="state-manager-about"></a>

State Manager是 中的工具 AWS Systems Manager，是一項安全且可擴展的服務，可自動化將受管節點保持在混合[多雲端](operating-systems-and-machine-types.md#supported-machine-types)基礎設施中您定義的狀態的程序。

這是 State Manager 運作方式：

**1. 決定您要套用至 AWS 資源的狀態。**  
您是否希望保證使用特定應用程式 (例如防毒或反惡意軟體) 來設定受管節點？ 您是否希望能夠將更新 SSM Agent 或其他 AWS 套件 (例如 `AWSPVDriver`) 的程序自動化？ 您是否需要保證關閉或開啟特定的連接埠？ 若要開始使用 State Manager，請判斷您要套用至 AWS 資源的狀態。您想要套用的狀態會決定您使用哪個 SSM 文件來建立 State Manager 關聯。  
State Manager *關聯*是您指派給 AWS 資源的組態。該組態會定義您想在資源上維持的狀態。例如，關聯可以指定必須在受管節點上安裝和執行防毒軟體，或者必須關閉特定連接埠。  
關聯會指定套用組態並以關聯為目標的排程。例如，防毒軟體的關聯可能在 AWS 帳戶的所有受管節點上一天執行一次。如果節點上未安裝軟體，則關聯會指示 State Manager 來安裝。如果已安裝軟體，但並未執行服務，則關聯可能會指示 State Manager 來啟動服務。

**2. 判斷預先設定的 SSM 文件是否可協助您在 AWS 資源上建立所需的狀態。**  
Systems Manager 包含數十個預先設定的 SSM 文件，可讓您用來建立關聯。預先設定的文件已準備好可執行常見任務，例如安裝應用程式、設定 Amazon CloudWatch、執行 AWS Systems Manager 自動化、執行 PowerShell 和 Shell 指令碼，以及將受管節點加入 Active Directory 的目錄服務網域。  
在 [Systems Manager 主控台](https://console.aws.amazon.com/systems-manager/documents)中可檢視所有 SSM 文件。選擇文件名稱來進一步了解各項文件。以下是兩個範例：[https://console.aws.amazon.com/systems-manager/documents/AWS-ConfigureAWSPackage/description](https://console.aws.amazon.com/systems-manager/documents/AWS-ConfigureAWSPackage/description) 和 [https://console.aws.amazon.com/systems-manager/documents/AWS-InstallApplication/description](https://console.aws.amazon.com/systems-manager/documents/AWS-InstallApplication/description)。

**3. 建立關聯。**  
您可以使用 Systems Manager 主控台、 AWS Command Line Interface (AWS CLI)、 AWS Tools for Windows PowerShell (Tools for Windows PowerShell) 或 Systems Manager API 來建立關聯。在建立關聯時，指定下列資訊：  
+ 關聯名稱。
+ SSM 文件的參數 (例如，應用程式安裝路徑或在節點上執行的指令碼)。
+ 關聯的目標。您可以透過指定標籤，選擇個別節點 ID，或是在 AWS Resource Groups中選擇群組等方式，將受管執行個體設為目標。您也可以將目前 AWS 區域 和 中的所有**受管節點設為目標 AWS 帳戶。如果您的目標包含超過 1,000 個節點，系統會使用每小時限流機制。這表示您可能會在狀態彙總計數中看到不準確的資料，因為彙總程序每小時執行一次，而且只有在節點的執行狀態變更時才會執行。
+ 關聯用來代表您採取動作的角色。狀態管理員將擔任此角色，並在將組態分派至節點時呼叫必要的 APIs。如需設定自訂角色的詳細資訊，請參閱 [的 設定角色 `AssociationDispatchAssumeRole`](#setup-assume-role)。如果未提供角色，則會使用 [Systems Manager 的服務連結角色](https://docs.aws.amazon.com/systems-manager/latest/userguide/using-service-linked-roles.html)。
**注意**  
建議您定義自訂 IAM 角色，以便完全控制 State Manager 代表您執行動作時所擁有的許可。  
State Manager 中的服務連結角色支援正在逐步淘汰。依賴服務連結角色的關聯未來可能需要更新，才能繼續正常運作。  
如需管理自訂提供之角色使用的資訊，請參閱 [使用 管理 AssociationDispatchAssumeRole 的使用情況 `ssm:AssociationDispatchAssumeRole`](#context-key-assume-role)。
+ 狀態套用時間或頻率的排程。您可以指定 Cron 或 Rate 運算式。如需使用 Cron 和 Rate 運算式建立排程的詳細資訊，請參閱[關聯的 Cron 與 Rate 運算式](reference-cron-and-rate-expressions.md#reference-cron-and-rate-expressions-association)。
**注意**  
State Manager 目前不支援在 Cron 運算式中為關聯指定月份。
當您執行命令來建立關聯時，Systems Manager 會將您指定的資訊 (排程、目標、SSM 文件和參數) 繫結至目標資源。關聯狀態一開始會顯示為「Pending」(待定)，同時系統正在嘗試連接所有目標並*立即*套用關聯中指定的狀態。  
如果您新建的關聯已排定要執行，但同時仍在執行先前的關聯，則先前的關聯會逾時，並執行新的關聯。
Systems Manager 會報告在資源上建立關聯的請求狀態。您可以透過主控台或 (對於受管節點) 使用 [DescribeInstanceAssociationsStatus](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_DescribeInstanceAssociationsStatus.html) API 操作來檢視狀態詳細資訊。如果選擇在建立關聯時將命令的輸出寫入 Amazon Simple Storage Service (Amazon S3)，您也可以在指定的 Amazon S3 儲存貯體中檢視輸出。  
如需詳細資訊，請參閱[在 Systems Manager 中使用關聯](state-manager-associations.md)。  
在關聯執行期間由 SSM 文件啟動的 API 操作不會記錄在 AWS CloudTrail中。

**4. 監控與更新。**  
在您建立關聯後，State Manager 會根據您在關聯中定義的排程重新套用組態。在主控台的 [State Manager 頁面](https://console.aws.amazon.com/systems-manager/state-manager)中，或在建立關聯時直接呼叫 Systems Manager 產生的關聯 ID，可檢視關聯狀態。如需詳細資訊，請參閱[檢視關聯歷史記錄](state-manager-associations-history.md)。您可以視需要更新關聯文件並重新套用。您也可以建立多個版本的關聯。如需詳細資訊，請參閱[編輯和建立關聯的新版本](state-manager-associations-edit.md)。

## 了解何時將關聯套用至資源
<a name="state-manager-about-scheduling"></a>

建立關聯時，您需要指定 SSM 文件，此文件會定義組態、目標資源清單，以及套用組態的排程。根據預設，State Manager 會在您建立關聯時執行關聯，然後依照排程執行。State Manager 也會嘗試在以下情況下執行關聯：
+ **關聯編輯** – State Manager 在使用者編輯後執行關聯，並儲存對以下任何關聯欄位的變更：`DOCUMENT_VERSION`、`PARAMETERS`、`SCHEDULE_EXPRESSION`、`OUTPUT_S3_LOCATION`。
+ **文件編輯** – State Manager 在使用者編輯後執行關聯，並儲存對定義關聯組態狀態的 SSM 文件的變更。具體而言，在對文件進行以下編輯後，關聯便會執行：
  + 使用者指定新的 `$DEFAULT` 文件版本，而關聯是使用 `$DEFAULT` 版本所建立。
  + 使用者更新文件，而關聯是使用 `$LATEST` 版本所建立。
  + 使用者會刪除建立關聯時所指定的文件。
+ **手動啟動** – 使用者從 Systems Manager 主控台或以程式設計方式啟動時，State Manager 會執行關聯。
+ **目標變更**：State Manager會在目標節點上發生下列任何活動之後執行關聯：
  + 受管節點首次上線。
  + 缺少排程的關聯執行後，受管節點便會上線。
  + 受管節點會在停止超過 30 天後上線。

     
**注意**  
State Manager 不會監控 AWS 帳戶中關聯使用的文件或套件。如果您在一個帳戶中更新文件或套件，更新不會導致關聯在第二個帳戶中執行。您必須在第二個帳戶中手動執行關聯。

**防止關聯在目標變更時執行**  
在某些情況下，您可能不希望受管節點組成的目標變更時，關聯自動執行，而是希望關聯只根據其指定的排程執行。
**注意**  
執行 Automation 執行手冊會產生費用。如果與 Automation 執行手冊的關聯以您帳戶中的所有執行個體為目標，而且您定期啟動大量執行個體，則在每個執行個體啟動時，會在執行個體上執行執行手冊。這可能會導致 Automation 費用增加。

  若要防止關聯在關聯的目標變更時執行，請選取**只在下一個指定的 Cron 間隔套用關聯**核取方塊。此核取方塊位於**建立關聯**和**編輯關聯**頁面的**指定排程**區域中。

  此選項適用於包含 Automation 執行手冊或 SSM 文件的關聯。

## 關於透過 Automation 執行手冊的目標更新
<a name="runbook-target-updates"></a>

為了在偵測到新目標節點時套用透過 Automation 執行手冊建立的關聯，必須滿足以下條件：
+ 關聯必須由 [Quick Setup](systems-manager-quick-setup.md) 組態所建立。Quick Setup 是 AWS Systems Manager中的工具。目前不支援其他程序建立的關聯。
+ Automation 執行手冊必須明確以資源類型 `AWS::EC2::Instance` 或 `AWS::SSM::ManagedInstance` 為目標。
+ 此關聯必須同時指定參數和目標。

  在主控台中，當您選擇速率控制執行時，便會顯示**參數**和**目標**欄位。  
![主控台中會顯示參數和目標選項，以進行速率控制執行](http://docs.aws.amazon.com/zh_tw/systems-manager/latest/userguide/images/sm_Rate_control_execution_options.png)

  使用 [https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_CreateAssociation.html](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_CreateAssociation.html)、[https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_CreateAssociationBatch.html](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_CreateAssociationBatch.html) 或 [https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_UpdateAssociation.html](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_UpdateAssociation.html) API 動作時，您可以使用 `AutomationTargetParameterName` 和 `Targets` 輸入來指定這些值。在每個 API 動作中，您也可以將 `ApplyOnlyAtCronInterval` 參數設定為 `true`，防止關聯在每次目標變更時執行。

  如需有關使用主控台控制關聯執行時間的資訊，包括避免意外產生高額自動化執行費用的詳細資訊，請參閱[了解何時將關聯套用至資源](#state-manager-about-scheduling)。

## 的 設定角色 `AssociationDispatchAssumeRole`
<a name="setup-assume-role"></a>

若要設定自訂分派擔任 State Manager 擔任的角色，以代表您執行動作，角色應信任 ，`ssm.amazonaws.com`並具有`ssm:StartAutomationExecution`根據關聯使用案例呼叫 `ssm:SendCommand`或 所需的許可。

信任政策範例：

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "",
            "Effect": "Allow",
            "Principal": {
                "Service": [
                    "ssm.amazonaws.com"
                ]
            },
            "Action": "sts:AssumeRole"
        }
    ]
}
```

## 使用 管理 AssociationDispatchAssumeRole 的使用情況 `ssm:AssociationDispatchAssumeRole`
<a name="context-key-assume-role"></a>

若要管理自訂分派的使用情況，擔任 State Manager 代您執行動作所擔任的角色，請使用 `ssm:AssociationDispatchAssumeRole`條件金鑰。此條件控制是否可以建立或更新關聯，而無需指定自訂分派擔任角色。

在下列範例政策中， `"Allow"`陳述式只會在指定 `AssociationDispatchAssumeRole` 參數時授予建立和更新 APIs的關聯許可。如果 API 請求中沒有此參數，政策不會授予建立或更新關聯的許可：

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "ssm:CreateAssociation",
                "ssm:UpdateAssociation",
                "ssm:CreateAssociationBatch"
            ],
            "Resource": "*",
            "Condition": {
                "StringLike": {
                    "ssm:AssociationDispatchAssumeRole": "*"
                }
            }
        }
    ]
}
```