我目前将我的数据库托管在 Google Cloud Platform VM 上,连接到它的无服务器 API 托管在 Vercel 上。
我已经设法在 GCP 防火墙中允许我的 IP,但是我在允许从 API 连接到数据库时遇到了困难。
GCP 防火墙不接受防火墙的任何非 IP 值,所以我不能简单地添加我的主机名。
我拥有 API 使用的域,但 IP 显然由 Vercel 控制。我尝试 ping 我的域以找出 Vercel 的 IP ( 76.76.21.21
) 并将其作为IP Range 76.76.21.21/32
添加到我的防火墙中,但我的 API 在尝试连接时仍然超时。
我已经允许来自 Postgres 的所有连接,所以我知道不可能这样。
关于如何允许我的 API 通过防火墙的任何想法?
我建议您启用几个小时的 VPC 和防火墙日志记录,以便从 Vercel API 确认 IP,然后您可以将其列入白名单,但是我发现 Vercel 部署使用动态 IP 地址,因为平台,所以,IP将一直在变化。
您必须允许 GCP 防火墙规则 0.0.0.0/0 中的开放范围通过您用于在 GCP 中查询数据库的 TCP/UDP 端口,并正确保护您的数据库,他们建议使用随机生成的密码,存储为一个环境变量,长度至少为 32 个字符,并定期轮换此密码。
请检查以下链接以获取更多参考。
[1]。https://vercel.com/knowledge/how-to-allowlist-deployment-ip-address [2]。https://cloud.google.com/vpc/docs/using-flow-logs#console [3]。https://cloud.google.com/vpc/docs/using-firewall-rules-logging#gcloud