虛擬私有雲防火牆規則

虛擬私有雲 (VPC) 防火牆規則適用於特定專案和網路。如要將防火牆規則套用至機構中的多個虛擬私有雲網路,請參閱「防火牆政策」。本頁其餘內容僅涵蓋虛擬私有雲防火牆規則。

虛擬私有雲防火牆規則可讓您在虛擬私有雲網路中,允許或拒絕虛擬機器 (VM) 執行個體的往來連線。系統一律會強制執行已啟用的虛擬私有雲防火牆規則,保護採用各種設定和作業系統的執行個體,即便執行個體未啟動亦然。

每個虛擬私人雲端網路皆會以分散式防火牆的形式運作。雖然防火牆規則是在網路層級定義,但是否允許連線則取決於每個執行個體本身。您可以想像成虛擬私有雲防火牆規則不僅存在於執行個體與其他網路之間,也存在於相同網路的個別執行個體之間。

如要進一步瞭解防火牆,請參閱「防火牆 (運算)」。

防火牆規則最佳做法

設計及評估防火牆規則時,請牢記下列最佳做法:

防火牆規則 Google Cloud

建立虛擬私有雲防火牆規則時,您必須指定虛擬私有雲網路,以及一組用來定義規則作用的組成部分。這些組成部分可讓您根據流量的通訊協定、目的地通訊埠、來源和目的地指定特定類型的流量。詳情請參閱防火牆規則元件

您可以使用Google Cloud consoleGoogle Cloud CLIREST API 建立或修改 VPC 防火牆規則。建立或修改防火牆規則時,可以使用規則的目標參數,指定要套用規則的執行個體。如需防火牆規則範例,請參閱「其他設定範例」。

除了您建立的防火牆規則外, Google Cloud 還有其他可影響傳入 (連入) 或傳出 (連出) 連線的規則:

  • Google Cloud 封鎖或限制特定流量。詳情請參閱「遭到封鎖和受限的流量」。

  • Google Cloud 一律允許 VM 執行個體在 169.254.169.254 與其對應中繼資料伺服器進行通訊。詳情請參閱一律允許的流量

  • 系統會根據防火牆規則評估程序,評估虛擬私有雲防火牆規則和防火牆政策中的規則。最後,如果沒有明確的動作套用至流量,Cloud NGFW 會強制執行隱含動作。

  • 預設網路會預先填入防火牆規則,您可以刪除或修改這些規則。

規格

虛擬私有雲防火牆規則具有下列特性:

  • 每項防火牆規則都會分別套用到傳入 (ingress) 或傳出 (egress) 連線。詳情請參閱連線方向

  • 防火牆規則支援 IPv4 連線。虛擬私有雲網路啟用 IPv6 後,也支援 IPv6 連線。透過位址指定輸入或輸出規則的來源或目的地時,您可以使用以 CIDR 標記法表示的 IPv4 或 IPv6 位址或區塊。

  • 每項防火牆規則可包含 IPv4 或 IPv6 範圍,但不能同時包含兩者。

  • 每項防火牆規則的動作為 allowdeny。 規則在強制執行的情況下會套用到連線,但如果您有特殊需求 (例如排解問題),則可停用規則。

  • 建立防火牆規則時,您必須選取虛擬私有雲網路。 規則在執行個體層級強制執行時,其設定會與虛擬私有雲網路建立關聯。這表示您無法讓各個虛擬私有雲端網路共用防火牆規則,包括透過虛擬私有雲端網路對等互連Cloud VPN 通道連線的網路。

  • 虛擬私有雲防火牆規則具有狀態

    • 如果防火牆允許連線雙向傳輸,系統也會允許符合該連線的傳回流量。您無法設定防火牆規則來拒絕相關聯的回應流量。
    • 回程流量必須符合已接受要求流量的 5 元組 (來源 IP、目的地 IP、來源通訊埠、目的地通訊埠、通訊協定),但來源和目的地位址與通訊埠必須相反。
    • Google Cloud 會使用連線追蹤表,將傳入封包與對應的傳出封包建立關聯。IPv4 連線支援 TCP、UDP、SCTP 和 ICMP 通訊協定。IPv6 連線支援 TCP、UDP、SCTP 和 ICMPv6 通訊協定。
    • Google Cloud 實作連線追蹤,無論通訊協定是否支援連線。如果來源與目標之間允許連線 (適用於輸入規則),或目標與目的地之間允許連線 (適用於輸出規則),只要防火牆的連線追蹤狀態有效,系統就會允許所有回應流量。如果每 10 分鐘至少傳送一個封包,防火牆規則的追蹤狀態就會視為有效。
    • 如果防火牆允許片段化連線,Google Cloud 會使用連線追蹤功能,只允許傳回流量的第一個片段。如要允許後續傳回片段,請務必新增防火牆規則。
    • 系統允許防火牆傳送 ICMP 回應流量,例如「ICMP TYPE 3, DESTINATION UNREACHABLE」,這是針對允許的 TCP/UDP 連線所產生。這項行為符合 RFC 792 規定。
  • 虛擬私有雲防火牆規則不會重組以片段構成的 TCP 封包。因此,適用於 TCP 通訊協定的防火牆規則只會套用到第一個片段,因為該片段包含 TCP 標頭。而適用於 TCP 通訊協定的防火牆規則並不會套用到後續的 TCP 片段。

  • 在防火牆規則表中,追蹤連線數的上限取決於執行個體機器類型支援的有狀態連線數。如果超過追蹤連線數上限,系統會停止追蹤閒置間隔最長的連線,以便追蹤新連線。

    執行個體機型 有狀態連線數上限
    共用核心機器類型 130,000 個
    1 到 8 個 vCPU 的執行個體 每個 vCPU 130,000 個連線
    超過 8 個 vCPU 的執行個體 總共 1,040,000 (130,000×8) 個連線

