如何使用 nat 网关限制 VPC 中的互联网访问?
How to restrict internet access in a VPC with a nat gateway?
我设置了一个包含两个子网 public
和 private
的 VPC。 VPC 中有很多 lambda,其中一些需要访问互联网。所以我在 VPC 上添加了 NAT 网关。但是,它使每个 lambda 都能访问互联网。如何控制哪些 lambda 可以在具有 NAT 网关的 VPC 中访问互联网?
我假设 lambda 需要访问它们部署的子网中的某些资源。
如果是这样,那么我建议您创建一个具有所需设置的安全组,并将该安全组分配给您要限制访问的所有 lambda。
如果不是这种情况,您可以简单地删除 lambda 级别的 VPC 关联。
NAT 网关没有安全组 (SG) 也没有访问策略。因此,您无法使用 NAT 控制对互联网的访问。但是您可以考虑一些替代措施:
- 创建一个 没有路由 到 NAT 的私有子网,并将您的 lambda 函数放在那里。如果没有到 NAT 的路由,此子网中的任何内容都无法与 Internet 通信。
- 创建一个带有自定义传出规则的特殊 SG,例如仅允许传出流量到您的 VPC 的 CIDR,或仅允许它们与之通信的 SG。
- 仅为 lambda 函数创建专用私有 VPC,并将其与您的主要 VPC 对等。 VPC 对等 not-transitive,这意味着您的函数将无法使用主 VPC 的 NAT。
简单回答:任何连接到 public 子网的 AWS Lambda 函数将不能 访问互联网。
这是因为 public 子网的路由 table 不通过 NAT 网关发送流量,Lambda 函数本身无法使用互联网网关访问互联网。
我设置了一个包含两个子网 public
和 private
的 VPC。 VPC 中有很多 lambda,其中一些需要访问互联网。所以我在 VPC 上添加了 NAT 网关。但是,它使每个 lambda 都能访问互联网。如何控制哪些 lambda 可以在具有 NAT 网关的 VPC 中访问互联网?
我假设 lambda 需要访问它们部署的子网中的某些资源。
如果是这样,那么我建议您创建一个具有所需设置的安全组,并将该安全组分配给您要限制访问的所有 lambda。
如果不是这种情况,您可以简单地删除 lambda 级别的 VPC 关联。
NAT 网关没有安全组 (SG) 也没有访问策略。因此,您无法使用 NAT 控制对互联网的访问。但是您可以考虑一些替代措施:
- 创建一个 没有路由 到 NAT 的私有子网,并将您的 lambda 函数放在那里。如果没有到 NAT 的路由,此子网中的任何内容都无法与 Internet 通信。
- 创建一个带有自定义传出规则的特殊 SG,例如仅允许传出流量到您的 VPC 的 CIDR,或仅允许它们与之通信的 SG。
- 仅为 lambda 函数创建专用私有 VPC,并将其与您的主要 VPC 对等。 VPC 对等 not-transitive,这意味着您的函数将无法使用主 VPC 的 NAT。
简单回答:任何连接到 public 子网的 AWS Lambda 函数将不能 访问互联网。
这是因为 public 子网的路由 table 不通过 NAT 网关发送流量,Lambda 函数本身无法使用互联网网关访问互联网。