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

Posted

技术标签:

【中文标题】AWS SSM 会话管理器未显示实例【英文标题】:AWS SSM session manager not showing instances 【发布时间】:2021-08-03 06:49:44 【问题描述】:

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

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

(我也尝试过使用 amazon linux 2 实例——结果相同)。

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

【问题讨论】:

您需要更具体。您的实例是否在私有子网、任何安全组或 nacls 设置中? 实例在公有子网还是私有子网中?如果是私有子网,是否可以连接到 Internet? 【参考方案1】:

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

com.amazonaws.[region].ec2messages com.amazonaws.[region].ssmmessages

【讨论】:

【参考方案2】:

如果您为此私有子网配置了 NAT 网关,则将实例放在私有子网中不会对 SSM 造成问题(确保私有子网可以访问公共互联网,私有子网 -> NAT 网关 -> 公共子网 ->互联网网关)。

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

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

希望以上内容能解决您的问题。

【讨论】:

【参考方案3】:

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

com.amazonaws.[region].ec2messages com.amazonaws.[region].ssmmessages

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

com.amazonaws.[region].ssm

当 Systems Manager 无法连接到 EC2 实例时,您可以从 AWS 的 own troubleshooting steps 看到:

验证与端口 443 上的 Systems Manager 端点的连接

验证连接性的最佳方法取决于您的操作 系统。

重要提示:在以下命令示例中,将 RegionID 替换为 您的 AWS 区域 ID。

有关按区域列出的 Systems Manager 终端节点列表,请参阅 AWS 系统 管理器端点和配额。

...

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

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

【讨论】:

以上是关于AWS SSM 会话管理器未显示实例的主要内容,如果未能解决你的问题,请参考以下文章

使用 gatsby-source-graphql 时,GraphIQL 资源管理器未在 Gatsby 中显示

Spring Boot 会话管理——为啥会有两个 sessionRegistry 实例?

无法再连接到 AWS Windows 或 Linux 实例

第二十四章 在线会话管理——《跟我学Shiro》

具有自动缩放属性的 EC2 实例上的 tomcat 的 Memcached 会话管理器

ListAssociation 的 AWS Session Manager 异常