隱含動作

如果沒有任何虛擬私有雲防火牆規則適用於目標,防火牆規則評估程序可能會進入最後一個步驟。在這個步驟中,Cloud NGFW 會使用隱含動作。隱含動作取決於流量方向和目標資源類型。

詳情請參閱防火牆規則評估程序

預設網路中預先填入的規則

預設網路會預先填入防火牆規則,允許向執行個體傳入連線。這些規則可視情況加以刪除或修改:

規則名稱 方向 優先順序 來源範圍 動作 通訊協定和通訊埠 說明
default-allow-internal ingress 65534 10.128.0.0/9 allow tcp:0-65535
udp:0-65535
icmp
允許 VM 執行個體接受相同虛擬私有雲網路中其他執行個體的傳入連線。
default-allow-ssh ingress 65534 0.0.0.0/0 allow tcp:22 可讓您透過 sshscpsftp 等工具連線至執行個體。
default-allow-rdp ingress 65534 0.0.0.0/0 allow tcp:3389 讓您使用 Microsoft 遠端桌面通訊協定 (RDP) 連線至執行個體。
default-allow-icmp ingress 65534 0.0.0.0/0 allow icmp 可讓您使用 ping 等工具。

您可以為預設網路以外的網路建立類似的防火牆規則。詳情請參閱「設定常見用途的防火牆規則」。

遭到封鎖和受限的流量

與虛擬私有雲防火牆規則和階層式防火牆政策不同, Google Cloud 會封鎖或限制特定流量,如下表所述。

流量類型 詳細資料
封包速率和頻寬

適用於:

  • 所有輸出封包
  • 所有輸入封包
Google Cloud 帳戶會針對每個網路介面 (NIC) 或 IP 位址,計算每個 VM 執行個體的頻寬。虛擬機器的機器類型會定義其最大可能輸出速率,但只有在特定情況下,才能達到該最大可能輸出速率。

詳情請參閱 Compute Engine 說明文件中的「網路頻寬」。
DHCP 供應和確認

適用於:

  • 傳入 UDP 通訊埠 68 的封包 (DHCPv4)
  • 傳入 UDP 通訊埠 546 (DHCPv6) 的封包
Google Cloud 封鎖來自所有來源的 DHCP 傳入提供和確認訊息,中繼資料伺服器傳來的 DHCP 封包除外。
外部 IP 位址支援的通訊協定 Google Cloud

適用於:

  • 傳送至外部 IP 位址的 Ingress 封包

外部 IPv4 和 IPv6 位址只接受 TCP、UDP、ICMP、IPIP、AH、ESP、SCTP 和 GRE 封包。使用外部 IP 位址的資源會受到額外的通訊協定限制:

SMTP (通訊埠 25) 流量

適用於:

  • 傳送至 TCP 通訊埠 25 外部 IP 位址的輸出封包

為協助防範垃圾內容, Google Cloud 預設會封鎖傳送至外部 IP 位址 (包括其他 Google Cloud 資源的外部 IP 位址) TCP 目的地通訊埠 25 的輸出封包。 Google Cloud 如果系統判定專案透過未加密連線傳送大量電子郵件的風險不高,就會自動移除這項封鎖措施。 Google Cloud 透過通訊埠 465 或 587 上的 TLS 傳送的 SMTP 流量不受這項封鎖措施影響。如要瞭解專案是否允許這類流量,請前往 Google Cloud 控制台的「 虛擬私有雲網路」頁面或「 防火牆政策」頁面。兩個頁面都會顯示橫幅訊息,指出專案是否允許這類流量。詳情請洽詢Google Cloud 銷售專家

這個封鎖功能不適用於傳送至內部 IP 位址 (包括虛擬私有雲網路或地端部署網路中私用公開 IP 位址) 的 TCP 目的地連接埠 25 的輸出封包。

如果專案允許透過通訊埠 25 外送外部 SMTP,且您想傳送這類流量,則必須符合下列額外條件:

  • 虛擬私有雲網路中的輸出防火牆規則,以及適用於虛擬私有雲網路的階層式防火牆政策,必須允許 TCP 通訊埠 25 上的外部 IP 位址輸出。默示允許輸出規則符合這項規定,因為這些規則允許輸出至任何 IP 位址 (以及來自任何 IP 位址的已建立輸入回應)。
  • 目的地的適用路徑必須使用預設網際網路閘道下一個躍點。系統產生的預設路徑符合這項規定。
  • 將封包傳送至外部 IP 位址的執行個體必須符合網際網路存取需求條件

您可以建立拒絕輸出的虛擬私有雲防火牆規則或階層式防火牆政策,防止外部 SMTP 輸出。

一律允許的流量

對於 VM 執行個體,虛擬私有雲防火牆規則和階層式防火牆政策不適用於下列項目:

  • 傳送至中繼資料伺服器和從中繼資料伺服器接收的封包 Google Cloud
  • 傳送至指派給執行個體其中一個網路介面 (NIC) 的 IP 位址,封包會留在 VM 本身。指派給執行個體 NIC 的 IP 位址包括:

    • 網路介面的主要內部 IPv4 位址
    • NIC 別名 IP 範圍中的任何內部 IPv4 位址
    • 如果子網路上已設定 IPv6,則指派給 NIC 的任何 IPv6 位址
    • 與轉送規則相關聯的內部或外部 IPv4 位址 (適用於負載平衡或通訊協定轉送),前提是執行個體是負載平衡器的後端,或是通訊協定轉送的目標執行個體
    • 迴路位址
    • 在執行個體本身執行的網路疊加軟體中設定的位址

