examlab .net 用最有效率的方法,考取最有價值的證照
本篇導覽 約 19 分鐘

VPC 網路與防火牆:GCP 的數位高速公路

3,680 字 · 約 19 分鐘閱讀 ·

為 ACE 考試掌握 Google Cloud VPC 網路。了解子網路、防火牆規則、路由、對等互連 (Peering) 與共用 VPC (Shared VPC)。

立即做 20 題練習 → 免費 · 不用註冊 · ACE

理解 Google Cloud VPC 網路

虛擬私有雲 (Virtual Private Cloud, VPC) 是 Google Cloud 中定義網路連通性的基礎。它為你的虛擬機 (VM)、容器 (GKE) 和負載平衡器提供了一個邏輯隔離的私有網路環境。對於 Associate Cloud Engineer (ACE) 來說,網路通常是最抽象也最容易失分的部分。你需要理解 VPC 是全球資源 (Global Resource),而子網路 (Subnets) 是區域資源 (Regional Resource)。

GCP 的網路架構與傳統資料中心 (IDC) 或其他雲端平台(如 AWS)有很大不同,特別是它的全球化能力和彈性定義。

白話文解釋

1. 城市的交通網路 (交通號誌類比)

  • VPC (全球網路):整個國家的高速公路系統。
  • 子網路 (Subnets):城市裡的街道。每條街道都在特定的地區 (Region)。
  • 防火牆規則 (Firewall Rules):紅綠燈和交警。他們決定哪些車(流量)可以進入,哪些必須被攔下。
  • 路由 (Routes):導航系統。它告訴流量「要去 B 地,你必須經過 A 出口」。

2. 公司的辦公大樓 (辦公室類比)

  • VPC: 公司的整棟大樓。
  • 子網路: 大樓裡的辦公區(如 3 樓是研發部,4 樓是財務部)。
  • 網路標籤 (Network Tags): 員工身上的部門掛牌。交警(防火牆)可以說:「只允許掛著『研發』掛牌的人進入實驗室」。

3. 多功能瑞士軍刀 (瑞士刀類比)

  • VPC 對等互連 (VPC Peering): 兩把軍刀之間的連接器。讓兩個獨立的網路像是一個網路一樣互相通訊。
  • Cloud NAT: 軍刀裡的單向透鏡。讓內部的工具(私有 VM)可以看到外面,但外面的人看不到裡面。

建立 VPC 網路與子網路

全球 VPC 與區域子網路

VPC 是全球性的。這意味著一個 VPC 可以跨越多個區域 (Regions),而不需要透過複雜的 VPN 或連結。但是,子網路 (Subnet) 必須屬於特定的區域。 Source ↗

  • 預設 VPC (Default VPC): 每個專案都有一個,預裝了各區域的子網路和預設防火牆規則(建議在生產環境中刪除或自定義)。
  • 自動模式 VPC (Auto Mode VPC): 自動在每個區域建立子網路。
  • 自定義模式 VPC (Custom Mode VPC,推薦):手動定義子網路及其 IP 範圍 (CIDR),提供更好的安全性與管理性。

設定防火牆規則與網路標籤

防火牆規則基礎

防火牆規則決定了流量是否允許通過。

  • 方向 (Direction): 入站 (Ingress) 或 出站 (Egress)。
  • 動作 (Action): 允許 (Allow) 或 拒絕 (Deny)。
  • 優先級 (Priority): 0-65535,數字越小優先級越高。

網路標籤 (Network Tags)

網路標籤 (Network Tags) 是防火牆規則的最佳拍檔。你不必手動輸入每個 VM 的 IP 地址,只需將 'web-server' 標籤貼在 VM 上,並設定防火牆規則為 '允許流量進入標籤為 web-server 的 VM'。 Source ↗

  • 服務帳戶 (Service Accounts): 另一種更安全的方法是使用服務帳戶作為防火牆的來源或目標。

理解路由與對等互連

路由 (Routes)

路由告訴 VPC 如何處理目的地不在子網路範圍內的流量。

  • 預設路由 (Default Route): 0.0.0.0/0 指向網際網路閘道 (Internet Gateway)。
  • 自定義路由 (Custom Routes): 例如將流量導向 VPN 閘道或某個特定的 VM(如網路防火牆設備)。

VPC 網路對等互連 (VPC Network Peering)

VPC Peering 允許兩個不同專案(甚至不同組織)的 VPC 內部互通。流量保持在 Google 的私有骨幹網路上,不會經過公共網際網路。 Source ↗

  • 注意:IP 範圍不能重疊。Peering 不具備傳遞性 (Non-transitive),如果 A 與 B Peer,B 與 C Peer,A 不會自動與 C Peer。

共用 VPC:多專案網路管理

對於大型企業,管理數十個專案的網路非常困難。共用 VPC (Shared VPC) 解決了這個問題。

  • 宿主專案 (Host Project): 包含 VPC 和子網路的「主機」專案。由網路團隊管理。
  • 服務專案 (Service Projects): 連結到宿主專案的「服務」專案。開發團隊在這裡部署 VM,但使用的是宿主專案的網路。

