我们在帐户中具有Lambda函数,并且我们想在另一个具有公共IP的VPC中(通过HTTP)访问EC2实例。我想知道执行此通信的最佳方法是什么。我是Lambda的新手,我才刚了解VPC lambda。我需要在EC2实例的安全组上打开哪些CIDR?我是否可以在源VPC中选择一组特定的公共IP-这样我就可以在SG中将该范围列入白名单了?
对于这种情况,VPC对等似乎是开销,还是唯一可能的解决方案?
答案 0 :(得分:2)
这完全取决于您的要求,但是,对这些VPC进行对等是将流量保留在可满足安全最佳实践(威胁/安全模型和云/网络体系结构)。
如果有一个严格的企业政策规则,即不得通过DMZ /公共Internet进行通信路由,并且必须将其保持在内部路由的受信任边界之内,那么我认为别无选择,只能选择VPC对等:https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/peer-with-vpc-in-another-account.html
但是,如果要求不是很严格,并且您可以使用公共Internet通过DMZ转发流量,则可以在不牺牲太多安全性的情况下实现这一点(假设您使用其他帐户的带有公共IP的EC2正在提供SSL / TLS上的服务,您的lambda可以在验证EC2证书的同时通过加密的通信通道与其进行通信)。
这可以通过使Lambda与您的VPC的内部子网相关联,以与具有公共IP的其他帐户的EC2进行通信来实现。 https://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_Scenario2.html
是的,您仍然可以将Lambda保留在内部子网中。但是您需要一个NAT网关并更新Lambda的内部子网的路由表以指向NAT网关(应将其分配给EIP),即随后它将指向您的INTERNET网关。这样,您将确保位于VPC专用子网中的LAMBDA可以与外部(即与EC2实例)进行对话,该EC2实例位于具有公共IP的另一个帐户中。因此,您可以在其他帐户的EC2的安全组中将一个IP列入白名单,这是NATGATEWAY的EIP,该子网中的Lambda或任何其他内部组件将使用该IP查找到Internet的出路。