疑難排解受管節點的可用性 - AWS Systems Manager

疑難排解受管節點的可用性

對於 Run Command、Distributor 和 Session Manager 等 AWS Systems Manager 功能,您可以選擇手動選取要在其上執行操作的受管節點。在這類情況下,在您指定要手動選擇節點之後,系統會顯示您可以在其中執行操作的受管節點清單。

該主題提供資訊,以協助您診斷為何您確認正在執行的受管節點未包含在 Systems Manager 的受管節點清單中。

若要讓節點由 Systems Manager 管理,並在受管節點清單中可用,其必須符合三個需求:

  • SSM Agent 必須在具有支援作業系統的節點上安裝且執行。

    注意

    部分 AWS 管理的 Amazon Machine Images (AMIs) 設定為透過預先安裝的 SSM Agent 啟動執行個體。(您還可以設定自訂 AMI 以預先安裝 SSM Agent。) 如需詳細資訊,請參閱 已預先安裝 SSM Agent 的 Amazon Machine Images (AMIs)

  • 對於 Amazon Elastic Compute Cloud (Amazon EC2) 執行個體,您必須將 AWS Identity and Access Management (IAM) 執行個體設定檔連接至執行個體。執行個體設定檔可讓執行個體與 Systems Manager 服務進行通訊。如果您沒有將執行個體設定檔指派給執行個體,則請使用混合式啟用進行註冊,這不是常見案例。

  • SSM Agent 必須能夠連線到 Systems Manager 端點,才能自行註冊服務。此後,該受管節點必須可用於服務,該服務可由服務每五分鐘傳送一次訊號以檢查執行個體的運作狀態,來予以確認。

在確認受管節點正在執行之後,您可以使用下列命令來檢查 SSM Agent 是否已成功註冊 Systems Manager 服務。在成功註冊之前,此命令不會傳回結果。

