

• 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)。

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

# 了解 SSM Agent 的技術詳細資訊
<a name="ssm-agent-technical-details"></a>

使用本主題中的資訊來協助您實作 AWS Systems Manager 客服人員 (SSM Agent)，並了解客服人員的運作方式。

**Topics**
+ [SSM Agent 3.2.x.x 版憑證行為](#credentials-file)
+ [SSM Agent 憑證優先順序](#credentials-precedence)
+ [設定 SSM Agent 以與聯邦資訊處理標準 (FIPS) 搭配使用](#fips-compliant-configurations)
+ [關於本機 ssm 使用者帳戶](#ssm-user-account)
+ [SSM Agent 與 Instance Metadata Service (IMDS)](#imds)
+ [讓 SSM Agent 保持最新狀態](#updating)
+ [確定未修改、移動或刪除 SSM Agent 安裝目錄](#installation-directory)
+ [SSM Agent 滾動更新 AWS 區域](#rolling-updates)
+ [SSM Agent 與 AWS 受管 S3 儲存貯體的通訊](#ssm-agent-minimum-s3-permissions)
+ [GitHub 的 SSM Agent](#github)
+ [了解 SSM Agent 休眠](#ssm-agent-hibernation)

## SSM Agent 3.2.x.x 版憑證行為
<a name="credentials-file"></a>

當使用 Quick Setup 中的預設主機管理組態登入執行個體時，SSM Agent 會將一組臨時憑證資料儲存在 `/var/lib/amazon/ssm/credentials` (適用於 Linux 和 macOS) 或 `%PROGRAMFILES%\Amazon\SSM\credentials` (適用於 Windows Server)。這些臨時憑證具有您為預設主機管理組態選擇的 IAM 角色指定的許可。在 Linux 中，只有 root 帳戶可以存取這些憑證。在 Windows Server 中，只有 SYSTEM 帳戶和本機管理員可以存取這些憑證。

## SSM Agent 憑證優先順序
<a name="credentials-precedence"></a>

本主題描述了 SSM Agent 如何授予在您資源上執行動作之許可的重要資訊。

**注意**  
對邊緣裝置的支援略有不同。您必須將邊緣裝置設定為使用 AWS IoT Greengrass 核心軟體、設定 AWS Identity and Access Management (IAM) 服務角色，並使用 部署SSM Agent至您的裝置 AWS IoT Greengrass。如需詳細資訊，請參閱[使用 Systems Manager 管理邊緣裝置](systems-manager-setting-up-edge-devices.md)。

SSM Agent 安裝在機器上時，其需要許可才能與 Systems Manager 服務進行通訊。在 Amazon Elastic Compute Cloud (Amazon EC2) 執行個體上，會在連接到執行個體的執行個體設定檔中提供這些許可。在非 EC2 機器上，SSM Agent 通常會從共用憑證檔案中取得所需的許可，該檔案位於 `/root/.aws/credentials` (Linux 和 macOS) 或 `%USERPROFILE%\.aws\credentials` (Windows Server)。在[混合啟用](activations.md)程序中，會將所需的許可新增至此檔案。如果取消註冊啟用混合模式的節點，Agent 可能會進入休眠模式。如需詳細資訊，請參閱[了解 SSM Agent 休眠](#ssm-agent-hibernation)。

然而，在極少數情況下，機器最終可能會將許可新增至多個位置，SSM Agent 在這些位置會檢查許可以執行其任務。

例如，假如您已將某個 EC2 執行個體設定為由 Systems Manager 管理，則該組態包含連接執行個體設定檔。然後您決定也將該執行個體用於開發人員或最終使用者任務，並安裝 AWS Command Line Interface (AWS CLI)。此安裝會導致其他許可新增至執行個體上的憑證檔案。

當您在執行個體上執行 Systems Manager 命令時，SSM Agent 可能會嘗試使用與您預期使用的憑證不同的憑證，例如憑證檔案而非執行個體設定檔。這是因為 SSM Agent 會依照指定的順序尋找*預設憑證供應者鏈結*的憑證。

**注意**  
在 Linux 和 macOS 中，SSM Agent 以根使用者身分執行。因此，SSM Agent 在此程序中查找的環境變數和憑證檔案只是根使用者 (`/root/.aws/credentials`) 的環境變數和憑證檔案。在搜尋憑證期間，SSM Agent 不會查看執行個體上的任何其他使用者的環境變數或憑證檔案。

預設供應者鏈結會依以下順序查找憑證：

1. 環境變數 (如果已設定) (`AWS_ACCESS_KEY_ID` 和 `AWS_SECRET_ACCESS_KEY`)。

1. 共用的憑證檔案 (Linux 的 `$HOME/.aws/credentials` 以及 Windows Server 的 macOS 或 `%USERPROFILE%\.aws\credentials`)，例如具有混合啟用或 AWS CLI 安裝提供的許可。

1. 如果存在使用 Amazon Elastic Container Service AWS Identity and Access Management (Amazon ECS) 任務定義或 **RunTask** API 操作的應用程式，則為任務的 (IAM) 角色。

1. 連接至 Amazon EC2 執行個體的執行個體設定檔。

1. 為預設主機管理組態選擇的 IAM 角色。

如需相關資訊，請參閱下列主題：
+ EC2 執行個體設定檔：[設定 Systems Manager 所需的執行個體許可](setup-instance-permissions.md) 
+ 混合啟用：[建立混合啟用以向 Systems Manager 註冊節點](hybrid-activation-managed-nodes.md)
+ AWS CLI *AWS Command Line Interface 使用者指南*中的登入資料 – [組態和登入資料檔案設定](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-files.html) 
+ 預設憑證供應者鏈結 - *適用於 Go 的 AWS SDK 開發人員指南*中的[指定憑證](https://docs.aws.amazon.com/sdk-for-go/latest/developer-guide/configuring-sdk.html#specifying-credentials)
**注意**  
*適用於 Go 的 AWS SDK 開發人員指南*中的本主題描述了 SDK for Go 的預設供應者鏈結；但是，相同的原則適用於評估 SSM Agent 憑證。

## 設定 SSM Agent 以與聯邦資訊處理標準 (FIPS) 搭配使用
<a name="fips-compliant-configurations"></a>

如果您需要搭配使用 Systems Manager 與聯邦資訊處理標準 (FIPS) 140-3 驗證的密碼編譯模組，您可以將 AWS Systems Manager Agent (SSM Agent) 設定為在支援的區域中使用 FIPS 端點。

**設定 SSM Agent 以連線至 FIPS 140-3 端點**

1. 連線至受管節點。

1. 前往內含 `amazon-ssm-agent.json` 檔案的目錄：
   + Linux：`/etc/amazon/ssm/`
   + macOS: `/opt/aws/ssm/`
   + Windows Server: `C:\Program Files\Amazon\SSM\`

1. 開啟檔案 `amazon-ssm-agent.json` 進行編輯。
**提示**  
如果尚無 `amazon-ssm-agent.json` 檔案，請將 `amazon-ssm-agent.json.template` 的內容複製到名為 `amazon-ssm-agent.json` 的新檔案。將 `amazon-ssm-agent.json` 儲存在 `amazon-ssm-agent.json.template` 所在的相同目錄中。

1. 將下列內容新增至檔案。將*區域*預留位置值取代為分割區的適當區域碼：

   ```
   {
       ---Existing file content, if any---
       "Mds": {
           "Endpoint": "ec2messages-fips.region.amazonaws.com",
       },
       "Ssm": {
           "Endpoint": "ssm-fips.region.amazonaws.com",
       },
       "Mgs": {
           "Endpoint": "ssmmessages-fips.region.amazonaws.com",
           "Region": "region"
       },
       "S3": {
           "Endpoint": "s3-fips.dualstack.region.amazonaws.com",
           "Region": region"
       },
       "Kms": {
           "Endpoint": "kms-fips.region.amazonaws.com"
       }
   }
   ```

   支援的區域包含以下區域：
   + `us-east-1`，表示美國東部 (維吉尼亞北部) 區域
   + `us-east-2`，表示美國東部 (俄亥俄) 區域
   + `us-west-1`，表示美國西部 (加利佛尼亞北部) 區域
   + `us-west-2`，表示美國西部 (奧勒岡) 區域
   + `ca-west-1`，表示加拿大西部 (卡加利) 區域

1. 儲存檔案，並重新啟動 SSM Agent。

每次變更組態時，請重新啟動 SSM Agent。

您可以使用相同的程序來自訂 SSM Agent 的其他功能。如需可用組態屬性及其預設值的最新清單，請參閱 GitHub 上 `amazon-ssm-agent` 儲存庫中的[組態屬性定義](https://github.com/aws/amazon-ssm-agent#config-property-definitions)。

如需 FIPS AWS 支援的詳細資訊，請參閱[聯邦資訊處理標準 (FIPS) 140-3](https://aws.amazon.com/compliance/fips/)。

## 關於本機 ssm 使用者帳戶
<a name="ssm-user-account"></a>

從 SSM Agent 的 2.3.50.0 版開始，代理程式會建立稱為 `ssm-user` 的本機使用者帳戶，並將其新增至 `/etc/sudoers.d` 目錄 (Linux 和 macOS) 或系統管理員群組 (Windows Server)。在代理程式 2.3.612.0 之前的版本中，當 SSM Agent 第一次啟動，或在安裝後重新啟動時，會建立該帳戶。在版本 2.3.612.0 和更高版本中，當執行個體上初次啟動工作階段時，會建立 `ssm-user` 帳戶。工作階段在 Session Manager ( AWS Systems Manager中的工具) 中開始後，此 `ssm-user` 是預設的作業系統使用者。您可以將 `ssm-user` 移動到權限較少的群組或變更 `sudoers` 檔案，以改變許可。解除安裝 SSM Agent 時，`ssm-user` 帳戶並不會從系統中移除。

在 Windows Server 上，SSM Agent 會處理當每個工作階段開始時，為 `ssm-user` 帳戶設定新的密碼。Linux 受管執行個體上沒有設定 `ssm-user` 的密碼。

從 SSM Agent 的 2.3.612.0 版本開始，不會在用作網域控制器的 Windows Server 機器上自動建立 `ssm-user` 帳戶。若要在 Windows Server 網域控制器上使用 Session Manager，請手動建立 `ssm-user` 帳戶 (如果尚不存在)，並將網域管理員許可指派給使用者。

**重要**  
為了建立 `ssm-user` 帳戶，連接到執行個體的執行個體設定檔必須提供必要的許可。如需相關資訊，請參閱[步驟 2：為 Session Manager 確認或新增執行個體許可](session-manager-getting-started-instance-profile.md)。

## SSM Agent 與 Instance Metadata Service (IMDS)
<a name="imds"></a>

Systems Manager 依賴 EC2 執行個體中繼資料才能正確運作。Systems Manager 可以使用 Instance Metadata Service 的第 1 版或第 2 版 (IMDSv1 和 IMDSv2) 來存取執行個體中繼資料。您的執行個體必須可以存取執行個體中繼資料服務的 IPv4 地址：169.254.169.254。如需詳細資訊，請參閱《Amazon EC2 使用者指南》**中的[執行個體中繼資料與使用者資料](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-metadata.html)。

## 讓 SSM Agent 保持最新狀態
<a name="updating"></a>

當 Systems Manager 新增了新工具，或現有工具有更新時，會發行 SSM Agent 的更新版本。若未使用最新版本的 Agent，您的受管節點可能會無法使用 Systems Manager 中的各種工具及功能。因此，我們建議您讓機器的 SSM Agent 自動保持最新狀態。如需相關資訊，請參閱[自動化 SSM Agent 更新](ssm-agent-automatic-updates.md)。請訂閱 GitHub 上的 [SSM Agent 版本備註](https://github.com/aws/amazon-ssm-agent/blob/mainline/RELEASENOTES.md)頁面，以便接收有關 SSM Agent 更新的通知。

**注意**  
當 Systems Manager 新增了新工具，或現有工具有更新時，會發行 SSM Agent 的更新版本。若未使用最新版本的 Agent，您的受管節點可能會無法使用 Systems Manager 中的各種工具及功能。因此，我們建議您讓機器的 SSM Agent 自動保持最新狀態。如需相關資訊，請參閱[自動化 SSM Agent 更新](ssm-agent-automatic-updates.md)。請訂閱 GitHub 上的 [SSM Agent 版本備註](https://github.com/aws/amazon-ssm-agent/blob/mainline/RELEASENOTES.md)頁面，以便接收有關 SSM Agent 更新的通知。  
根據預設，包含 SSM Agent 的 Amazon Machine Images (AMIs) 可能最長需要兩週，才能使用 SSM Agent 的最新版本進行更新。我們建議您設定更頻繁地自動更新 SSM Agent。

## 確定未修改、移動或刪除 SSM Agent 安裝目錄
<a name="installation-directory"></a>

SSM Agent 安裝於 `/var/lib/amazon/ssm/` (Linux 和 macOS ) 以及 `%PROGRAMFILES%\Amazon\SSM\` (Windows Server)。這些安裝目錄包含 SSM Agent 使用的重要檔案和資料夾，例如認證檔案、處理程序間通訊 (IPC) 資源，以及協同運作資料夾。不應修改、移動或刪除安裝目錄內的任何內容。否則，SSM Agent 可能會停止正常運作。

## SSM Agent 滾動更新 AWS 區域
<a name="rolling-updates"></a>

在其GitHub儲存庫中提供SSM Agent更新後，最多可能需要兩週的時間，直到更新版本 AWS 區域 在不同時間推出至所有 為止。因此，您可能會在嘗試於區域中部署新版本 SSM Agent 時收到「不支援目前平台」或「正在將 amazon-ssm-agent 更新到較舊版本，請開啟允許繼續降級」等錯誤。

若要判斷您可使用的 SSM Agent 版本，可執行 `curl` 命令。

若要查看全域下載儲存貯體中可用的代理程式版本，請執行以下命令。

```
curl https://s3.amazonaws.com/ec2-downloads-windows/SSMAgent/latest/VERSION
```

若要查看特定區域中可用的代理程式版本，請執行以下命令，使用您工作所在區域替代 *region*，例如使用 `us-east-2` 替代美國東部 (俄亥俄) 區域。

```
curl https://s3.region.amazonaws.com/amazon-ssm-region/latest/VERSION
```

您也可以直接在瀏覽器中開啟 `VERSION` 文件，而不需要 `curl` 命令。

## SSM Agent 與 AWS 受管 S3 儲存貯體的通訊
<a name="ssm-agent-minimum-s3-permissions"></a>

在執行各種 Systems Manager 操作的過程中， AWS Systems Manager 代理程式 (SSM Agent) 會存取數個 Amazon Simple Storage Service (Amazon S3) 儲存貯體。可公開存取這些 S3 儲存貯體，SSM Agent 預設使用 `HTTP` 呼叫連線到它們。

但是，如果您在 Systems Manager 操作中使用虛擬私有雲端 (VPC) 端點，則必須在適用於 Systems Manager 的 Amazon Elastic Compute Cloud (Amazon EC2) 執行個體設定檔中提供明確許可，或在[混合多雲端](operating-systems-and-machine-types.md#supported-machine-types)環境中非 EC2 機器的服務角色中提供明確許可。否則，您的資源無法存取這些公有儲存貯體。

若要在使用 VPC 端點時對這些節點授予受管執行個體存取權，您可以建立自訂 Amazon S3 許可政策，然後將它連接到您的執行個體描述檔 (適用於 EC2 執行個體) 或服務角色 (適用於非 EC2 受管節點)。

如需有關在 Systems Manager 操作中使用虛擬私有雲端 (VPC) 端點的資訊，請參閱[使用適用於 Systems Manager 的 VPC 端點來改善 EC2 執行個體的安全性](setup-create-vpc.md)。

**注意**  
這些許可僅提供 所需的 AWS 受管儲存貯體存取權SSM Agent。這些許可不提供其他 Amazon Simple Storage Service (Amazon S3) 操作所需的許可。這些許可也不提供自有 S3 儲存貯體的許可。

如需詳細資訊，請參閱下列主題：
+  [設定 Systems Manager 所需的執行個體許可](setup-instance-permissions.md) 
+  [在混合多雲端環境中建立 Systems Manager 所需的 IAM 服務角色](hybrid-multicloud-service-role.md) 
+  [參考：用於修補操作的 Amazon S3 儲存貯體](patch-operations-s3-buckets.md) 

**Topics**
+ [所需的儲存貯體許可](#ssm-agent-minimum-s3-permissions-required)
+ [範例](#ssm-agent-minimum-s3-permissions-example)
+ [使用硬體指紋驗證啟用混合模式機器](#fingerprint-validation)

### 所需的儲存貯體許可
<a name="ssm-agent-minimum-s3-permissions-required"></a>

下表說明 SSM Agent 可能需要存取的每個 S3 儲存貯體，以便進行 Systems Manager 操作。

**注意**  
*region* 代表 AWS 區域 支援的 識別符 AWS Systems Manager，例如`us-east-2`美國東部 （俄亥俄） 區域。如需支援的 *region* 值的清單，請參閱《Amazon Web Services 一般參考》**中 [Systems Manager 服務端點](https://docs.aws.amazon.com/general/latest/gr/ssm.html#ssm_region)一節的**區域**欄位。

SSM Agent 需要的 Amazon Simple Storage Service (Amazon S3) 許可


| S3 儲存貯體 ARN | Description | 
| --- | --- | 
|   `arn:aws:s3:::aws-windows-downloads-region/*`   |  某些僅支援 Windows Server 作業系統以及某些提供跨平台支援的 SSM 文件 (例如 `AWSEC2-ConfigureSTIG`) 所必需。  | 
|   `arn:aws:s3:::amazon-ssm-region/*`   | 更新 SSM Agent 安裝的必要項目。這些儲存貯體包含 SSM Agent 安裝套件及 AWS-UpdateSSMAgent 文件和外掛程式所參考的安裝資訊清單。如果沒有提供這些許可，則 SSM Agent 會進行 HTTP 呼叫以下載更新。 | 
| arn:aws:s3:::aws-ssm-region/\$1 | 支援存取 S3 儲存貯體，其中包含與 Systems Manager 文件 (SSM Command 文件) 搭配使用所需的模組，包括非修補操作和修補操作。例如：arn:aws:s3:::aws-ssm-us-east-2/\$1。 以下是使用這些儲存貯體中模組的一些常用 SSM 文件。 [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/systems-manager/latest/userguide/ssm-agent-technical-details.html) | 
|   `arn:aws:s3:::patch-baseline-snapshot-region/*` -或-`arn:aws:s3:::patch-baseline-snapshot-region-unique-suffix/*`  |  允許存取包含修補基準快照的 S3 儲存貯體。如果您使用下列任一 SSM Command 文件，則這是必需的： [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/systems-manager/latest/userguide/ssm-agent-technical-details.html) 大多數支援的儲存貯體 AWS 區域 使用以下格式： `arn:aws:s3:::patch-baseline-snapshot-region` 對於某些區域，儲存貯體名稱中會包含額外的唯一尾碼。例如，中東 (巴林) 區域 (me-south-1) 的儲存貯體名稱如下所示： [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/systems-manager/latest/userguide/ssm-agent-technical-details.html) 如需修補基準快照儲存貯體名稱的完整清單，請參閱[包含 AWS 受管修補程式基準快照的儲存貯體](patch-operations-s3-buckets.md#aws-patch-manager-buckets-baseline-snapshots)。  如果您使用內部部署防火牆並計劃使用 Patch Manager，則該防火牆也必須允許存取適當的修補基準端點。   | 
|  對於 Linux 和 Windows Server 受管節點：`arn:aws:s3:::aws-patch-manager-region-unique-suffix/*` 對於 macOS 的 Amazon EC2 執行個體：`arn:aws:s3:::aws-patchmanager-macos-region-unique-suffix/*`  |  支援存取包含 SSM Command 文件所用模組的 S3 儲存貯體，以便在 Patch Manager 中進行修補操作。每個儲存貯體名稱都包含唯一的尾碼，例如 `552881074` 表示美國東部 (俄亥俄) (us-east-2) 區域中的儲存貯體： [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/systems-manager/latest/userguide/ssm-agent-technical-details.html)  SSM 文件 以下是使用這些儲存貯體中模組的一些常用 SSM 文件。  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/systems-manager/latest/userguide/ssm-agent-technical-details.html) 如需修補操作的 AWS 受管 S3 儲存貯體完整清單，請參閱下列主題： [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/systems-manager/latest/userguide/ssm-agent-technical-details.html)  | 

### 範例
<a name="ssm-agent-minimum-s3-permissions-example"></a>

以下範例說明如何在美國東部 (俄亥俄) 區域 (us-east-2) 中提供 Systems Manager 操作所需的 S3 儲存貯體的存取權。在大多數情況下，只有在使用 VPC 端點時，才需要在執行個體設定檔或服務角色中明確提供這些許可。

**重要**  
我們建議您避免在這個政策中的特定區域使用萬用字元 (\$1)。例如，使用 `arn:aws:s3:::aws-ssm-us-east-2/*` 而不使用 `arn:aws:s3:::aws-ssm-*/*`。使用萬用字元可能允許存取您不想授與存取權的 S3 儲存貯體。如果您要將執行個體設定檔用於多個區域，建議您為每個區域重複第一個 `Statement` 區塊。

------
#### [ JSON ]

****  

```
{
        "Version":"2012-10-17",		 	 	 
        "Statement": [
            {
                "Effect": "Allow",
                "Action": "s3:GetObject",
                "Resource": [
                    "arn:aws:s3:::aws-windows-downloads-us-east-2/*",
                    "arn:aws:s3:::amazon-ssm-us-east-2/*",
                    "arn:aws:s3:::aws-ssm-us-east-2/*",
                    "arn:aws:s3:::patch-baseline-snapshot-us-east-2/*",
                    "arn:aws:s3:::aws-patch-manager-us-east-2-552881074/*",
                    "arn:aws:s3:::aws-patchmanager-macos-us-east-2-552881074/*"
                ]
            }
        ]
    }
```

------

### 使用硬體指紋驗證啟用混合模式機器
<a name="fingerprint-validation"></a>

對於[混合多雲端](operating-systems-and-machine-types.md#supported-machine-types)環境中的非 EC2 機器，SSM Agent 會收集許多系統屬性 (稱為*硬體雜湊*），並使用這些屬性來計算*指紋*。指紋是不透明字串，代理程式會將其傳遞給某些 Systems Manager API。此唯一的指紋會將呼叫者與特定的啟用混合模式受管節點建立關聯。代理程式會將指紋和硬體雜湊存放在某個位置的本機磁碟上 (稱為*保存庫*)。

當註冊機器以搭配 Systems Manager 使用時，代理程式會計算硬體雜湊和指紋。然後，當代理程式傳送 `RegisterManagedInstance` 命令時，指紋會傳回到 Systems Manager 服務。

稍後，當傳送 `RequestManagedInstanceRoleToken` 命令時，代理程式會檢查保存庫中的指紋和硬體雜湊，以確保目前的機器屬性與儲存的硬體雜湊相符。如果目前的機器屬性與儲存在「保存庫」中的硬體雜湊相符，則代理程式會將指紋從「保存庫」傳遞至 `RegisterManagedInstance`，從而產生成功呼叫。

如果目前的機器屬性與儲存的硬體雜湊不相符，SSM Agent 會計算新指紋，將新硬體雜湊和指紋儲存在「保存庫」中，並將新指紋傳遞至 `RequestManagedInstanceRoleToken`。*這會導致 `RequestManagedInstanceRoleToken` 失敗，而代理程式將無法取得角色權杖以連線到 Systems Manager 服務。*

此失敗是故意而為之，用來作為驗證步驟，以防止多個受管節點與作為相同受管節點的 Systems Manager 服務進行通訊。

將目前機器屬性與儲存在保存庫中的硬體雜湊比較時，代理程式會使用下列邏輯來判斷舊雜湊與新雜湊是否相符：
+ 如果 SID (系統/機器 ID) 不同，則不符。
+ 否則，如果 IP 地址相同，則相符。
+ 否則，系統會計算相符的機器屬性百分比，並與使用者設定的相似度臨界值進行比較，以判斷是否有相符項。

相似度臨界值會儲存在保存庫中，作為硬體雜湊的一部分。

使用下列命令註冊執行個體後，可以設定相似度臨界值。

在 Linux 機器上：

```
sudo amazon-ssm-agent -fingerprint -similarityThreshold 1
```

在使用 Windows Server 的機器上：

```
cd "C:\Program Files\Amazon\SSM\" `
    .\amazon-ssm-agent.exe -fingerprint -similarityThreshold 1
```

**重要**  
如果用來計算指紋的其中一個元件發生變化，這可能會導致代理程式休眠。若要避免這種休眠狀態，請將相似度閾值設定為較低的值，例如 **1**。如需有關休眠的詳細資訊，請參閱[了解 SSM Agent 休眠](#ssm-agent-hibernation)。

## GitHub 的 SSM Agent
<a name="github"></a>

可在 [https://github.com/aws/amazon-ssm-agent](https://github.com/aws/amazon-ssm-agent) 上使用 SSM Agent 的原始碼，以便調整代理程式來符合需求。我們建議您為想要進行的變更提交[提取請求](https://github.com/aws/amazon-ssm-agent/blob/mainline/CONTRIBUTING.md)。但是，Amazon Web Services 不支援執行修改過的軟體複本。

## 了解 SSM Agent 休眠
<a name="ssm-agent-hibernation"></a>

AWS Systems Manager 代理程式 (SSM Agent) 休眠是當代理程式無法維持與 Systems Manager 服務的適當通訊時發生的操作模式。在休眠期間，Agent 會降低其通訊頻率並進入待命狀態。

**SSM Agent 休眠發生時**  
在下列情況下會出現 SSM Agent 休眠：

已取消註冊混合節點  
如果從 Systems Manager 取消註冊[啟用混合模式的節點](hybrid-activation-managed-nodes.md)，該節點上的 SSM Agent 無法重新整理其授權權杖。這會導致 Agent 無法在服務中驗證身分，因此會進入休眠模式。

硬體指紋變更  
SSM Agent 使用硬體指紋驗證啟用混合模式的機器。如果用來計算指紋的其中一個元件發生重大變更，作為安全性措施，Agent 可能會進入休眠模式。這是故意而為之，以防止多個受管節點與作為同一節點的 Systems Manager 進行通訊。如需詳細資訊，請參閱[使用硬體指紋驗證啟用混合模式機器](#fingerprint-validation)。

Amazon EC2 執行個體上的 SSM Agent 休眠  
在某些情況下，Amazon EC2 執行個體上的 Agent 也可能發生休眠，例如當 Agent 與 Systems Manager 服務發生連線問題或身分驗證問題時。

**休眠通訊行為**  
SSM Agent 進入休眠模式後，其與 Systems Manager 服務的通訊模式會變更：
+ **正常操作**：Agent 會定期與 Systems Manager 通訊 (通常每幾分鐘一次)，以檢查新命令和報告狀態。
+ **休眠模式**：Ping 頻率從 5 分鐘一次開始，然後依預設逐漸降低為每小時一次 (最低可設定 24 小時一次)。這樣降低通訊頻率有助於將不必要的網路流量降至最低，同時讓 Agent 在情況變化時有機會復原。

在休眠期間，Agent 會繼續以較低的頻率重試身分驗證和連線，但無法處理新命令或報告詳細狀態資訊，直到休眠結束為止。

**防止在混合執行個體上發生休眠的組態選項**  
協助防止硬體指紋變更造成休眠的主要組態選項是調整相似性閾值：

在 Linux 機器上：

```
sudo amazon-ssm-agent -fingerprint -similarityThreshold 1
```

在使用 PowerShell 的 Windows Server 機器上：

```
cd "C:\Program Files\Amazon\SSM\" `
.\amazon-ssm-agent.exe -fingerprint -similarityThreshold 1
```

相似性閾值決定 Agent 比較目前機器屬性與儲存的硬體雜湊的嚴格程度：
+ 值越高就會要求越多的相符屬性
+ 值越低 (例如 **1**) 就越寬鬆，這樣有助於避免因微小的硬體變更而導致休眠的情況發生

**休眠記錄和監控**  
SSM Agent 進入休眠模式後，它會建立日誌項目，協助您識別休眠狀態並進行疑難排解：
+ **Agent 日誌檔案**：休眠事件會記錄在標準 SSM Agent 日誌檔案中。如需有關日誌檔案位置的詳細資訊，請參閱[使用 SSM Agent 日誌檔案診斷並解決問題](troubleshooting-ssm-agent.md#systems-manager-ssm-agent-log-files)。
+ **Amazon EC2 主控台記錄**：對於 EC2 執行個體，休眠訊息現在會記錄到 Amazon EC2 主控台系統日誌，以方便提供 Agent 狀態資訊。若要存取日誌，請在 EC2 主控台中選取執行個體，然後再依序選擇**動作**、**監控和故障診斷**和**取得系統日誌**。
+ **特定日誌檔案**：休眠開始後，系統會建立特定日誌檔案，其中包含有關休眠觸發條件和狀態的詳細資訊。

監控這些日誌來源可儘早偵測休眠事件，並採取改正動作來還原正常的 Agent 操作。

**從休眠中復原**  
若要從休眠中復原，需要解決根本原因：
+ **對於已取消註冊的混合節點**：使用新的啟用代碼和 ID 在 Systems Manager 中重新註冊節點，如[取消註冊並重新註冊受管節點 (Linux)](hybrid-multicloud-ssm-agent-install-linux.md#systems-manager-install-managed-linux-deregister-reregister) 和[取消註冊並重新註冊受管節點 (Windows Server)](hybrid-multicloud-ssm-agent-install-windows.md#systems-manager-install-managed-win-deregister-reregister) 中所述。
+ **對於硬體指紋問題**：如前文**防止在混合執行個體上發生休眠的組態選項**一節所述，調整相似閾值，或是重新註冊節點 (如果硬體發生重大變更)。
+ **對於連線問題**：驗證網路連線，並確認可存取所需的端點。如需詳細資訊，請參閱[使用 `ssm-cli` 診斷並解決受管節點的可用性問題](troubleshooting-managed-nodes-using-ssm-cli.md)。

解決基礎問題後，Agent 應該會自動結束休眠模式，並在下次通訊嘗試時恢復正常操作。