Google Cloud 中繼資料伺服器

Google Cloud 在執行各個執行個體時,一併執行一個本機中繼資料伺服器。伺服器可透過 169.254.169.254 (適用於 IPv4) 和 fd20:ce::254 (適用於 IPv6) 存取。這個伺服器對於執行個體的運作很重要,因此無論您設定了什麼防火牆規則,執行個體都可存取這個伺服器。中繼資料伺服器可為執行個體提供下列基本服務:

產品互動

以下各節說明防火牆規則和階層式防火牆政策如何與其他 Google Cloud 產品互動。

防火牆規則和直通負載平衡器

虛擬私有雲防火牆規則和階層式防火牆政策會控管哪些轉送規則支援的通訊協定和通訊埠,可存取直通負載平衡器的後端。詳情請參閱:

防火牆規則和 Proxy 負載平衡器

如果是外部應用程式負載平衡器、內部應用程式負載平衡器、內部 Proxy 網路負載平衡器和外部 Proxy 網路負載平衡器,VPC 防火牆規則和階層式防火牆政策不會控管 Proxy 負載平衡器的轉送規則 IP 位址接受哪些通訊協定和連接埠。只有轉送規則會決定 Proxy 負載平衡器接受的通訊協定和通訊埠。

虛擬私有雲防火牆規則和階層式防火牆政策會控管這些 Proxy 負載平衡器與後端的通訊方式。詳情請參閱:

防火牆規則和 Cloud VPN

防火牆規則和階層式防火牆政策不會控管 Cloud VPN 閘道接受的通訊協定和通訊埠。

Cloud VPN 閘道只會接受 Cloud VPN 規格中說明的通訊協定和連接埠封包。

防火牆規則和 GKE

在叢集或叢集中的資源 (包括服務和 Ingress) 建立時,Google Kubernetes Engine 會自動建立及管理防火牆規則。詳情請參閱 Google Kubernetes Engine 說明文件中的「自動建立的防火牆規則」一文。

防火牆規則和 AI 超級電腦

在 AI Hypercomputer 中建立 VM 時,您需要建立虛擬私有雲網路,此時可以一併建立虛擬私有雲防火牆規則。使用防火牆規則,指定虛擬私有雲網路允許的通訊協定和通訊埠。 詳情請參閱 AI 超級電腦總覽

防火牆規則組成部分

每個防火牆規則均由下列設定部分組成:

  • 從目標角度來看的方向。 方向可以是進入或外出。

  • 優先順序編號:用於決定是否套用規則。系統僅會套用優先順序最高 (優先順序編號最小) 且其他部分符合流量的規則,優先順序較低且有所衝突的規則會遭到忽略。

  • 相符時執行的動作allowdeny,可決定規則是否允許或封鎖連線。

  • 防火牆規則的強制執行狀態:您可以啟用及停用防火牆規則,而不需要將其刪除。

  • 目標:定義要套用規則的執行個體 (包括 GKE 叢集與 App Engine 彈性環境執行個體)。

  • 封包特徵的來源或目的地篩選器。

  • 通訊協定 (例如 TCP、UDP 或 ICMP) 和目的地通訊埠。

  • 布林值 logs 選項,可將符合規則的連線記錄到 Cloud Logging。

組成部分摘要

輸入 (傳入) 規則
優先順序 動作 強制執行 目標參數 來源和目的地篩選器 通訊協定和通訊埠
065535 之間的整數 (包含首尾);預設值為 1000 allowdeny enabled (預設) 或 disabled 指定接收封包的執行個體。

輸入規則的來源

輸入規則的目的地

指定通訊協定,或是通訊協定和目的地通訊埠。

如未設定,規則會套用到所有通訊協定和目的地通訊埠。詳情請參閱「通訊協定和通訊埠」。

輸出 (傳出) 規則
優先順序 動作 強制執行 目標參數 來源和目的地篩選器 通訊協定和通訊埠
065535 之間的整數 (包含首尾);預設值為 1000 allowdeny enabled (預設) 或 disabled 指定傳送封包的執行個體。

輸出規則的來源

輸出規則的目的地

指定通訊協定,或是通訊協定和目的地通訊埠。

如未設定,規則會套用到所有通訊協定和目的地通訊埠。詳情請參閱「通訊協定和通訊埠」。

流量方向

您可以建立套用至輸入或輸出流量的防火牆規則。單一規則無法同時套用至輸入和輸出流量。不過,您可以建立多項規則,定義要透過防火牆允許或拒絕的輸入和輸出流量。

  • 傳入 (傳入) 描述進入目標網路介面的封包。

  • 輸出 (傳出) 流量是指離開目標網路介面的封包。

  • 如果您未指定方向, Google Cloud 會使用 Ingress。

優先順序

防火牆規則的優先順序是 065535 之間的整數 (包含首尾)。整數值越小代表優先順序越高。如果建立規則時未指定優先順序,則系統會將優先順序指派為 1000

