在 Google Cloud Platform (簡稱 GCP) 的世界中,Virtual Private Cloud(簡稱 VPC)為使用者提供了全球性、可擴展且靈活的虛擬私有網絡,在 GCP 中是一項非常重要的基礎服務,它能夠讓使用者部署像是 Google Compute Engine、Google Kubernetes Engine 和 Google App Engine 等 GCP 服務到雲端。提醒您,越複雜的架構到後期更會無法輕易地去進行變動,因此會建議使用者應在一開始時就對 VPC Network 的設計進行規劃。本篇文章我們將會實作 Custom VPC Network 與 Firewall 建立。
在 Google Cloud 中使用安全性較高的 VPC
雖然在 GCP 中已經有預設的 VPC 與 Firewalls 可以用來進行資源的部署,但其實這不是最正確的做法。我們會建議您使用 Custom 模式的 VPC Network,特別是在正式環境之中。此外,根據 GCP 官方給出的 Best Practices,當您建立了自己的網路後,也應該刪除 GCP 預設的網路。在以下的情況中您可以考慮使用 Custom VPC [1]:
- 不需要每個 Region 中都有一個自動創建的子網段 (Subnet)。
- 避免因為衝突而干擾到您整體的網絡規劃 (像是新 Region 推出時其自動創建的新網段與既有的網段 IP 有重疊)。
- 需要完全控制在 VPC Network 中所創建的子網段,包括其區域與 IP 範圍。
- 未來有計劃要使用 VPC Network Peering 或 Cloud VPN 等服務來連接不同的 VPC 網絡。(Auto 模式下的 VPC Network 其子網段具有相同的 IP 地址,會產生衝突)。
- 您需要擁有 IPv6 範圍的子網段。
VPC 基礎操作
接下來將開始一個涵蓋了 Custom VPC Network 與 Firewall 建立的範例。在開始前有一點需要向您提醒,如果您使用非 Free Tier 的 GCP 帳號做測試,以 1 個小時的時間來計算大約需要花費 USD 1.04,主要的費用由 Compute Engine 的機器類型、使用資源 (CPU、Memory) 所產生,詳情還請參考 GCP Pricing Calculator [2]。
一、GCP 上操作所需的 IAM 權限
使用者需要先在專案層級 (Project Level) 中的 IAM 內擁有 2 個由 GCP 所事先定義好的 Predefined Role:
- 「Compute Network Admin」 [3] 這個 Role 能授予使用者具備建立、修改和刪除網絡相關資源的權限,但只能讓您對 Firewalls 進行讀取,並不包含其餘的操作,因此還需與下述第 2 個 Role 搭配使用。
- 「Compute Security Admin」 [4] 這個 Role 能夠讓使用者擁有對 Firewalls 進行操作的所有權限 (像是建立、修改和刪除)。
二、實作步驟
2-1 建立 Custom 模式的 VPC Network
當您進入到 VPC networks 的頁面後應該可以發現 GCP 已經幫您自動建立了一個模式為 Auto 的網路,但我們將嘗試手動後續範例所需要的 Custom VPC。
- 首先您需要進入 VPC 的 Console,並點擊上方「CREATE VPC NETWORK」的按鈕來開始建立 Custom VPC [5]。