Linux & macOS
aws ssm describe-instance-associations-status \ --instance-id instance-id
Windows
aws ssm describe-instance-associations-status ^ --instance-id instance-id
PowerShell
Get-SSMInstanceAssociationsStatus ` -InstanceId instance-id

如果註冊成功,且受管節點現在可供 Systems Manager 操作使用,命令會傳回類似如下的結果。

{
    "InstanceAssociationStatusInfos": [
        {
            "AssociationId": "fa262de1-6150-4a90-8f53-d7eb5EXAMPLE",
            "Name": "AWS-GatherSoftwareInventory",
            "DocumentVersion": "1",
            "AssociationVersion": "1",
            "InstanceId": "i-02573cafcfEXAMPLE",
            "Status": "Pending",
            "DetailedStatus": "Associated"
        },
        {
            "AssociationId": "f9ec7a0f-6104-4273-8975-82e34EXAMPLE",
            "Name": "AWS-RunPatchBaseline",
            "DocumentVersion": "1",
            "AssociationVersion": "1",
            "InstanceId": "i-02573cafcfEXAMPLE",
            "Status": "Queued",
            "AssociationName": "SystemAssociationForScanningPatches"
        }
    ]
}

如果註冊尚未完成或失敗,此命令會傳回類似如下的結果:

{
    "InstanceAssociationStatusInfos": []
}

如果命令在 5 分鐘左右後仍未傳回結果,請使用下列資訊協助您故障診斷受管節點的問題。

解決方案 1:確認受管節點上已安裝和執行 SSM Agent。

確定受管節點上已安裝和執行 SSM Agent 的最新版本。

若要判斷受管節點是否上已安裝和執行 SSM Agent,請參閱 檢查 SSM Agent 狀態並啟動代理程式

若要在受管節點上安裝或重新安裝 SSM Agent,請參閱下列主題:

解決方案 2:確認已為執行個體 (僅 EC2 執行個體) 指定 IAM 執行個體設定檔

對於 Amazon Elastic Compute Cloud (Amazon EC2) 執行個體,請確認該執行個體已使用 AWS Identity and Access Management (IAM) 執行個體設定檔進行設定,該設定檔可讓執行個體與 Systems Manager API 進行通訊。另外,確認您的使用者帳戶是否有 IAM 使用者信任政策,其允許您的帳戶與 Systems Manager API 通訊。

注意

內部部署伺服器、邊緣裝置和虛擬機器 (VM) 使用 IAM 服務角色,而非執行個體設定檔。如需詳細資訊,請參閱為混合環境建立 IAM 服務角色

若要判斷具有必要許可的執行個體設定檔是否已連接至 EC2 執行個體

  1. https://console.aws.amazon.com/ec2/ 開啟 Amazon EC2 主控台。

  2. 在導覽窗格中,選擇 Instances (執行個體)。

  3. 選擇要檢查執行個體設定檔的執行個體。

  4. 在底部窗格的 Description (描述) 標籤上,找出 IAM role (IAM 角色),然後選擇角色的名稱。

  5. 在執行個體設定檔的角色 Summary (摘要) 頁面,在 Permissions (許可) 標籤上,確保 Permissions policies (許可政策) 下已列出 AmazonSSMManagedInstanceCore

    如果改用自訂政策,確保它提供的許可與 AmazonSSMManagedInstanceCore 相同。

    在主控台中開啟 AmazonSSMManagedInstanceCore

    如需有關可連接至 Systems Manager 的執行個體設定檔的其他政策的資訊,請參閱建立 Systems Manager 的 IAM 執行個體設定檔

若要建立具有必要許可的執行個體設定檔並將其連接至新的 EC2 執行個體

若要將具有必要許可的現有執行個體設定檔連接至現有的 Amazon EC2 執行個體

解決方案 3:確認服務端點連線能力

請確認執行個體已連線到 Systems Manager 服務端點。提供此連線能力的方式是針對 Systems Manager 建立及設定 VPC 端點,或允許 HTTPS (連接埠 443) 輸出流量傳送至服務端點。

對於 Amazon EC2 執行個體,如果您的 Virtual Private Cloud (VPC) 組態允許傳出流量,則 AWS 區域 執行個體的 Systems Manager 服務端點會用來註冊執行個體。但是,如果在其中啟動執行個體的 VPC 組態不允許傳出流量,而且您無法變更此組態以允許連線至公有服務端點,則必須改為為 VPC 設定介面端點。

如需詳細資訊,請參閱 (建議) 建立 VPC 端點

解決方案 4:確認目標作業系統支援

確認您選擇的操作可以在預期列出的受管節點類型上執行。某些 Systems Manager 操作可以僅以 Windows 執行個體或 Linux 執行個體為目標。例如,Systems Manager (SSM) 文件 AWS-InstallPowerShellModuleAWS-ConfigureCloudWatch 只能在 Windows 執行個體上執行。在 Run a command (執行命令) 頁面上,如果您選擇其中一個文件,並選取 Choose instances manually (手動選擇執行個體),則只會列出您的 Windows 執行個體並可供選取。

解決方案 5:確認您是在與 Amazon EC2 執行個體相同的 AWS 區域 中作業。

Amazon EC2 執行個體可在特定 AWS 區域 中建立和提供,例如美國東部 (俄亥俄) 區域 (us-east-2) 或歐洲 (愛爾蘭) 區域 (eu-west-1)。請確定您是在與您要使用的 Amazon EC2 執行個體相同的 AWS 區域 中作業。如需詳細資訊,請參閱《AWS Management Console 入門》中的選擇區域

解決方案 6:確認套用至受管節點上的 SSM Agent 的代理組態

確認套用至受管節點上的 SSM Agent 的代理組態正確無誤。如果代理組態不正確,節點就無法連線到必要的服務端點,或 Systems Manager 可能會不正確地識別受管節點的作業系統。如需詳細資訊,請參閱 設定 SSM Agent 來使用代理 (Linux)將 SSM Agent 設定為使用 Windows Server 執行個體的代理

解決方案 7:在受管執行個體上安裝 TLS 憑證

您必須在與 AWS Systems Manager 搭配使用的每個受管執行個體上安裝 Transport Layer Security (TLS) 憑證。AWS 服務 會使用這些憑證來加密對其他 AWS 服務 的呼叫。

依預設,從任何 Amazon Machine Image (AMI) 建立的每個 Amazon EC2 執行個體上都已安裝 TLS 憑證。大多數現代作業系統在其信任存放區中都包含來自 Amazon Trust Services CA 的必要 TLS 憑證。

若要確認執行個體是否已安裝所需的憑證,請根據執行個體的作業系統執行下列命令。請務必使用您受管執行個體所在的 AWS 區域 取代 URL 的區域部分。

Linux & macOS
curl -L https://ssm.region.amazonaws.com
Windows
Invoke-WebRequest -Uri https://ssm.region.amazonaws.com

命令應該會傳回 UnknownOperationException 錯誤。如果您收到 SSL/TLS 錯誤訊息,則可能未安裝所需的憑證。

如果您發現所需的 Amazon Trust Services CA 憑證未安裝在基礎作業系統、從不是由 Amazon 提供之 AMIs 建立的執行個體、或您自己的內部部署伺服器和虛擬機器上,則必須從 Amazon Trust Services 安裝並允許憑證,或使用 AWS Certificate Manager (ACM) 為支援的整合服務建立及管理憑證。

您的每個受管執行個體必須安裝下列其中一個 Transport Layer Security (TLS) 憑證。

  • Amazon 根 CA 1

  • Starfield Services 根憑證授權機構:G2

  • Starfield Class 2 憑證授權機構

如需有關使用 ACM 的資訊,請參閱《AWS Certificate Manager 使用者指南》。

如果您運算環境中的憑證是由群組政策物件 (GPO) 管理,則您可能需要將群組政策設定為包含其中一個憑證。

如需 Amazon 根憑證和 Starfield 憑證的詳細資訊,請參閱部落格文章:如何準備因應 AWS 遷移至自家的憑證授權機構