系統評估多個防火牆規則時,會依據規則的相對優先順序判斷規則的適用性。評估邏輯如下:

  • 如果規則的優先順序最高且適用於指定流量類型的目標,則系統會以該規則為優先。目標的明確程度並不會影響規則的適用性。舉例來說,如果有個 ingress 規則的優先順序較高,且允許所有目標接收特定目的地通訊埠與通訊協定的傳入流量,則該規則會覆寫具有類似定義,且允許特定目標接收相同目的地通訊埠與通訊協定傳入流量的規則。

  • 系統會優先評估適用於指定通訊協定與目的地通訊埠定義的最高優先順序規則,即使通訊協定與目的地通訊埠的定義較為籠統也是如此。舉例來說,如果有個 ingress 規則的優先順序較高,且允許指定目標接收所有通訊協定與目的地通訊埠的傳入流量,則該規則會覆寫優先順序較低,且拒絕相同目標接收 TCP 22 流量的 ingress 規則。

  • 只有在兩個規則的優先順序相同時,動作為 deny 的規則才會覆寫動作為 allow 的規則。使用相對優先順序可以建構覆寫 deny 規則的 allow 規則,以及覆寫 allow 規則的 deny 規則。

  • 優先順序和動作都相同的規則會產生相同的結果。 不過,評估時使用的規則並不明確。一般來說,除非您啟用了防火牆規則記錄,否則使用哪個規則並不重要。如果您想讓記錄以一致明確的順序顯示接受評估的防火牆規則,請為規則指派不重複的優先順序。

請設想下列具有兩個防火牆規則的範例:

  • ingress 規則,來源為 0.0.0.0/0 (任何 IPv4 位址),適用於所有目標、所有通訊協定及所有目的地通訊埠,動作為 deny 且優先順序為 1000

  • 輸入規則,來源為 0.0.0.0/0 (任何 IPv4 位址),適用於帶有 webserver 網路標記的特定目標,可規範 TCP 80 上的流量,動作為 allow

第二個規則的優先順序可決定是否針對 webserver 目標允許通訊埠 80 的 TCP 流量:

  • 如果第二個規則設定的優先順序編號「大於」1000,優先順序就會「較低」,因此系統會套用拒絕所有流量的第一個規則。

  • 如果第二個規則設定的優先順序為 1000,兩個規則的優先順序相同,因此會套用拒絕所有流量的第一個規則。

  • 如果第二個規則設定的優先順序編號「小於」1000,優先順序就會「較高」,因此會針對 webserver 目標允許 TCP 80 上的流量。如果沒有其他規則,第一個規則仍會拒絕流向 webserver 目標的其他類型的流量,也會拒絕向「沒有」webserver 網路標記的執行個體傳送的所有流量,包含 TCP 80 上的流量。

以上範例示範如何使用優先順序建立選擇性的 allow 規則與全域 deny 規則,以實施所涉權限最低的安全性最佳做法。

相符時執行的動作

防火牆規則的動作部分可根據規則的其他部分決定允許或封鎖流量:

  • allow 動作會允許符合其他指定部分的連線。

  • deny 動作會封鎖符合其他指定部分的連線。

強制執行

您可以將防火牆規則的狀態設為 enableddisabled,藉此選擇是否「執行」防火牆規則。您可以在建立規則更新規則時設定強制執行狀態。

如果您在建立新的防火牆規則時未設定強制執行狀態,系統會自動將防火牆規則設為 enabled

用途

停用和啟用功能有助於進行疑難排解和維護作業。在下列情況中,請考慮變更防火牆規則的強制執行方式:

  • 疑難排解:搭配防火牆規則記錄,您可以暫時停用防火牆規則,判斷規則是否會封鎖或允許流量。如果多個防火牆規則適用於相同流量,這項功能就非常實用。停用及啟用規則比刪除及重新建立規則更有用,因為規則的其他元件都不會遺失。

  • 維護作業:停用防火牆規則可簡化定期維護作業。舉例來說,您可能會選擇啟用輸入防火牆規則,只在需要使用 SSH 執行維護作業時,才允許 SSH 存取。當您不需要執行維護作業時,可以停用該規則。

對現有流量的影響

變更防火牆規則的強制執行狀態、建立新的 enforced 規則,或修改防火牆規則來拒絕先前允許的流量時,Cloud NGFW 只會對新連線強制執行這項變更。現有連線會持續存在,相關聯的流量也不會受到影響。

通訊協定和通訊埠

您可以指定通訊協定,或同時指定通訊協定與目的地通訊埠,來縮小防火牆規則的範圍。您可以指定通訊協定,或通訊協定及其目的地通訊埠的組合。如果您同時省略通訊協定與通訊埠,防火牆規則適用於任何通訊協定與任何目的地通訊埠的所有流量。系統不支援以來源連接埠為依據的規則。

但並非所有通訊協定都支援通訊埠。例如,TCP 與 UDP 之下都有通訊埠,但 ICMP 並沒有。ICMP 之下有不同的「ICMP 類型」,但並非通訊埠,且無法在防火牆規則中指定。

您可以在防火牆規則中使用下列通訊協定名稱:tcpudpicmp (適用於 IPv4 ICMP)、espahsctpipip。對於所有其他通訊協定,都必須使用 IANA 通訊協定號碼

許多通訊協定在 IPv4 和 IPv6 中使用相同的名稱和編號,但有些通訊協定 (例如 ICMP) 並非如此。

防火牆規則不支援 IPv6 Hop-by-Hop 通訊協定。

下表大致列出了 Google Cloud 防火牆規則的有效通訊協定與目的地通訊埠規格組合。

