【问题标题】:Is possible to secure communication between Google App Engine and Google Compute Engine?是否可以保护 Google App Engine 和 Google Compute Engine 之间的通信?
【发布时间】:2020-08-07 20:02:15
【问题描述】:

我在 Google App Engine 上部署了一个带有 nodejs 的应用,在 Compute Engine 上部署了 mongodb。 如果没有安全规则,GAE 可以成功连接到 mongodb,但是当我设置允许从 App Engine 服务帐户访问 VM 的端口 27017 的安全规则时,我收到超时请求,因此无法访问 mongodb。

由于无法为 GAE 设置静态 ip,是否有另一种解决方案来保护 Compute Engine 上的 mongodb?

【问题讨论】:

    标签: mongodb google-app-engine google-cloud-platform google-compute-engine


    【解决方案1】:

    检查防火墙允许规则和拒绝规则的优先级。较低的数字具有较高的优先级。确保允许防火墙规则的优先级高于其他可能拒绝流量的规则。

    【讨论】:

      【解决方案2】:

      是的,目前您无法在 GAE 应用程序上设置静态外部 IP。

      GAE Flex 有一个可能的解决方法来解决您的问题

      1. reserve 外部静态 IP
      2. create f1-micro 具有保留外部 IP 地址的 VM 实例(这可能适合 Compute Engine free tier
      3. create 允许从保留的外部 IP 连接到 MongoDB 服务器的防火墙规则
      4. 通过运行 ssh 客户端创建 SOCKS 代理,该客户端通过创建的 VM 路由流量,类似于 example
      5. 配置 nodejs 应用程序以使用 SOCKS 代理
      6. 连接MongoDB服务器

      更新

      此外,如果您的应用程序可以通过 HTTP 代理运行,您可以在此 VM 上安装 Squid 代理而不是 SOCKS 代理。

      【讨论】:

      • 感谢 Serhii 为我指明了正确的方向。实际上对我来说是不可能使用无服务器 vpc 访问的,因为它只能部署在受支持区域的子集上。对于 App Engine Flex,无需按照此处所述配置无服务器 vpc (cloud.google.com/vpc/docs/configure-serverless-vpc-access)“注意:如果您想在从 App Engine 柔性环境连接时使用内部 IP 地址,则无需配置无服务器 VPC访问。只需确保您的 App Engine 柔性环境虚拟机位于同一个 VPC 网络中..."。
      • 更新你对 flex 的回答,测试后我会接受你的回答
      • 谢谢!我已经更新了我的答案。请尝试按照我的指示进行操作。
      • 你的答案还是错的。对于标准,您可以使用 vpc serverless,但对于 flex,不需要解决方法,因为它们位于同一网络中并且可以使用内部 ip
      • 两天前,我从我的回答中删除了对 GAE 标准和 VPC 无服务器的任何提及。作为 GAE Flex 的解决方案,我建议使用一些单独的 VM 作为代理,并提供分步说明。可能你还看到这个页面的一些缓存版本,here你可以截图我的答案。
      猜你喜欢
      • 2018-04-28
      • 2021-12-22
      • 2017-03-02
      • 2018-02-14
      • 2013-10-09
      • 2015-01-16
      • 2019-01-17
      • 2015-02-19
      • 2018-10-07
      相关资源
      最近更新 更多