将 Node.js 应用程序(托管在 GAE 上)的 IP 列入白名单以访问 MongoDB Atlas(托管在 GCP 上)

2023-11-22

我希望我的后端服务器(Node.js,托管在 Google App Engine 上,灵活的环境,如果重要的话)能够从我的数据库(MongoDB,通过 Atlas,也托管在同一区域的 Google Cloud 平台上)获取和传递数据作为我的后端服务器)。理想情况下,我希望保留可以访问我的数据库的 IP 的严格白名单,但我不确定如何识别它们。

我的理解是谷歌将使用一系列IP。我也许可以通过不时查询谷歌来访问这些(Google App Engine - IP 地址列表?).

我还从 Google 找到了一个很好的教程,介绍如何将 App Engine 连接到 MongoDB Atlas,但他们方便地忽略了如何将正确的 IP 列入白名单(https://cloud.google.com/community/tutorials/mongodb-atlas-appengineflex-nodejs-app).

我还从 Atlas 中找到了一些关于在 GCP 中使用网络对等互连的注释(我符合资格吗?请参阅链接:https://docs.atlas.mongodb.com/security-vpc-peering/)但有重大限制,包括不允许使用其他 IP?我很难理解他们的文档。

关键问题:有没有比上面第一个链接更简单的方法?或者我是否经常查询并手动更改它?


如果您在 Atlas 上运行 M10-Cluster(或更高版本),VPC-Peering 是您的最佳选择。正如您所说,您很难阅读文档。我建议尝试本教程。他们正在解释将哪些 CIDR 范围(您所说的 IP)列入白名单。

这里需要注意的一件事是,他们使用的是 GCP Kubernetes Engine。使用App Engine需要一些额外的努力,因为它是GCP“无服务器”解决方案之一,这就是为什么您不应该使用静态IP或类似的东西的原因。您需要通过连接器将您的应用程序连接到 VPC 网络:

  1. 在与您的 GAE-App 相同的区域中创建一个连接器,如下这些说明。您可以使用以下命令找到您的 GAE 应用程序的当前区域:gcloud app describe。只需给连接器范围10.8.0.0目前 (/28会自动添加)。记住你给它起的名字。

  2. 您的 app.yaml 必须像这样指向该连接器

runtime: nodejs10

vpc_access_connector:
  name: projects/GCLOUD_PROJECT_ID/locations/REGION_WHERE_GAE_RUNS/connectors/NAME_YOU_ENTERED_IN_STEP_1
  1. 转到您的 Atlas 项目,导航至网络接入并将您在步骤 1 中为连接器设置的 CIDR 范围列入白名单

  2. 您可能还需要将步骤 1 中的 VPC 网络的 CIDR 范围列入白名单。您可以在 GCP 中导航至VPC-网络 -> 防火墙

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将 Node.js 应用程序(托管在 GAE 上)的 IP 列入白名单以访问 MongoDB Atlas(托管在 GCP 上) 的相关文章

随机推荐