規格 範例 說明
沒有通訊協定與通訊埠 如果您未指定通訊協定,防火牆規則會套用至所有通訊協定及其適用的目的地通訊埠。
通訊協定 tcp 如果您指定不含任何通訊埠資訊的通訊協定,防火牆規則會套用至該通訊協定及其所有適用的通訊埠。
通訊協定與單一通訊埠 tcp:80 如果您指定通訊協定與單一目標通訊埠,防火牆規則會套用至該通訊協定的目標通訊埠。
通訊協定與通訊埠範圍 tcp:20-22 如果您指定通訊協定與通訊埠範圍,防火牆規則會套用至該通訊協定的目標通訊埠範圍。
組合 icmp,tcp:80
tcp:443
udp:67-69
您可以指定各種通訊協定和目的地通訊埠的組合,防火牆規則會套用至這些組合。詳情請參閱「建立防火牆規則」。

目標、來源、目的地

目標會識別防火牆規則適用的執行個體網路介面。

您可以指定來源和目的地參數,套用至輸入和輸出防火牆規則的封包來源或目的地。防火牆規則的方向會決定來源和目的地參數的可能值。

目標參數

目標參數會識別 Compute Engine 執行個體的網路介面,包括 GKE 節點和 App Engine 彈性環境執行個體。

您可以為輸入或輸出規則定義下列目標。目標、來源和目的地參數的運作方式,請參閱「來源、目的地、目標」一文。

  • 預設目標:虛擬私有雲網路中的所有執行個體。如果省略目標規格,防火牆規則會套用至虛擬私有雲網路中的所有執行個體。

  • 以目標網路標記識別的執行個體。如果執行個體具有網路標記,且該標記與防火牆規則的至少一個目標網路標記相符,防火牆規則只會套用到防火牆規則 VPC 網路中的執行個體。如要瞭解每項防火牆規則可指定的目標網路標記數量上限,請參閱每項防火牆規則的限制

  • 以服務帳戶識別的執行個體:如果執行個體使用的服務帳戶符合至少一個防火牆規則的目標服務帳戶,防火牆規則只會套用至防火牆規則 VPC 網路中的執行個體 (具有網路介面)。如要瞭解每個防火牆規則可指定的目標服務帳戶數量上限,請參閱每個防火牆規則的限制

如要瞭解目標網路標記和目標服務帳戶的優點與限制,請參閱依服務帳戶篩選與依網路標記篩選的比較

輸入規則的目標和 IP 位址

系統會根據下列條件,處理轉送至目標 VM 網路介面的封包:

  • 如果輸入防火牆規則包含目的地 IP 位址範圍,封包目的地必須符合其中一個明確定義的目的地 IP 位址範圍。

  • 如果輸入防火牆規則未包含目的地 IP 位址範圍,封包目的地必須符合下列其中一個 IP 位址:

    • 指派給執行個體 NIC 的主要內部 IPv4 位址。

    • 執行個體 NIC 上設定的任何別名 IP 範圍

    • 與執行個體 NIC 相關聯的外部 IPv4 位址。

    • 如果子網路上已設定 IPv6,則為指派給 NIC 的任何 IPv6 位址。

    • 與轉送規則相關聯的內部或外部 IP 位址,用於直通式負載平衡,其中執行個體是內部直通式網路負載平衡器或外部直通式網路負載平衡器的後端。

    • 與用於通訊協定轉送的轉送規則相關聯的內部或外部 IP 位址,其中執行個體是由目標執行個體參照。

    • 使用執行個體做為下一個躍點 VM 的自訂靜態路徑目的地範圍內的 IP 位址 (next-hop-instancenext-hop-address)。

    • 如果 VM 是使用內部直通式網路負載平衡器 (next-hop-ilb) 下一個躍點的自訂靜態路徑後端,則為該路徑目的地範圍內的 IP 位址。

輸出規則的目標和 IP 位址

從目標網路介面發出的封包處理方式,取決於目標 VM 的 IP 轉送設定。IP 轉送功能預設為停用。

  • 如果目標 VM 已停用 IP 轉送功能,VM 可以發出具有下列來源的封包:

    • 執行個體 NIC 的主要內部 IPv4 位址。

    • 執行個體 NIC 上設定的任何別名 IP 範圍。

    • 如果子網路上已設定 IPv6,則為指派給 NIC 的任何 IPv6 位址。

    • 與轉送規則相關聯的內部或外部 IP 位址 (適用於直通式負載平衡或通訊協定轉送),前提是執行個體是內部直通式網路負載平衡器、外部直通式網路負載平衡器的後端,或是目標執行個體參照的執行個體。

    如果輸出防火牆規則包含來源 IP 位址範圍,目標 VM 仍會限制為先前提及的來源 IP 位址,但來源參數可用於縮小該集合。使用來源參數而不啟用 IP 轉送不會擴充可能的封包來源位址集。

    如果輸出防火牆規則「不包含」來源 IP 位址範圍,則允許所有先前提及的來源 IP 位址。

  • 如果目標 VM 啟用 IP 轉送功能,該 VM 就能發出含有任意來源位址的封包。您可以使用來源參數,更精確地定義允許的封包來源組合。

來源參數

來源參數值取決於防火牆規則的方向。

輸入規則的來源

