在GCP云运行/功能上使用固定的公共IP(到白名单)



我正在寻找将应用程序部署到GCP的最佳方式。该应用程序需要使用微服务(运行在Cloud Run或Cloud Function上(在远程数据库上执行SQL代码。

基本上,微服务收到一段SQL代码,需要在远程数据库上执行。出于安全原因,远程数据库必须将应用程序用于连接的IP地址列入白名单。

在GCP上,拥有一个固定的公共IP地址的最佳方式是什么,一个遥远的DB可以将其列入白名单?考虑到我想使用Cloud Run或Cloud Function。

注意:我知道使用GKE的解决方案。或者在AWS上,使用Lambda+NAT实例。

谢谢!

您有几种解决方案可以实现此

  • 在GKE上使用Cloud Run。在这种情况下,你的虚拟机在你的专有网络上,你知道他们的IP。但是,如果VM重新启动,您会有几个公共IP和IP更改。好的模式是将公共IP移除到VM,并部署一个Cloud Nat,用于将所有出口流量映射到单个外部(和公共(IP
  • 使用Cloud函数。在这种情况下,您必须添加一个附加组件:Serverless VPC Access。该组件允许路由源自无服务器组件的流量(全部或仅专用目的地IP(。因此,您的请求通过这个元素并进入您的专有网络。然后,像以前一样,配置一个Cloud Nat,用于将外部IP映射为静态和公共IP

无服务器VPC访问与AppEngine和Cloud Function配合使用。Cloud Run应该在2020年遵守它。

最后一种选择:在这两种情况下,我们都使用Cloud Nat在带有静态IP的公共互联网上运行。你可以想象在你的专有网络和On Prem网络(你的数据库所在地(之间建立一个VPN,这样,你就没有白名单了,所有的通信都在同一个虚拟专用网络内

还有另一个选项,但有点棘手。您可以保留一个外部IP地址并配置一个外部HTTP(S(负载均衡器。

您需要执行以下几个步骤:

  1. 保留一个外部静态IP地址
  2. 创建Google管理的SSL证书或提供您的SSL证书
  3. 创建无服务器网络终结点组。负载平衡器将使用此无服务器NEG将请求定向到无服务器云运行服务重要:您的无服务器NEG和云运行服务必须位于同一区域
  4. 创建后端服务(例如,部署到Cloud Run的web应用程序(
  5. 将无服务器NEG作为后端添加到后端服务
  6. 创建URL映射以将请求路由到后端服务。如果您有多个后端服务,则可以使用主机规则根据主机名将请求定向到不同的服务,还可以设置路径匹配器根据请求路径将请求定向至不同的服务
  7. 创建HTTPS目标代理。此代理将传入请求路由到您的URL映射
  8. 创建全局转发规则,将所有HTTPS流量转发到HTTPS目标代理
  9. 将您的域连接到负载平衡器。添加一个或多个指向负载平衡器IP地址的A记录(并等待DNS传播(
  10. 使用Cloud Armor配置安全策略

多亏了Cloud Armor,您可以在网络边缘配置拒绝/允许规则(如IP白名单/黑名单(。

另请参阅codelab Cloud Armor NamedIP列表。

相关内容

  • 没有找到相关文章

最新更新