服務上雲後有時會需要固定一組IP主動對外發出連線,這時要考慮安全性與獨立性的問題,在爬文後發現了GCP推出的Cloud NAT,本篇文章簡單介紹一下這個工具的使用。
什麼是Cloud NAT
GCP Cloud NAT是GCP上的一種服務,它提供了一個管理和部署Google Cloud上的NAT(Network Address Translation)的解決方案。 GCP Cloud NAT能夠讓使用者在不公開VM或GKE的外網IP情況下,透過共用一組IP對外溝通,外部服務無法直接存取Cloud NAT 閘道後的任何資源,確保了服務的安全性。
什麼時候使用Cloud NAT
在需要使用私有IP地址與外網連接時,可以使用Cloud NAT。 例如:在Pod訪問外網時需要固定Public IP的情境下會使用到。
如何使用Cloud NAT
準備環境
- 設定gcloud至正確專案
gcloud config set project <PROJECT_ID>
2. 建立VPC網路與子網路
3. 建立一台無外網的vm,region選asia-east1 ,zone選asia-east1-b,網路選剛剛建立的nat-network,子網選nat-subnet-192
4. 建立防火牆並允許35.235.240.0/20網段,允許tcp 22 port,目標為無外網的vm
5. 到IAP頁面並選擇SSH和TCP資源設定權限
6. 到剛剛建立的vm curl httpbin.org/ip,此時應該是無法連線到外部
設定NAT
- 到Cloud NAT建立NAT gateway,並選擇稍早創建的VPC以及創建Router
2. 這時候在curl一次就會有一組對外ip了,此ip即為nat自動幫我們創建的外部ip
有了 Cloud NAT ,可以在不使用外部ip的情況下,與外網連線且同時阻擋了由外部的存取,增加了不少安全性,降低主機被攻擊的風險。
Reference