輸入防火牆規則可使用下列來源:

  • 預設來源範圍:如果省略輸入規則中的來源規格,Google Cloud 會使用預設來源 IPv4 位址範圍 0.0.0.0/0 (任何 IPv4 位址)。預設值不包含 IPv6 來源。

  • 來源 IPv4 範圍:採用 CIDR 格式的 IPv4 位址清單。

  • 來源 IPv6 範圍:採用 CIDR 格式的 IPv6 位址清單。

  • 來源網路標記:一或多個網路標記,用於識別與防火牆規則位於相同 VPC 網路的 VM 執行個體網路介面。如要瞭解每項防火牆規則的來源網路標記數量上限,請參閱每項防火牆規則的限制。如要進一步瞭解使用這項隱含來源規格時,封包來源地址的比對方式,請參閱「來源網路標記和來源服務帳戶如何隱含封包來源」。

  • 來源服務帳戶:一或多個服務帳戶,用於識別與防火牆規則位於同一虛擬私有雲網路的 VM 執行個體網路介面。如要瞭解每項防火牆規則的來源服務帳戶數量上限,請參閱每項防火牆規則的限制。如要進一步瞭解使用這項隱含來源規格時,封包來源地址的比對方式,請參閱「來源網路標記和來源服務帳戶如何隱含封包來源」。

  • 有效來源組合:對於下列所有組合,有效來源設定是明確指定的 IPv4 或 IPv6 位址,以及來源網路標記或來源服務帳戶隱含的 IP 位址範圍的聯集

    • 來源 IPv4 範圍來源網路標記的組合。
    • 來源 IPv6 範圍來源網路標記的組合。
    • 來源 IPv4 範圍來源服務帳戶的組合。
    • 來源 IPv6 範圍來源服務帳戶的組合。

來源網路標記和來源服務帳戶如何表示封包來源

如果輸入防火牆規則使用來源網路標記,封包必須從符合下列條件的網路介面發出:

  • 網路介面必須位於定義防火牆規則的虛擬私有雲網路中,且
  • 網路介面必須與 VM 建立關聯,且 VM 的網路標記至少要符合一項防火牆規則的來源網路標記。

輸入防火牆規則使用來源服務帳戶時,封包必須從符合下列條件的網路介面發出:

  • 網路介面必須位於定義防火牆規則的虛擬私有雲網路中,且
  • 網路介面必須與 VM 建立關聯,且 VM 的服務帳戶必須符合防火牆規則的其中一個來源服務帳戶。

除了指定網路介面,當輸入防火牆規則使用來源網路標記或來源服務帳戶時,從 VM 網路介面發出的封包必須使用下列其中一個有效來源 IP 位址:

  • 該網路介面的主要內部 IPv4 位址。
  • 指派給該網路介面的任何 IPv6 位址。

如果輸入防火牆規則也包含目的地 IP 位址範圍,則繫結至網路標記的網路介面會解析為與目的地 IP 範圍相同的 IP 版本。

使用來源網路標記或來源服務帳戶時,不會隱含其他封包來源 IP 位址。舉例來說,別名 IP 範圍和與網路介面相關聯的外部 IPv4 位址會排除在外。如要建立來源包含別名 IP 位址範圍或外部 IPv4 位址的輸入防火牆規則,請使用來源 IPv4 範圍。

輸出規則的來源

輸出防火牆規則可使用下列來源:

  • 預設值:由目標隱含。如果省略輸出規則的來源參數,系統會隱含定義封包來源,如「輸出規則的目標和 IP 位址」一文所述。

  • 來源 IPv4 範圍。採用 CIDR 格式的 IPv4 位址清單。

  • 來源 IPv6 範圍。採用 CIDR 格式的 IPv6 位址清單。

如要為輸出規則新增來源 IP 位址範圍,請按照下列指引操作:

  • 如果 VM 介面同時指派了內部和外部 IPv4 位址,規則評估期間只會使用內部 IPv4 位址。

  • 如果您在輸出規則中同時指定來源和目的地參數,請為這兩個參數使用相同的 IP 版本。您可以使用 IPv4 位址範圍或 IPv6 位址範圍,但不能同時使用兩者。詳情請參閱「輸出規則目的地」。

目的地參數

您可以使用 IP 位址範圍指定目的地,輸入和輸出規則都支援這項做法。預設目的地行為取決於規則的方向。

輸入規則的目的地

輸入防火牆規則可使用下列目的地:

  • 預設值:由目標隱含。如果從輸入規則中省略目的地參數,系統會隱含定義封包目的地,如「輸入規則的目標和 IP 位址」一文所述。

  • 目的地 IPv4 範圍。採用 CIDR 格式的 IPv4 位址清單。

  • 目的地 IPv6 範圍。採用 CIDR 格式的 IPv6 位址清單。

如要為連入規則新增目的地 IP 位址範圍,請按照下列準則操作:

  • 如果 VM 介面同時指派了內部和外部 IPv4 位址,規則評估期間只會使用內部 IPv4 位址。

  • 如果在連入規則中同時指定來源和目的地參數,來源參數會解析為與目的地 IP 位址範圍相同的 IP 版本。如要進一步瞭解如何定義輸入規則的來源,請參閱「輸入規則的來源」。

輸出規則的目的地

輸出防火牆規則可使用下列目的地:

  • 預設目的地範圍。如果省略輸出規則中的目的地規格, Google Cloud 會使用預設目的地 IPv4 位址範圍 0.0.0.0/0 (任何 IPv4 位址)。預設值不含 IPv6 目的地。

  • 目的地 IPv4 範圍。採用 CIDR 格式的 IPv4 位址清單。

  • 目的地 IPv6 範圍。採用 CIDR 格式的 IPv6 位址清單。

