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

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

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

對於數種 AWS Systems Manager 功能 (例如Run CommandDistributorSession Manager、和),您可以選擇手動選取要在其上執行作業的受管理節點。在這類情況下,在您指定要手動選擇節點之後,系統會顯示您可以在其中執行操作的受管節點清單。

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

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

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

    注意

    某些 AWS managed Amazon Machine Images (AMIs) 設定為啟動SSM Agent預先安裝的執行個體。(您還可以設定自訂 AMI 以預先安裝 SSM Agent。) 如需詳細資訊,請參閱 AMIs使用預先安SSM Agent裝的查找

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

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

  • 在受管節點的狀態成為 Connection Lost 的時間至少 30 天之後,該節點可能不會再列於 Fleet 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 服務角色,而非執行個體設定檔。如需詳細資訊,請參閱建立混合式和多雲端環境中 Systems Manager 所需的 IAM 服務角色

若要判斷具有必要許可的執行個體設定檔是否已連接至 EC2 執行個體
  1. https://console.aws.amazon.com/ec2/ 開啟 Amazon EC2 主控台。

  2. 在導覽窗格中,選擇執行個體

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

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

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

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

    在主控台中開啟 AmazonSSMManagedInstanceCore

    如需可附加至 Systems Manager 執行個體設定檔之其他原則的相關資訊,請參閱設定系統管理員所需的執行個體權限

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

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

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

如需詳細資訊,請參閱針對 Systems Manager 使用 VPC 端點提高 EC2 執行個體的安全性

解決方案 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 憑證

傳輸層安全性 (TLS) 憑證必須安裝在您搭配使用的每個代管執行個體上 AWS Systems Manager。 AWS 服務 使用這些憑證來加密對其他人的呼叫 AWS 服務。

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

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

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個體上,或在您自己的現場部署伺服器和 VM 上建立的執行個體上,您必須安裝並允許來自 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的憑證授權單位。