amazon-web-services - AWS SSM session 管理器和 Nat 网关

标签 amazon-web-services ssm aws-nat-gateway

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

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

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

我可以通过 session 管理器在实例上启动 session 。

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

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

谢谢。

最佳答案

But I do not understand why Session Manager would require the instance to have internet access?



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

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

SSM 必须始终与 SSM 服务保持联系。否则它不会真正有用。没有互联网,您将无法,例如通过执行 Run Commands ,通过 State Manger 使您的实例处于每个定义的状态或收集各种实例遥测和库存。因此,一旦您断开 NAT 网关,互联网连接就会丢失,SSM 代理将无法完成其工作。

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

关于amazon-web-services - AWS SSM session 管理器和 Nat 网关,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61339106/

相关文章:

amazon-web-services - 通过 VPC 对等连接到互联网

amazon-web-services - Boto3 没有在 Windows 上加载 aws 凭据文件

javascript - 由于使用 require AND import 导致无服务器部署失败

amazon-web-services - 如何使用 CloudFormation 创建文档类型为 'AWS::SSM::Document' 的包

amazon-web-services - AWS SSM 放置参数验证异常

amazon-web-services - Lambda 函数无法访问 Secrets Manager

amazon-web-services - 如何为在 EC2 模式下运行在 AWS ECS 集群中的容器分配公共(public) IP

python - Elasticsearch - field_value_factor,缺少参数

amazon-ec2 - 为什么数据库安全组中的 CIDR/IP 可能与实例弹性 IP 不同?

amazon-web-services - 使用 cloudformation 中的标签访问 AWS System Manager Parameter Store