本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
AWSSupport-TroubleshootEC2InstanceConnect
描述
AWSSupport-TroubleshootEC2InstanceConnect
自动化有助于分析和检测阻碍使用 Amazon Instance Con nect 连接到亚马逊弹性计算云 (Amazon EC2) EC2 实例的错误。它可以识别由不支持的亚马逊系统映像 (AMI)、缺少操作系统级软件包安装或配置、缺少 AWS Identity and Access Management
(IAM) 权限或网络配置问题导致的问题。
如何工作?
该运行手册采用 IAM 角色或在使用 Amazon Instance Connect 时遇到问题的用户的亚马逊 EC2 实例 ID、用户名、连接模式、源 IP CIDR、SSH 端口和亚马逊资源名称 (ARN)。 EC2 然后,它会检查使用 A EC2 mazon Instance Connect 连接到亚马逊 EC2 实例的先决条件:
-
实例正在运行且处于正常状态。
-
该实例位于 Amazon EC2 Instan AWS ce Connect 支持的区域。
-
Amazon Instance Connect 支持 EC2 实例的 AMI。
-
该实例可以访问实例元数据服务 (IMDSv2)。
-
Amaz EC2 on Instance Connect 软件包已在操作系统级别正确安装和配置。
-
网络配置(安全组、网络 ACL 和路由表规则)允许通过 Amazon Instance Connect 连接到 EC2 实例。
-
用于利用 Ama EC2 zon Instance Connect 的 IAM 角色或用户有权将密钥推送到亚马逊 EC2 实例。
重要
-
要检查实例 AMI、可访问 IMDSv2 性和 Amazon Instance EC2 Connect 软件包的安装,该实例必须由 SSM 托管。否则,它会跳过这些步骤。有关更多信息,请参阅为什么我的 Amazon EC2 实例未显示为托管节点。
-
只有将 SourceIp CIDR 作为输入参数提供时,网络检查才会检测安全组和网络 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 Conn EC2 ect 向实例推送密钥的 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:
如果该实例由 SSM 托管,则获取 Systems Manager 实例的 ping 状态和操作系统详细信息。
-
CheckIfAWSRegion支持:
检查亚马逊 EC2 实例是否位于 Amazon Instance EC2 Connect 支持的 AWS 区域。
-
BranchOnIfAWSRegion支持:
如果 Amazon EC2 Instance Connect 支持 AWS 该区域,则继续执行。否则,它会创建输出并退出自动化。
-
CheckIfInstanceAMIIs支持:
检查 Amazon Instance Connect 是否支持与该 EC2实例关联的 AMI。
-
BranchOnIfInstanceAMIIs支持:
如果支持实例 AMI,它将执行操作系统级别的检查,例如元数据可访问性以及 Amazon EC2 Instance Connect 软件包的安装和配置。否则,它会使用 AWS API 检查是否启用了 HTTP 元数据,然后进入网络检查步骤。
-
检查 IMDSReachabilityFromOs:
在目标 Amazon EC2 Linux 实例上运行 Bash 脚本以检查它是否能够访问。 IMDSv2
-
检查EICPackage安装:
在目标 Amazon EC2 Linux 实例上运行 Bash 脚本,以检查 Amazon EC2 Instance Connect 软件包是否已正确安装和配置。
-
检查 SSHConfigFromOs:
在目标 Amazon EC2 Linux 实例上运行 Bash 脚本,以检查配置的 SSH 端口是否与输入参数 `SSHPort匹配。 `
-
CheckMetadataHTTPEndpointIsEnabled:
检查实例元数据服务 HTTP 端点是否已启用。
-
检查EICNetwork访问权限:
检查网络配置(安全组、网络 ACL 和路由表规则)是否允许通过 Amazon Instance Connect 连接到 EC2 实例。
-
检查 IAMRoleOrUserPermissions:
检查用于利用 Amazon EC2 Instance Connect 的 IAM 角色或用户是否有权使用提供的用户名将密钥推送到亚马逊 EC2 实例。
-
MakeFinalOutput:
合并所有先前步骤的输出。
-
-
完成后,请查看 “输出” 部分,了解执行的详细结果:
目标实例具有所有必需先决条件的执行:
在不支持目标实例的 AMI 的情况下执行:
参考
Systems Manager Automation
AWS 服务文档