共用 VPC 實現了管理與技術的分離。網路工程師控制網路(宿主),開發工程師使用資源(服務)。 Source ↗

生產環境在 ACE 考試裡的標準答案是 Custom Mode VPC(用 gcloud compute networks create my-vpc --subnet-mode=custom 建立)搭配 Shared VPC,由宿主專案 (Host Project) 持有子網路,服務專案 (Service Projects) 只負責部署資源。Auto Mode 只適合學習用,因為它會在每個 region 預先建立固定 /20 的子網路,很容易與後續的 VPC Peering 或地端 CIDR 重疊。 Source ↗

考試陷阱:VPC Network Peering 看起來像可以串成 mesh,但它沒有傳遞性 (non-transitive)──就算 VPC-A peer VPC-B、VPC-B peer VPC-C,VPC-A 仍然無法存取 VPC-C。而且只要 subnet CIDR 重疊就無法建立 peering,所以 10.0.0.0/8172.16.0.0/12192.168.0.0/16 的位址規劃必須在 peering 之前做好,VM 部署後沒辦法重新切 IP。 Source ↗

私有 Google 存取權與 Cloud NAT

私有 Google 存取權 (Private Google Access)

讓「只有內部 IP」的 VM 能夠存取 Google API(如 Cloud Storage 或 BigQuery)。

  • 必須在子網路層級啟用。

Cloud NAT (網路位址轉譯)

考試陷阱:如果你有一台 VM 為了安全沒有分配外部 IP (Public IP),但它需要下載軟體更新,你應該部署 Cloud NAT 而非分配外部 IP。 Source ↗

透過 gcloud CLI 管理網路

# 建立一個自定義 VPC
gcloud compute networks create my-vpc --subnet-mode=custom

# 建立子網路
gcloud compute networks subnets create my-subnet \
    --network=my-vpc \
    --region=us-central1 \
    --range=10.0.0.0/24

# 建立防火牆規則
gcloud compute firewall-rules create allow-http \
    --network=my-vpc \
    --allow=tcp:80 \
    --target-tags=web-server

建立 VPC 的指令是 gcloud compute networks create,生產環境一律加 --subnet-mode=custom。Auto Mode 雖然開箱即用,但它的 /20 預設子網路範圍會擋住未來的 VPC Peering 與 Cloud VPN/Interconnect 規劃。 Source ↗

VPC 服務控制 (VPC Service Controls, VPC SC)

這是一個高階安全功能,它在 Google Cloud 服務周圍建立了一個「安全邊界」,防止資料被意外洩漏到組織外部,即便使用者擁有正確的 IAM 權限。

VPC 網路最佳實踐

  1. 最小化外部 IP 的使用:優先使用堡壘機 (Bastion Host) 或 Identity-Aware Proxy (IAP) 來存取私有 VM。
  2. 優先選用自定義模式 VPC:避免預設子網路帶來的 IP 衝突。
  3. 利用優先級管理規則:例如建立一條優先級 65535 的「拒絕所有」規則,然後根據需要建立高優先級的「允許」規則。
  4. 監控流量日誌 (Flow Logs):開啟 VPC Flow Logs 以記錄所有的網路流量,用於審計和故障診斷。

ACE 考試的常見場景

  • 情境:你需要連接兩個位於不同專案中的 VPC。
    • 解決方案:使用 VPC 網路對等互連 (VPC Network Peering)
  • 情境:你需要讓私有 VM 存取網際網路,但不想讓網際網路存取 VM。
    • 解決方案:部署 Cloud NAT
  • 情境:你發現某台 VM 無法透過 SSH 連線。
    • 解決方案:檢查防火牆是否允許 Port 22,或檢查 VM 是否貼了正確的標籤 (Tag)。

常見問題 (FAQ)

Q1: VPC 是區域性的還是全球性的? 答:VPC 是全球性的,但其中的子網路 (Subnets) 是區域性的。

Q2: 什麼是預設網路 (Default Network)? 答:每個專案預設都有一個名為 default 的網路,它在每個區域都有一個子網路,並有一組寬鬆的防火牆規則。

Q3: VPC Peering 會收費嗎? 答:Peering 本身不收費,但跨區域的流量傳輸費(Egress)依然適用。

Q4: 什麼是 Cloud Router? 答:它主要用於與外部網路(如你的辦公室)透過動態路由 (BGP) 交換路由資訊,常用於 Cloud VPN 或 Dedicated Interconnect。

Q5: 可以在 VPC 內使用我自己的 IP 位址嗎? 答:可以,GCP 支援 Bring Your Own IP (BYOIP),但這通常適用於特定的合規場景。

ACE 總結清單

  • 區分 VPC (Global) 與 子網路 (Regional)。
  • 熟記防火牆規則的四大要素(方向、動作、標籤、優先級)。
  • 理解 VPC Peering (連接) 與 Shared VPC (集中管理) 的差異。
  • 知道私有 Google 存取權與 Cloud NAT 的使用時機。
  • 掌握 gcloud compute networks 指令族群。

官方資料來源

更多 ACE 主題