Networking

是否可以從Google外部加入 VPC?

  • November 6, 2019

我在 GCP 中有一個反向代理實例,它有一個外部 ip,但在它後面有一堆沒有外部 ip 但在同一個 VPC 中的後端實例。這個想法是將攻擊面減少到只有反向代理;很標準的東西。

我遇到的問題是,通過 ssh 進入後端實例仍然很有用(用於故障排除或部署目的。我正在使用 ansible)。有什麼方法可以在我的本地開發機器上創建一個可以直接訪問非公共實例的網路介面(將來,CI 機器也需要訪問)?換句話說,ssh’ing 到內部 ip。我現在要做的是為所有實例分配外部臨時 IP,以便能夠直接使用 ansible 訪問它們,但就像我說的,為了更高級別的安全性,我只想將反向代理暴露給網際網路

我寧願避免創建一個跳轉點實例,因為創建 ssh 隧道以使 ansible 到達每個後端實例似乎是一團糟。通常,我想這聽起來像是 VPN 的工作,但我是 VPC 的新手,我不知道是否有另一種方法來處理一般 VPC 或特別是 GCP 中的這一要求。這個案例的標準做法是什麼?

有四種常用方法可以連接到只有私有 IP 地址的 Google Cloud Compute Engine 實例。這個列表從最簡單到更難。

方法一:使用Google云控制台

Google Cloud Console 支持 SSH 用於 Compute Engine 實例。轉到計算引擎。每個實例都有一個 SSH 按鈕。

文件

方法 2:使用 Google Cloud SDK CLI

gcloud compute ssh user@INSTANCE_NAME

注意:僅支持 Linux。不適用於 Windows。

文件

方法3:OpenVPN堡壘主機

在小型 Compute Engine 實例和桌面上的客戶端上安裝 OpenVPN。這是我的首選方法,因為我的工具可以輕鬆地與 VPC 聯網。OpenVPN 是免費的,但實例不是。除非我需要高性能網路,否則我會使用 f1-micro 實例。

Google市場 OpenVPN

方法四:SSH遠端埠轉發

您可以創建一個 SSH 隧道,然後該隧道可以連接到您的 VPC 中的任何實例。網上有很多例子。此方法還需要一個小型 Compute Engine 實例,但您可以鎖定此實例以僅接受來自您的網路(IP 或 CIDR 塊)的 SSH 流量。

方法 5:啟動 IAP 隧道(Identity Aware Proxy)

gcloud beta compute start-iap-tunnel <OPTIONS>

此方法使用方法#1 和#2 背後的技術。此方法使用由 Google Cloud 管理的計算實例創建隧道。此方法確實對頻寬有限制(未發布)。對於 SSH 流量,這很好。

文件

引用自:https://serverfault.com/questions/990747