根據服務帳戶篩選來源與目標

您可以使用服務帳戶建立本質上更加明確的防火牆規則:

  • 針對輸入與輸出規則,您可以使用服務帳戶來指定目標。

  • 針對輸入規則,您可以在 VM 使用特定服務帳戶的網路中,將傳入封包的來源指定為網路中任何 VM 的主要內部 IP 位址。

您必須先在與防火牆規則相同的專案中建立服務帳戶,才能建立依附於該服務帳戶的防火牆規則。系統不會阻止您建立使用其他專案服務帳戶的規則,但如果服務帳戶不存在於防火牆規則的專案中,系統就不會強制執行該規則。

使用服務帳戶識別執行個體的防火牆規則會套用到新建立且與服務帳戶相關聯的執行個體,如要套用到現有的執行個體,您必須變更執行個體的服務帳戶。如要變更與執行個體相關聯的服務帳戶,您必須停止並重新啟動該執行個體。您可以將服務帳戶連結到個別執行個體,也可以連結到代管執行個體群組使用的執行個體範本。

依服務帳戶與網路標記篩選

本節重點說明在決定應使用服務帳戶還是網路標記定義目標與來源 (針對輸入規則) 時,需要考量的幾項要點。

如需對防火牆規則套用至 VM 的方式嚴加控管,請使用目標服務帳戶與來源服務帳戶,而不是使用目標網路標記與來源網路標記:

  • 網路標記是任意屬性。任何具有執行個體編輯權限的身分與存取權管理 (IAM) 主體,都可將一或多個網路標記與執行個體建立關聯。對於專案具有 Compute Engine 執行個體管理員角色的 IAM 主體,即擁有這項權限。有權編輯執行個體的 IAM 主體可以變更其網路標記,進而變更該執行個體適用的防火牆規則組合。

  • 服務帳戶代表與執行個體相關聯的身分。一個執行個體只能與一個服務帳戶相關聯。您可以針對其他 IAM 主體進行服務帳戶使用者角色的授予控管,藉此控管服務帳戶的存取權。如要讓 IAM 主體使用服務帳戶啟動執行個體,該主體至少必須具備該服務帳戶的「服務帳戶使用者」角色,以及建立執行個體的適當權限 (例如具備專案的「Compute Engine 執行個體管理員」角色)。

您無法在任何防火牆規則中混和使用服務帳戶與網路標記。

  • 您無法在任何防火牆規則 (輸入或輸出) 中同時使用目標服務帳戶與目標網路標記。

  • 如果您以目標網路標記或目標服務帳戶指定目標,下列項目是輸入防火牆規則的無效來源。

    目標 無效來源
    目標網路標記 來源服務帳戶

    來源 IP 範圍與來源服務帳戶的組合
    目標服務帳戶 來源網路標記

    來源 IP 範圍與來源網路標記的組合

服務帳戶與網路標記的作業考量包括:

  • 變更執行個體的服務帳戶時,需要停止並重新啟動該執行個體,執行個體運作時,您可以新增或刪除網路標記。

  • 您可以為防火牆規則指定最大數量的目標服務帳戶、來源服務帳戶、目標網路標記和來源網路標記。詳情請參閱每個防火牆規則的限制

  • 如果您使用網路標記識別執行個體,防火牆規則會套用到執行個體的主要內部 IP 位址。

  • 服務帳戶防火牆規則適用於 GKE 節點,而非 GKE Pod。

角色和權限

下表說明使用 VPC 防火牆規則時所需的 Identity and Access Management (IAM) 權限。

工作 必要權限 角色範例
建立防火牆規則 compute.firewalls.create Compute 安全管理員角色 (roles/compute.securityAdmin)
刪除防火牆規則 compute.firewalls.delete Compute 安全管理員
(roles/compute.securityAdmin)
變更防火牆規則 compute.firewalls.update Compute 安全管理員角色 (roles/compute.securityAdmin)
查看防火牆規則的詳細資料 compute.firewalls.get Compute 網路檢視者角色 (roles/compute.networkViewer)
查看防火牆規則清單 compute.firewalls.list Compute 網路檢視者角色 (roles/compute.networkViewer)

用途

以下使用案例示範防火牆規則如何運作。在這些範例中,所有防火牆規則均為啟用狀態。

輸入案例

輸入防火牆規則可控管從來源到虛擬私有雲網路中目標執行個體的連入連線。輸入規則的來源可定義為下列其中一個項目:

  • IPv4 或 IPv6 位址範圍;預設值為任何 IPv4 位址 (0.0.0.0/0)
  • 虛擬私人雲端網路中以網路標記識別的其他執行個體
  • 虛擬私有雲網路中以服務帳戶識別的其他執行個體
  • 虛擬私有雲網路中以 IPv4 或 IPv6 位址範圍網路標記識別的其他執行個體
  • 虛擬私有雲網路中以 IPv4 或 IPv6 位址範圍服務帳戶識別的其他執行個體

預設來源為任何 IPv4 位址 (0.0.0.0/0)。如要控管虛擬私有雲網路以外來源的傳入連線,包括網際網路上的其他來源,請使用以 CIDR 格式表示的 IP 位址範圍。

動作為 allow 的輸入規則會根據其他的規則組成部分允許傳入流量。除了指定規則的來源與目標外,您還可以限制規則以套用至特定通訊協定與目的通訊埠。同樣地,動作為 deny 的輸入規則可根據防火牆規則的其他部分封鎖傳入流量,藉此保護執行個體。

