允许在公共子网内使用私有 IP 地址的 ec2 实例访问 Internet?

Yas*_*vee 4 subnet gateway amazon-ec2 amazon-web-services private-ip

  • 我有一个公共子网(S1),其路由指向其路由表中的 Internet 网关。
  • 在 S1 内部启动了一个 ec2 实例(I1),但没有为其分配公共 IP,因此该实例只有一个私有 IP 地址,无法从 Internet 访问。
  • 我已经设置了从我的网关到实例(I1)的基于路径的路由,它工作得很好,这意味着对网关的请求可以毫无障碍地提供服务。
  • 问题是我需要从我的实例 I1 访问 Internet 中的某些资源,但不应从外部访问该实例。

我认为实例可以通过网关与 Internet 通信是错误的(就像在 wifi 网络中具有私有 IP 的移动设备如何通过接入点的公共 IP 与 Internet 通信一样)?!

只是想知道是否可以在不为我的实例分配公共 IP/弹性 IP 的情况下实现这种情况,因为您也需要访问互联网来安装任何软件,人们将如何实现此要求?!

注意:对于私有子网,NAT 网关工作正常,但这是一个公共子网,如果您将其指向 NAT 网关,则需要删除指向 Internet 网关的路由,这意味着我的网关将无法与我的实例通信(因为 ALB/网关只与 AWS 公有子网中的实例通信?!)

PS:aws 初学者,请不要滥用任何知识差距,提前致谢。

--亚什

Joh*_*ley 6

您误解/滥用公共和私有子网。

公共子网有一个 Internet 网关 (IGW)。公有子网中的实例需要公网IP地址才能访问Internet。

私有子网具有 NAT 网关或 NAT 实例。私有子网中的实例没有公有 IP 地址。

总之:如果一个子网有一个 IGW,它就是一个公共子网。如果子网具有 NAT,则它是私有子网。

您的问题的解决方案:

  1. 创建一个新的子网。
  2. 创建 NAT 网关。将 NAT 网关分配给子网。
  3. 为您需要移动到私有子网的每个实例创建一个 AMI,然后关闭这些实例。稍后您可以终止它们,但要等到您知道以下步骤正确完成。
  4. 从您在第 3 步中创建的每个 AMI 启动新的 EC2 实例。
  5. 验证一切正常。然后终止旧实例。您的 AMI 还用作这些实例的备份。

对您的要求有帮助的是:

“您可以在您的实例上使用公共 IP 地址,然后使用安全组将它们锁定。风险取决于允许的访问类型以及来自何处。”