AWS SSM 会话管理器不显示实例

AWS SSM session manager not showing instances

我将策略:AmazonSSMManagedInstanceCore 添加到 windows 实例(即 运行 SSM 代理)的实例配置文件中...但它没有显示在会话管理器下。

它一直说:“没有与所需的 IAM 角色关联的实例。” 知道是什么原因造成的吗?

(我也尝试过使用亚马逊 linux 2 个实例——结果相同)。

编辑:是的,该实例位于私有子网中,可能无法访问互联网——所以这很可能是问题。

aws 会话管理器使用 SSM api(使用 websockets)与 ec2 实例建立了通信。您的实例所在的子网必须能够访问互联网,例如通过 NAT 网关(如果它位于私有子网中),或者您必须创建以下 VPC 端点:

  • com.amazonaws.[地区].ec2messages
  • com.amazonaws.[地区].ssmmessages

如果您为此私有子网配置了 NAT 网关,那么在私有子网中放置一个实例对于 SSM 来说不是问题(确保私有子网可以到达 public 互联网,私有子网 -> NAT 网关-> public 子网 -> 互联网网关)。

SSM 查看实例需要三个先决条件:

  1. SSM 代理应为 运行
  2. IAM 权限。将策略“AmazonSSMManagedInstanceCore”附加到附加到实例的角色。(您可能需要在附加策略后重新启动实例)
  3. 与服务端点的连接。 (如果你改变了出站规则,尝试对所有流量使用0.0.0.0留下实例作为测试)

希望以上能解决您的问题

b.b3rn4rd 是正确的(刚刚测试过)如果您缺少 NAT 网关,您需要私有子网的两个 VPC 端点

  • com.amazonaws.[地区].ec2messages
  • com.amazonaws.[地区].ssmmessages

但是您还需要一个用于 Systems Manager 本身的 VPC 端点

  • com.amazonaws.[地区].ssm

当系统管理器无法连接到 EC2 实例时,您可以从 AWS 的 own troubleshooting steps 中看到:

Verify connectivity to Systems Manager endpoints on port 443

The best method to verify connectivity depends on your operating system.

Important: In the following command examples, replace RegionID with your AWS Region ID.

For a list of Systems Manager endpoints by Region, see AWS Systems Manager endpoints and quotas.

...

nc -vz ssm.RegionID.amazonaws.com 443 
nc -vz ec2messages.RegionID.amazonaws.com 443 
nc -vz ssmmessages.RegionID.amazonaws.com 443 

还需要确保 VPC 端点所在的安全组具有入站规则,允许来自实例所在 SG 的所有入站 TCP 流量。