輸入範例

圖 1 顯示了一些範例,說明防火牆規則如何控管輸入連線。這些範例使用規則指派中的目標參數,將規則套用至特定執行個體。

在這個虛擬私有雲網路範例中,允許輸入防火牆規則會覆寫部分 VM 的隱含拒絕輸入規則。
圖 1. 在這個虛擬私有雲網路範例中,允許輸入防火牆規則會覆寫部分 VM 的隱含拒絕輸入規則 (按一下可放大)。
  • 優先順序為 1000 的輸入規則適用於 VM 1。這項規則允許來自任何 IPv4 來源 (0.0.0.0/0) 的傳入 TCP 流量。根據虛擬私有雲網路中其他執行個體適用的輸出規則,系統會允許來自這些執行個體的 TCP 流量。VM 4 可透過 TCP 與 VM 1 進行通訊,因為 VM 4 的輸出規則並不會封鎖這類通訊 (僅套用「默示允許輸出規則」)。由於 VM 1 具有外部 IP,這個規則還會允許來自網際網路上外部主機的傳入 TCP 流量,以及透過外部 IP 位址從 VM 2 傳入的流量。

  • VM 2 未指定任何輸入防火牆規則,因此「默示拒絕輸入規則」會封鎖所有傳入流量。無論網路中的其他執行個體採用何種輸出規則,來自這些執行個體的連線一律都會遭到封鎖。 由於 VM 2 具有外部 IP,因此會有網際網路的外部主機與該 VM 之間的「路徑」,但此默示拒絕輸入規則也會封鎖外部傳入流量。

  • 優先順序為 1000 的輸入規則適用於 VM 3。這個規則允許來自網路中具有 client 網路標記的執行個體 (例如 VM 4) 的 TCP 流量。系統允許將 TCP 流量從 VM 4 傳送到 VM 3,原因是 VM 4 的輸出規則並不會封鎖這類通訊 (僅套用「默示允許輸出規則」)。由於 VM 3 不具有外部 IP,所以不會有網際網路上的外部主機與該 VM 之間的路徑。

輸出案例

輸出防火牆規則可控管來自虛擬私有雲網路中目標執行個體的連出連線。動作為 allow 的輸出規則會根據其他的規則組成部分允許來自執行個體的流量。舉例來說,您可以允許傳出流量透過您指定的通訊協定與目標通訊埠,傳送到特定目的地 (例如特定範圍的 IPv4 位址)。同樣地,動作為 deny 的輸出規則會根據規則的其他部分封鎖流量。

每個輸出規則都需要有「目的地」。預設目的地為任何 IPv4 位址 (0.0.0.0/0),但您可以使用以 CIDR 格式表示的 IPv4 或 IPv6 位址範圍建立更明確的目的地。指定特定範圍的 IP 位址時,您可以針對流向您網路中的執行個體,以及您網路外部目的地 (包括網際網際上的目的地) 的流量進行控管。

輸出範例

圖 2 說明防火牆規則可控管輸出連線的部分範例。這些範例使用規則指派中的目標參數,將規則套用至特定執行個體。

在這個虛擬私有雲網路範例中,拒絕輸出防火牆規則會覆寫部分 VM 的默示允許輸出規則。
圖 2. 在這個虛擬私有雲網路範例中,拒絕輸出防火牆規則會覆寫部分 VM 的默示允許輸出規則 (按一下可放大)。
  • VM 1 未指定任何輸出防火牆規則,因此「默示允許輸出規則」允許傳送流量到任何目的地。根據虛擬私人雲端網路中的其他執行個體適用的輸入規則,系統會允許與這些執行個體的連線。VM 1 能夠傳送流量到 VM 4,因為 VM 4 的輸入規則允許來自任何 IP 位址範圍的傳入流量。由於 VM 1 具有外部 IP 位址,所以能夠傳送流量到網際網路上的外部主機。因為防火牆規則具有狀態,所以系統會允許對 VM 1 傳送的流量的傳入回應。

  • 優先順序為 1000 的輸出規則適用於 VM 2。這項規則會拒絕將所有外送流量傳送到所有 IPv4 目的地 (0.0.0.0/0)。無論虛擬私有雲網路中的其他執行個體套用何種輸入規則,系統均會封鎖傳送到這些執行個體的外送流量。雖然 VM 2 具有外部 IP 位址,這個防火牆規則仍會封鎖其外送流量,不允許傳送到網際網路上的外部主機。

  • 優先順序為 1000 的輸出規則適用於 VM 3。這個規則會封鎖目的地落在 192.168.1.0/24 IP 範圍內的傳出 TCP 流量。雖然 VM 4 的輸入規則允許所有傳入流量,但 VM 3 無法傳送 TCP 流量到 VM 4。但 VM 3 可傳送 UDP 流量到 VM 4,因為輸出規則僅會套用至 TCP 通訊協定。

    此外,VM 3 可傳送任何流量到 VPC 網路中 192.168.1.0/24 IP 範圍以外的其他執行個體,只要這些執行個體的輸入規則允許這類流量即可。因為不具有外部 IP 位址,所以不會有路徑可以將流量傳送到虛擬私有雲網路以外的位置。

後續步驟

歡迎試用

如果您未曾使用過 Google Cloud,歡迎建立帳戶,親自體驗實際使用 Cloud NGFW 的成效。新客戶還能獲得價值 $300 美元的免費抵免額,用於執行、測試及部署工作負載。

免費試用 Cloud NGFW