![](/img/trans.png)
[英]How do i connect nodejs app with mongodb in google cloud platform
[英]how to connect MongoDB Atlas to GCP(Google Cloud Platform)?
我嘗試將托管在谷歌雲平台(gcp)應用引擎上的應用連接到我的 Mongo Atlas DB。 Mongo 想讓我將 gcp 應用程序 ip 列入白名單。 但是 gcp 沒有 static IP 供我列入白名單。
我想確保我應用了安全最佳實踐,據我所知,將所有 ips 的數據庫列入白名單並不安全。 那么如何在不打開所有ip的情況下做到這一點呢?
您有 2 個解決方案
從這個示例中,我們看到 8.34.208.0/20 和 8.35.192.0/21 IP 范圍都可用於 App Engine 流量。 對任何額外網絡塊的其他查詢可能會返回額外的 IP 范圍。
請注意,使用 static IP 地址過濾不被認為是一種安全有效的保護手段。 例如,攻擊者可以設置一個惡意 App Engine 應用程序,該應用程序可以與您的應用程序共享相同的 IP 地址范圍。 相反,我們建議您使用 OAuth 和證書采取深度防御方法。
在創建 VM 時,您可以選擇保留 static IP。
在“創建實例”頁面上,滾動到“網絡”,您會看到 I. 內部 IP II 的選項。 外置 IP
如果您在 Atlas 上運行 M10-Cluster(或更高版本),則 VPC-Peering 是您通往 go 的方式。 我建議嘗試本教程。 他們正在解釋將哪些 CIDR 范圍(您稱為 IP)列入白名單。
這里需要注意的一件事是,他們使用的是 GCP Kubernetes 引擎。 使用 App Engine 需要付出一些額外的努力,因為它是 GCP“無服務器”解決方案之一,這就是為什么您不應該使用 static IP 或類似的東西的原因。 您需要通過連接器將您的應用程序連接到 VPC 網絡:
按照這些說明在與您的 GAE 應用程序相同的區域中創建一個連接器。 您可以使用 gcloud app describe 找出您的 GAE-App 的當前區域。 現在只需為連接器提供范圍10.8.0.0
(自動添加/28
)。 記住你給它起的名字。
根據您的環境,您的應用程序必須指向該連接器。 在 NodeJS 中,它是您的 app.yaml 文件,它看起來類似於以下內容:
runtime: nodejs10
vpc_access_connector:
name: projects/GCLOUD_PROJECT_ID/locations/REGION_WHERE_GAE_RUNS/connectors/NAME_YOU_ENTERED_IN_STEP_1
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.