2016-06-08 107 views
1

我不擅长网络,但这里是我的问题:我需要从AWS lambda函数连接到MySQL服务器,这是在防火墙后面,并且'白色'我的AWS lambda我需要知道它使用什么IP 。AWS lambda函数使用什么ip?

据我所知,它取决于VPC子网。是对的,如果我的VPC子网CIDR是172.31.16.0/20,那么IP可能会从172.31.16.0变化到172.31.16.254?

+0

请勿使用IP,请使用安全组。 https://aws.amazon.com/blogs/aws/new-access-resources-in-a-vpc-from-your-lambda-functions/ – ceejayoz

+1

您打算在EC2实例上使用AWS RDS或MYSQL服务器吗? – error2007s

+0

只有在您尝试连接的MySQL服务器也位于VPC中时,VPC子网才会起作用。如果MySQL服务器也在VPC中,那么你应该使用安全组而不是IP地址。 –

回答

5

您有一个不在AWS基础架构上的MySQL实例。您希望通过Lambda函数的IP将对MySQL实例的访问限制到您的本地实例。您只能使用本地防火墙来保护实例。

因为你的使用情况,需要从LAMBDA网络连接到你的MySQL实例的公共互联网上,你将需要配置一个NAT gateway for your Lambda function to access the internet.

如果你的拉姆达功能需要上网......,你可以配置您的VPC内的NAT实例,或者您可以使用Amazon VPC NAT网关 。有关更多信息,请参阅Amazon VPC用户指南中的NAT网关 。

使用NAT网关配置允许您的Lambda请求来自NAT网关的固定IP。如果您在此处为NAT网关分配弹性IP编号,然后您可以在防火墙上指定该IP /端口组合,以保护对本地SQL实例的访问。

+0

“由于您的使用案例需要从公共互联网上的Lambda到您的MySQL实例的Internet访问,您将需要为您的Lambda功能配置一个NAT网关来访问互联网”并非完全正确。如果Lambda功能没有启用VPC访问,通常可以访问互联网。我同意,启用VPC访问并通过NAT强制实施互联网流量是对Lambda函数应用IP地址限制的最佳方式。 –

+0

或者一个NAT实例,当然。这个或者一个网关是从已知的,固定的公共IP地址发起Lambda流量的唯一途径,这个IP地址不是来自其他账户共享的公共IP地址池,所以+1。 –

+0

非常感谢!这正是我期待的! –

0

172.31.16.0/20中的IP地址是私有的,不可路由的地址。除非您的MySQL服务器和防火墙位于同一个VPC中,否则您的Lambda将只能通过NAT进行连接,并将使用连接到NAT网关的弹性IP。这是您需要白名单的唯一IP地址。

顺便说一下,对于172.31.16.0/20的CIDR,您可以预期IP地址从172.31.16.0到172.31.31.255。 20是掩码位的数量,其范围为4096个值。它映射到255.255.240.0的网络掩码。