當我使用 AWS Systems Manager Run Command 在受管 Amazon Elastic Compute Cloud (Amazon EC2) 執行個體上執行命令時,該程序會失敗。
解決方法
先決條件
您必須先設定 AWS Identity and Access Management (IAM) 政策,然後才能使用 Run Command 管理 EC2 執行個體。任何執行命令的使用者都需要使用者政策。若要確認您的設定,請依照下列步驟操作:
- 確認 Systems Manager 的 IAM 執行個體設定檔角色是否已附加到您的 EC2 執行個體。如需詳細資訊,請參閱設定 Systems Manager 的執行個體權限。
- 查看為角色或使用者建立的 IAM 政策。該政策必須包含 ec2messages API 呼叫的權限,因為端點需要傳送和接收命令。
**注意:**當您設定預設主機管理組態時,Systems Manager 會自動管理沒有 IAM 執行個體設定檔的 EC2 執行個體。所有關聯的 EC2 執行個體必須使用執行個體中繼資料服務版本 2 (IMDSv2)。預設主機管理組態可在 AWS Systems Manager Agent (SSM Agent) 版本 3.2.582.0 或更新版本中使用。在附加到 IAM 角色的政策中設定ec2messages API 呼叫的權限,因為您需要一個端點來傳送和接收命令。將 AWSSystemsManagerDefaultEC2InstanceManagementRole 設定為預設 IAM 角色。此角色包含使用 Systems Manager 管理 EC2 執行個體所需的最小權限集。
對 Run Command 失敗進行疑難排解
在 Systems Manager 中的 Fleet Manager (機群管理器) 下,EC2 執行個體必須列在 Managed nodes (受管節點) 下,且 SSM 代理程式 ping 狀態必須為線上。如果 Run Command 失敗,請嘗試下列疑難排解選項:
查看 Run Command 狀態詳細資訊
- 查看 Run Command 狀態詳細資訊。
- 開啟 Systems Manager 主控台,然後從導覽窗格中選擇 Run Command。
- 選擇超連結的命令 ID,以開啟 Command status (命令狀態) 頁面。
- 從目標和輸出區段中,選擇超連結的執行個體 ID,然後檢閱輸出。
若輸出遭到截斷,請使用 SSH 連線至 EC2 執行個體,然後瀏覽至下列目錄,以查看完整的錯誤詳細資訊。記下結束狀態碼,然後參閱對 Systems Manager Run Command 進行疑難排解,以了解更多疑難排解步驟。
若是 Linux 和 macOS:
- /var/lib/amazon/ssm/<instance-id>/document/orchestration/<command-id>/<Plugin-name>/<Step-name>/stdout
- /var/lib/amazon/ssm/<instance-id>/document/orchestration/<command-id>/<Plugin-name>/<Step-name>/stderr
在 Windows 中:
- %ProgramData%\Amazon\SSM\InstanceData\<ManagedInstance-ID>\document\orchestration\<Command-ID>\<plug-in>\<step_number.plug-in>\stdout
- %ProgramData%\Amazon\SSM\InstanceData\<ManagedInstance-ID>\document\orchestration\<Command-ID>\<plug-in>\<step_number.plug-in>\stderr
檢閱 SSM 代理程式日誌
如需有關失敗的詳細資訊,請檢閱 SSM 代理程式日誌。
若是 Linux 和 macOS,請在下列目錄中找到日誌:
- /var/log/amazon/ssm/amazon-ssm-agent.log
- /var/log/amazon/ssm/errors.log
- /var/log/amazon/ssm/audits/amazon-ssm-agent-audit-YYYY-MM-DD
若是 Windows,請在下列目錄中找到日誌:
- %PROGRAMDATA%\Amazon\SSM\Logs\amazon-ssm-agent.log
- %PROGRAMDATA%\Amazon\SSM\Logs\errors.log
- %PROGRAMDATA%\Amazon\SSM\Logs\audits\amazon-ssm-agent-audit-YYYY-MM-DD
如果 SSM 代理日誌未提供解決錯誤所需的資訊,請允許偵錯日誌來重現問題。
相關資訊
AWS Systems Manager 文件
設定 AWS Systems Manager