2016-06-08 105 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的網絡掩碼。