5

我在私有子网中创建了一个 EC2 实例(即路由表没有附加 Internet 网关)。

附加到私有子网的路由表将 0.0.0.0/0 路由到 NAT 网关。

EC2 实例具有正确的 SSM 角色并显示在 SSM 托管实例列表中。

我可以通过会话管理器在实例上发起会话。

但是,当我从路由表中删除 NAT 网关映射时,会话连接不会连接。

我的理解是 NAT 仅用于传出流量。所以我假设会话管理器连接是通过内部 AWS 网络而不是公共互联网路由的,因为实例无法访问。但是我不明白为什么该实例试图通过公共互联网路由流量。我本来希望将自己注册为 SSM 的托管实例,该实例上的 SSM 代理将需要互联网访问。但我不明白为什么 Session Manager 会要求实例能够访问 Internet?

谢谢。

4

1 回答 1

3

但我不明白为什么 Session Manager 会要求实例能够访问 Internet?

SSM 使用公共端点连接到 SSM 服务。端点用于“以编程方式连接到 AWS 服务”。访问它们(没有 VPC 接口端点)的唯一方法是使用 Internet。

SSM 代理也可以与本地实例或虚拟机一起使用。因此,它还需要访问 Internet 才能与 SSM 服务进行通信。

SSM 必须与 SSM 服务保持持续联系。否则它不会很有用。如果没有 Internet,您将无法通过或收集各种实例遥测数据和清单来执行Run Commands、将您的实例保持在每个定义的状态。State Manager因此,一旦您断开 NAT 网关,互联网连接就会丢失,并且 SSM 代理无法完成其工作。

如果您不习惯通过 SSM 的 NAT 网关使用 Internet,您可以设置 SSM VPC 网络接口。这样,您在私有子网中的实例将能够与 SSM 服务进行通信,而无需访问 Internet。所有流量都将基于内部 AWS 网络。

于 2020-04-21T09:18:59.517 回答