本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
AWSSupport-TroubleshootEC2InstanceConnect
描述
AWSSupport-TroubleshootEC2InstanceConnect
自动化有助于分析和检测阻碍使用 Amazon Instance Con nect 连接到亚马逊弹性计算云 (AmazonEC2) EC2 实例的错误。它可以识别由不支持的 Amazon 系统映像 (AMI)、缺少操作系统级软件包安装或配置、缺少 AWS Identity and Access Management
(IAM) 权限或网络配置问题导致的问题。
如何工作?
该运行手册采用在使用 Amazon Instance Connect 时遇到问题的IAM角色或用户的亚马逊EC2实EC2例 ID、用户名、连接模式、源 IP CIDR、SSH端口和亚马逊资源名称 (ARN)。然后,它会检查使用 A EC2 mazon Instance Connect 连接到亚马逊EC2实例的先决条件:
-
实例正在运行且处于正常状态。
-
该实例位于 Amazon EC2 Instan AWS ce Connect 支持的区域。
-
AMI的实例受 Amazon Instance EC2 Connect 支持。
-
该实例可以访问实例元数据服务 (IMDSv2)。
-
Amaz EC2 on Instance Connect 软件包已在操作系统级别正确安装和配置。
-
网络配置(安全组ACL、网络和路由表规则)允许通过 Amazon Instance Connect 连接到EC2实例。
-
用于利用 Amazon EC2 Instance Connect 的IAM角色或用户有权将密钥推送到亚马逊EC2实例。
重要
-
要检查实例AMI、可访问IMDSv2性和 Amazon Instance EC2 Connect 软件包的安装,必须SSM对实例进行托管。否则,它会跳过这些步骤。有关更多信息,请参阅为什么我的 Amazon EC2 实例未显示为托管节点。
-
只有当作为输入参数提供时 SourceIpCIDR,网络检查才会检测安全组和网络ACL规则是否会阻止流量。否则,它只会显示SSH相关的规则。
-
本运行手册中未验证使用 Amazon EC2 Instance Connect 终端节点的连接。
-
对于私有连接,自动化不会检查源计算机上是否安装了SSH客户端,也不会检查它是否可以访问实例的私有 IP 地址。
文档类型
自动化
所有者
Amazon
平台
Linux
参数
所需IAM权限
AutomationAssumeRole
参数需要执行以下操作才能成功使用运行手册。
-
ec2:DescribeInstances
-
ec2:DescribeSecurityGroups
-
ec2:DescribeNetworkAcls
-
ec2:DescribeRouteTables
-
ec2:DescribeInternetGateways
-
iam:SimulatePrincipalPolicy
-
ssm:DescribeInstanceInformation
-
ssm:ListCommands
-
ssm:ListCommandInvocations
-
ssm:SendCommand
说明
按照这些步骤对自动化进行配置:
-
导航到 AWS Systems Manager 控制台
AWSSupport-TroubleshootEC2InstanceConnect
中的。 -
选择 Execute automation(执行自动化)。
-
对于输入参数,请输入以下内容:
-
InstanceId (必填):
您无法使用 Amazon Inst EC2 ance Connect 连接到的目标亚马逊EC2实例的 ID。
-
AutomationAssumeRole (可选):
允许 Systems Manager Automation 代表你执行操作的IAM角色。ARN如果未指定角色,Systems Manager Automation 将使用启动此运行手册的用户的权限。
-
用户名(必填):
用于使用 A EC2 mazon Instance Connect 连接到亚马逊EC2实例的用户名。它用于评估是否向该特定用户授予IAM访问权限。
-
EC2InstanceConnectRoleOrUser(必填):
利用 Amazon Instance Connect 向EC2实例推送密钥的IAM角色或用户。ARN
-
SSHPort(可选):
在 Amazon EC2 实例上配置的SSH端口。默认值为
22
。端口号必须介于1-65535
。 -
SourceNetworkType (可选):
Amazon EC2 实例的网络访问方法:
-
浏览器:您可以从 AWS 管理控制台进行连接。
-
公用:您通过 Internet 连接到位于公有子网中的实例(例如,您的本地计算机)。
-
私有:您通过实例的私有 IP 地址进行连接。
-
-
SourceIpCIDR(可选):
CIDR包含您将使用 Amazon EC2 Instance Connect 登录的设备(例如您的本地计算机)的 IP 地址的来源。示例:172.31.48.6/32。如果公共或私有访问模式未提供任何值,则运行手册将不会评估 Amazon EC2 实例安全组和网络ACL规则是否允许SSH流量。它将改为显示SSH相关的规则。
-
-
选择执行。
-
自动化启动。
-
文档将执行以下步骤:
-
AssertInitialState:
确保 Amazon EC2 实例状态为正在运行。否则,自动化将结束。
-
GetInstanceProperties:
获取当前的 Amazon EC2 实例属性(PlatformDetails PublicIpAddress、 VpcId、 SubnetId 和 MetadataHttpEndpoint)。
-
GatherInstanceInformationFromSSM:
获取 Systems Manager 实例的 ping 状态和操作系统详细信息(如果该实例已被SSM托管)。
-
CheckIfAWSRegionSupported:
检查亚马逊EC2实例是否位于 Amazon Instance EC2 Connect 支持的 AWS 区域。
-
BranchOnIfAWSRegionSupported:
如果 Amazon EC2 Instance Connect 支持 AWS 该区域,则继续执行。否则,它会创建输出并退出自动化。
-
CheckIfInstanceAMIIsSupported:
检查 Amazon Instance Connect 是否支持与该EC2实例AMI关联的。
-
BranchOnIfInstanceAMIIsSupported:
如果支持AMI该实例,它将执行操作系统级别的检查,例如元数据可访问性以及 Amazon EC2 Instance Connect 软件包的安装和配置。否则,它会使用检查是否启用了HTTP元数据 AWS API,然后进入网络检查步骤。
-
C heckIMDSReachabilityFromOs:
在目标 Amazon EC2 Linux 实例上运行 Bash 脚本以检查它是否能够访问。IMDSv2
-
C heckEICPackage 安装:
在目标 Amazon EC2 Linux 实例上运行 Bash 脚本,以检查 Amazon EC2 Instance Connect 软件包是否已正确安装和配置。
-
C heckSSHConfigFromOs:
在目标 Amazon EC2 Linux 实例上运行 Bash 脚本,以检查配置的SSH端口是否与输入参数 `SSHPort匹配。 `
-
CheckMetadataHTTPEndpointIsEnabled:
检查实例元数据服务HTTP终端节点是否已启用。
-
C heckEICNetwork 访问权限:
检查网络配置(安全组ACL、网络和路由表规则)是否允许通过 Amazon Instance Connect 连接到EC2实例。
-
C heckIAMRoleOrUserPermissions:
检查用于利用 Amazon EC2 Instance Connect 的IAM角色或用户是否有权使用提供的用户名将密钥推送到亚马逊EC2实例。
-
MakeFinalOutput:
合并所有先前步骤的输出。
-
-
完成后,请查看 “输出” 部分,了解执行的详细结果:
目标实例具有所有必需先决条件的执行:
在AMI不支持目标实例的情况下执行:
参考
Systems Manager Automation
AWS 服务文档