

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

# `AWSSupport-TroubleshootEC2InstanceConnect`
<a name="automation-troubleshoot-ec2-instance-connect"></a>

 **Description** 

 `AWSSupport-TroubleshootEC2InstanceConnect` 自動化有助於分析和偵測無法使用 Amazon EC2 Instance Connect 連線至 Amazon Elastic Compute Cloud (Amazon [Amazon EC2) 執行個體的](https://docs.aws.amazon.com//AWSEC2/latest/UserGuide/connect-linux-inst-eic.html)錯誤。它可識別由不支援的 Amazon Machine Image (AMI)、缺少作業系統層級套件安裝或組態、缺少 AWS Identity and Access Management (IAM) 許可或網路組態問題引起的問題。

 **如何運作？** 

 Runbook 會為 IAM 角色或遇到 Amazon EC2 Instance Connect 問題的使用者取得 Amazon EC2 執行個體 ID、使用者名稱、連線模式、來源 IP CIDR、SSH 連接埠和 Amazon Resource Name (ARN)。然後，它會檢查使用 Amazon EC2 Instance Connect 連線至 Amazon EC2 執行個體[的先決條件](https://docs.aws.amazon.com//AWSEC2/latest/UserGuide/ec2-instance-connect-prerequisites.html)：
+ 執行個體正在執行且狀態良好。
+ 執行個體位於 Amazon EC2 Instance Connect 支援 AWS 的區域。
+ Amazon EC2 Instance Connect 支援執行個體的 AMI。
+ 執行個體可以連線到執行個體中繼資料服務 (IMDSv2)。
+ Amazon EC2 Instance Connect 套件已在作業系統層級正確安裝和設定。
+ 網路組態 （安全群組、網路 ACL 和路由表規則） 允許透過 Amazon EC2 Instance Connect 連線至執行個體。
+ 用來利用 Amazon EC2 Instance Connect 的 IAM 角色或使用者具有將金鑰推送至 Amazon EC2 執行個體的存取權。

**重要**  
若要檢查執行個體 AMI、IMDSv2 連線能力和 Amazon EC2 Instance Connect 套件安裝，執行個體必須受 SSM 管理。否則，它會略過這些步驟。如需詳細資訊，請參閱[為什麼我的 Amazon EC2 執行個體未顯示為受管節點。](https://repost.aws/knowledge-center/systems-manager-ec2-instance-not-appear)
網路檢查只會偵測提供 SourceIpCIDR 做為輸入參數時，安全群組和網路 ACL 規則是否封鎖流量。否則，它只會顯示 SSH 相關規則。
此 Runbook 不會驗證使用 [Amazon EC2 Instance Connect Endpoint](https://docs.aws.amazon.com//AWSEC2/latest/UserGuide/connect-using-eice.html) 的連線。
對於私有連線，自動化不會檢查 SSH 用戶端是否安裝在來源機器上，以及是否可以到達執行個體的私有 IP 地址。

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

Linux

**參數**

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+ `ec2:DescribeInstances`
+ `ec2:DescribeSecurityGroups`
+ `ec2:DescribeNetworkAcls`
+ `ec2:DescribeRouteTables`
+ `ec2:DescribeInternetGateways`
+ `iam:SimulatePrincipalPolicy`
+ `ssm:DescribeInstanceInformation`
+ `ssm:ListCommands`
+ `ssm:ListCommandInvocations`
+ `ssm:SendCommand`

 **指示** 

請依照下列步驟設定自動化：

1. 在 AWS Systems Manager 主控台[https://console.aws.amazon.com/systems-manager/documents/AWSSupport-TroubleshootEC2InstanceConnect/description](https://console.aws.amazon.com/systems-manager/documents/AWSSupport-TroubleshootEC2InstanceConnect/description)中導覽至 。

1. 選擇 Execute automation (執行自動化)。

1. 針對輸入參數，輸入下列內容：
   + **InstanceId （必要）：**

     您使用 Amazon EC2 Instance Connect 無法連線的目標 Amazon EC2 執行個體 ID。
   + **AutomationAssumeRole （選用）：**

     允許 Systems Manager Automation 代表您執行動作的 IAM 角色 ARN。如果未指定角色，Systems Manager Automation 會使用啟動此 Runbook 之使用者的許可。
   + **使用者名稱 （必要）：**

     用於使用 Amazon EC2 Instance Connect 連線至 Amazon EC2 執行個體的使用者名稱。它用於評估是否授予此特定使用者的 IAM 存取權。
   + **EC2InstanceConnectRoleOrUser （必要）：**

     利用 Amazon EC2 Instance Connect 將金鑰推送至執行個體的 IAM 角色或使用者的 ARN。
   + **SSHPort （選用）：**

     在 Amazon EC2 執行個體上設定的 SSH 連接埠。預設值為 `22`。連接埠號碼必須介於 之間`1-65535`。
   + **SourceNetworkType （選用）：**

     Amazon EC2 執行個體的網路存取方法：
     + **瀏覽器：**您可以從 AWS 管理主控台連線。
     + **公有：**您可以透過網際網路 （例如，本機電腦） 連線到位於公有子網路中的執行個體。
     + **私有：**您可以透過執行個體的私有 IP 地址進行連線。
   + **SourceIpCIDR （選用）：**

     來源 CIDR，其中包含您將使用 Amazon EC2 Instance Connect 記錄之裝置的 IP 地址 （例如您的本機電腦）。範例：172.31.48.6/32。如果公有或私有存取模式未提供任何值，則 Runbook 將不會評估 Amazon EC2 執行個體安全群組和網路 ACL 規則是否允許 SSH 流量。它會改為顯示 SSH 相關規則。  
![\[Input parameters form for EC2 Instance Connect troubleshooting with various fields.\]](http://docs.aws.amazon.com/zh_tw/systems-manager-automation-runbooks/latest/userguide/images/awssupport-troubleshoot-ec2-instance-connect_input_parameters.png)

1. 選取執行。

1. 自動化會啟動。

1. 文件會執行下列步驟：
   + **AssertInitialState：**

     確保 Amazon EC2 執行個體狀態正在執行。否則，自動化會結束。
   + **GetInstanceProperties：**

     取得目前的 Amazon EC2 執行個體屬性 (PlatformDetails、PublicIpAddress、VpcId、SubnetId 和 MetadataHttpEndpoint)。
   + **GatherInstanceInformationFromSSM：**

     如果執行個體受 SSM 管理，則取得 Systems Manager 執行個體的 ping 狀態和作業系統詳細資訊。
   + **CheckIfAWSRegionSupported：**

     檢查 Amazon EC2 執行個體是否位於 Amazon EC2 Instance Connect 支援 AWS 的區域。
   + **BranchOnIfAWSRegionSupported：**

     如果 Amazon EC2 Instance Connect 支援該 AWS 區域，則繼續執行。否則，它會建立輸出並結束自動化。
   + **CheckIfInstanceAMIIsSupported：**

     檢查 Amazon EC2 Instance Connect 是否支援與執行個體相關聯的 AMI。
   + **BranchOnIfInstanceAMIIsSupported：**

     如果支援執行個體 AMI，它會執行作業系統層級檢查，例如中繼資料連線能力和 Amazon EC2 Instance Connect 套件安裝和組態。否則，它會檢查是否使用 AWS API 啟用 HTTP 中繼資料，然後進入網路檢查步驟。
   + **CheckIMDSReachabilityFromOs**

     在目標 Amazon EC2 Linux 執行個體上執行 Bash 指令碼，以檢查它是否可以到達 IMDSv2。
   + **CheckEICPackageInstallation：**

     在目標 Amazon EC2 Linux 執行個體上執行 Bash 指令碼，以檢查 Amazon EC2 Instance Connect 套件是否已正確安裝和設定。
   + **CheckSSHConfigFromOs**

     在目標 Amazon EC2 Linux 執行個體上執行 Bash 指令碼，以檢查設定的 SSH 連接埠是否符合輸入參數 `SSHPort.`
   + **CheckMetadataHTTPEndpointIsEnabled：**

     檢查執行個體中繼資料服務 HTTP 端點是否已啟用。
   + **CheckEICNetworkAccess：**

     檢查網路組態 （安全群組、網路 ACL 和路由表規則） 是否允許透過 Amazon EC2 Instance Connect 連線至執行個體。
   + **CheckIAMRoleOrUserPermissions：**

     檢查用於利用 Amazon EC2 Instance Connect 的 IAM 角色或使用者是否有權使用提供的使用者名稱將金鑰推送至 Amazon EC2 執行個體。
   + **MakeFinalOutput：**

     合併所有先前步驟的輸出。

1. 完成後，請檢閱**輸出**區段以取得執行的詳細結果：

   目標執行個體具有所有必要先決條件的執行：  
![\[EC2 Instance Connect prerequisites check results showing successful validations for various configurations.\]](http://docs.aws.amazon.com/zh_tw/systems-manager-automation-runbooks/latest/userguide/images/awssupport-troubleshoot-ec2-instance-connect_outputs_all_requirements_found.png)

   不支援目標執行個體 AMI 的執行：  
![\[Error message indicating EC2 Instance Connect does not support the specified AMI version.\]](http://docs.aws.amazon.com/zh_tw/systems-manager-automation-runbooks/latest/userguide/images/awssupport-troubleshoot-ec2-instance-connect_outputs_all_requirements_not_found.png)

 **參考** 

Systems Manager Automation
+ [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/documents/AWSSupport-TroubleshootEC2InstanceConnect/description)
+ [執行自動化](https://docs.aws.amazon.com//systems-manager/latest/userguide/automation-working-executing.html)
+ [設定 自動化](https://docs.aws.amazon.com//systems-manager/latest/userguide/automation-setup.html)
+ [支援自動化工作流程登陸頁面](https://aws.amazon.com/premiumsupport/technology/saw/)

AWS 服務文件
+ [如何使用 Amazon EC2 Instance Connect 對連線至 Amazon EC2 執行個體的問題進行疑難排解？](https://repost.aws/knowledge-center/ec2-instance-connect-troubleshooting)