Amazon web services 如何在具有nat网关的VPC中限制internet访问?

Amazon web services 如何在具有nat网关的VPC中限制internet访问?,amazon-web-services,amazon-vpc,Amazon Web Services,Amazon Vpc,我已经设置了一个VPC,它有两个子网public和private。VPC中有许多lambda,其中一些需要互联网接入。所以我在VPC上增加了NAT网关。然而,它使每一个lambda都能够访问互联网。如何控制哪些lambda可以通过NAT网关在VPC中访问internet?我假设lambda需要访问其部署所在子网中的某些资源 如果是这种情况,那么我建议您使用所需的设置创建一个安全组,并将该安全组分配给所有要限制访问的lambda 如果不是这样,您只需删除lambda级别的VPC关联。NAT网关没有

我已经设置了一个VPC,它有两个子网
public
private
。VPC中有许多lambda,其中一些需要互联网接入。所以我在VPC上增加了NAT网关。然而,它使每一个lambda都能够访问互联网。如何控制哪些lambda可以通过NAT网关在VPC中访问internet?

我假设lambda需要访问其部署所在子网中的某些资源

如果是这种情况,那么我建议您使用所需的设置创建一个安全组,并将该安全组分配给所有要限制访问的lambda


如果不是这样,您只需删除lambda级别的VPC关联。

NAT网关没有安全组(SGs)或访问策略。因此,您无法使用NAT控制对internet的访问。但您可以考虑一些替代措施:

  • 创建一个没有NAT路由的专用子网,并将lambda函数放在那里。如果没有NAT路由,此子网中的任何内容都无法与internet通信
  • 使用自定义传出规则创建一个特殊的SG,例如,只允许向VPC的CIDR或只允许与之通信的SGs传出流量
  • 创建专用专用专用VPC仅用于lambda功能,并与主VPC对等。VPC对等是不可传递的,这意味着您的功能将无法从主VPC使用NAT

简单回答:任何连接到公共子网的AWS Lambda功能都无法访问Internet


这是因为公用子网的路由表不通过NAT网关发送流量,并且Lambda函数本身无法使用Internet网关访问Internet。

是的,您是对的。这是我的用例。这意味着我不能使用NAT网关来控制谁可以访问互联网?我想你在制造一些混乱。NAT所做的只是允许私有子网中的实例与internet进行通信。您处理的是lambda,而不是实例。如果我使用第一个选项,则必须在VPC中创建三个子网。一个没有到NAT路线的私家车。一个是通往NAT的私人通道,一个是公共通道。是吗?@是的,没错。您将把lambda函数放在没有nat的私有子网中。我确实需要一些lambda来访问internet。所以我在专有网络中有一个互联网网关。是的,那很好。任何需要访问Internet的Lambda函数都应连接到专用子网。任何不应访问Internet的设备都应连接到公用子网。