階層式防火牆政策範例

本頁面提供階層式防火牆政策的範例。這些範例有助於瞭解階層式防火牆政策的運作方式,以及如何使用這類政策,在 Google Cloud 資源階層中提供一致的安全性。如要瞭解這些範例,請先熟悉階層式防火牆政策概念

範例 1:允許探測器存取所有 VM

這個範例說明如何在機構層級設定防火牆規則,並允許探測器存取所有虛擬機器 (VM)。探測器是一種特殊程式,可自動檢查 VM,判斷其內容或設定。

情境

您是安全管理員,需要確保安全掃描工具可以連線至所有 VM 執行個體。這項工具會從 IP 位址 10.100.0.1 將探測訊號傳送至目的地通訊埠 123。 請確保貴機構的任何層級,都沒有網路或安全管理員不慎封鎖這項連線。

下圖顯示這個情境的設定:

防火牆政策,允許所有 VM 上的探測器
防火牆政策,允許對所有 VM 進行探查

政策如何套用至 VM

評估所有規則後,防火牆政策會套用至 VM,如下所示:

連入連線

  • 機構政策允許從來源 IP 10.100.0.1 到目的地通訊埠 123 的輸入連線。如果機構政策相符,則允許探查連線,並停止評估階層中的其他規則。

  • 如果輸入連線並非源自來源 IP 10.100.0.1 或目標目的地通訊埠 123,就不會發生相符情形。因此,虛擬私有雲 (VPC) 防火牆規則中的預設連入規則會套用,並拒絕連線。

輸出連線

  • 階層定義的規則不相符。因此,虛擬私有雲防火牆規則中的預設輸出規則會套用,並允許輸出連線。如果您已設定其他防火牆規則來拒絕輸出流量,請注意, Google Cloud 防火牆是有狀態的,允許已建立連線的回傳流量。

    如果您已設定輸出防火牆規則來拒絕輸出流量 (包括隱含的deny-all輸出規則),且設定包含不使用連線追蹤的通訊協定,則必須明確設定防火牆規則,允許輸出傳回流量。

如何設定

如要建立政策規則並與機構建立關聯,請按照下列步驟操作:

  1. 建立防火牆政策來納入規則:

    gcloud compute firewall-policies create \
         --organization ORG_ID \
         --short-name SHORT_NAME \
         --description DESCRIPTION
    
  2. 將規則新增至防火牆政策:

    gcloud compute firewall-policies rules create 1000 \
        --action=allow \
        --description DESCRIPTION \
        --layer4-configs=tcp:123 \
        --firewall-policy SHORT_NAME \
        --organization ORG_ID \
        --src-ip-ranges=10.100.0.1/32
    
  3. 將防火牆政策與機構建立關聯:

    gcloud compute firewall-policies associations create \
        --firewall-policy SHORT_NAME\
        --organization ORG_ID
    

    更改下列內容:

    • ORG_ID:貴機構的 ID

      指定機構 ID,建立以機構為父項的政策。這項政策可以與機構或機構內的資料夾建立關聯。

    • SHORT_NAME:政策名稱

      使用 Google Cloud CLI 建立的政策有兩個名稱:系統產生的名稱和您提供的簡短名稱。使用 gcloud CLI 更新現有政策時,您可以提供系統產生的名稱,也可以提供簡稱和機構 ID。使用 API 更新政策時,必須提供系統產生的名稱。

    • DESCRIPTION:防火牆政策說明

範例 2:拒絕所有外部連線,但特定通訊埠除外

這個範例說明如何設定政策,拒絕來自特定連接埠的連入連線。

情境

您是安全管理員,想封鎖所有連入的網際網路流量,確保貴機構安全無虞,但特定服務除外,例如網頁流量 (連接埠 80443) 和 SSH 存取權 (連接埠 22)。您必須封鎖連接埠 8044322 以外的所有連入網際網路流量,無論現有的虛擬私有雲網路規則為何。對於這些允許的連接埠上的連線,您可以將權限委派給虛擬私有雲安全管理員,由他們決定特定虛擬私有雲網路中的情況。

下圖顯示這個情境的設定:

拒絕所有外部連線,但特定目的地通訊埠除外
拒絕所有外部連線,但特定目的地通訊埠除外

政策如何套用至 VM

評估階層中的規則後,VM 防火牆政策會套用如下:

連入連線

  • 來自 10.0.0.0/8 的連入連線會符合優先順序最高的機構層級規則 delegate-internal-traffic。這些連線會略過機構政策中的其餘規則,並根據虛擬私有雲網路層級的防火牆規則進行評估。虛擬私有雲防火牆規則允許來自 10.2.0.0/16 的連線,並根據默示輸入規則 deny 評估其餘連線。

  • 來自 10.0.0.0/8 IP 範圍以外來源的輸入連線,會委派至下一個層級,目的地通訊埠為 2280443。在這個層級,規則允許通訊埠 80443 的流量,但會封鎖通訊埠 22

  • 其他所有連線都會遭到封鎖。

輸出連線

  • 階層定義的規則不相符。因此,虛擬私有雲防火牆規則中的預設輸出規則會套用,並允許輸出連線。如果您已設定其他防火牆規則來拒絕輸出流量,請注意, Google Cloud 防火牆是有狀態的,允許已建立連線的回傳流量。

    如果您已設定輸出防火牆規則來拒絕輸出流量 (包括隱含的deny-all輸出規則),且設定包含不使用連線追蹤的通訊協定,則必須明確設定防火牆規則,允許輸出傳回流量。

如何設定

如要建立政策規則並允許外部 TCP 80443 連線,請按照下列步驟操作:

  1. 建立防火牆政策來納入規則:

    gcloud compute firewall-policies create \
        --organization ORG_ID \
        --short-name SHORT_NAME \
        --description DESCRIPTION
    
  2. 新增規則,將內部連線委派給專案擁有者:

    gcloud compute firewall-policies rules create 1000 \
        --action=goto_next \
        --description DESCRIPTION \
        --organization ORG_ID \
        --firewall-policy SHORT_NAME \
        --src-ip-ranges=10.0.0.0/8
    
  3. 新增規則,將通訊埠 8044322 的外部連線規則委派給專案擁有者:

    gcloud compute firewall-policies rules create 2000 \
        --action=goto_next \
        --description DESCRIPTION \
        --src-ip-ranges=0.0.0.0/0 \
        --layer4-configs=tcp:80,tcp:443,tcp:22 \
        --organization ORG_ID \
        --firewall-policy SHORT_NAME
    
  4. 新增規則,拒絕所有其他外部連線:

    gcloud compute firewall-policies rules create 3000 \
        --action=deny \
        --description DESCRIPTION \
        --organization ORG_ID \
        --firewall-policy SHORT_NAME \
        --src-ip-ranges=0.0.0.0/0
    
  5. 將防火牆政策與機構建立關聯:

    gcloud compute firewall-policies associations create \
        --organization ORG_ID \
        --firewall-policy SHORT_NAME
    
  6. 在專案中新增防火牆規則,允許來自指定子網路的內部連線:

    gcloud compute firewall-rules create allow-internal-traffic \
        --action=allow \
        --priority=1000 \
        --source-ranges=10.2.0.0/16
    
  7. 在專案中新增防火牆規則,允許外部 TCP 80443 連線:

    gcloud compute firewall-rules create allow-external-traffic \
        --action=allow \
        --priority=2000 \
        --rules=tcp:80,tcp:443
    

    更改下列內容:

    • ORG_ID:貴機構的 ID

      指定機構 ID,建立以機構為父項的政策。這項政策可以與機構或機構內的資料夾建立關聯。

    • SHORT_NAME:政策名稱

      使用 Google Cloud CLI 建立的政策有兩個名稱:系統產生的名稱和您提供的簡短名稱。使用 gcloud CLI 更新現有政策時,您可以提供系統產生的名稱,也可以提供簡稱和機構 ID。使用 API 更新政策時,必須提供系統產生的名稱。

    • DESCRIPTION:防火牆政策說明

範例 3:拒絕輸出連線,但允許來自特定虛擬私有雲網路的連線

這個範例說明如何設定政策,拒絕特定 VPC 網路的輸出連線。

情境

貴機構會處理機密資料,因此需要限制資訊離開網路。根據預設,貴機構會禁止所有 VM 執行個體將資料傳送至網際網路。不過,myvpc 虛擬私有雲網路中的專案需要與 203.0.113.1 信任合作夥伴伺服器安全通訊。如要支援這項功能,您必須實作下列項目:

  • 僅允許從 myvpc203.0.113.1 的輸出連線。
  • 將這個連線的特定通訊詳細資料管理權,委派給 myvpc 安全性管理員。
  • 請確認這項設定可防止機構其他部門意外外洩資料。

為此,組織安全管理員會封鎖所有其他虛擬私有雲網路的輸出連線,但源自 myvpc 的連線除外。管理員會將允許流出至公開伺服器 203.0.113.1 的權限,委派給 myvpc 安全性管理員。

下圖顯示這個情境的設定:

拒絕輸出連線,但允許來自特定網路的連線
拒絕輸出連線,但允許來自特定網路的連線

政策如何套用至 VM

評估階層中的規則後,VM 防火牆政策會套用如下:

連入連線

  • 階層定義的規則不相符。因此,虛擬私有雲防火牆規則中的預設連入規則會套用,拒絕連入連線。

輸出連線

  • 由於輸出連線符合 delegate-egress-my-vpc 規則,因此允許連線至 203.0.113.1,並略過機構政策中的其餘規則。其餘輸出連線都會遭到拒絕。

  • 接著,系統會根據 myvpc 中設定的防火牆規則評估輸出連線。預設規則允許輸出連線。機構層級政策中的 block-egress-traffic-sepc-ports 規則會拒絕其餘連線。

如何設定

如要建立政策規則並將特定輸出連線委派給他們,請按照下列步驟操作:

  1. 建立防火牆政策來納入規則:

    gcloud compute firewall-policies create \
        --organization ORG_ID \
        --short-name SHORT_NAME \
        --description DESCRIPTION
    
  2. 新增規則,委派特定輸出連線:

    gcloud compute firewall-policies rules create 1000 \
        --action=goto_next \
        --description DESCRIPTION \
        --dest-ip-ranges=203.0.113.1/32
        --direction=egress
        --organization ORG_ID \
        --short-name SHORT_NAME \
        --target-resources=projects/PROJECT_ID/networks/myvpc
    
  3. 新增規則,拒絕所有其他輸出連線:

    gcloud compute firewall-policies rules create 2000 \
        --action=deny \
        --description DESCRIPTION \
        --direction=egress \
        --dest-ip-ranges=0.0.0.0/0 \
        --organization ORG_ID \
        --short-name SHORT_NAME
    
  4. 將防火牆政策與機構建立關聯:

    gcloud compute firewall-policies associations create \
        --organization ORG_ID \
        --short-name SHORT_NAME
    

更改下列內容:

  • ORG_ID:貴機構的 ID

    Specify an organization ID to create a policy whose parent is an
    organization. The policy can be associated with the organization or
    a folder within the organization.
    
  • SHORT_NAME:政策名稱

    A policy created by using the Google Cloud CLI has two
    names: a system-generated name and a short name provided by you. When
    using the gcloud CLI to update an existing policy, you can
    provide either the system-generated name or the short name and the
    organization ID. When using the API to update the policy, you must
    provide the system-generated name.
    
  • DESCRIPTION:防火牆政策說明

範例 4:設定全機構和資料夾專屬規則

這個例子說明如何封鎖連入機構中所有 VM 的連線,但來自 IP 範圍的連線除外。

情境

貴機構包含多個資料夾,例如 Folder1Folder2。 機構安全團隊設定機構層級政策,只允許來自所有資料夾中 203.0.113.0/24 IP 範圍的輸入流量。

流量進入網路後,不同資料夾的需求各不相同:

  • Folder1:這個團隊只執行網頁應用程式,因此安全管理員只允許來自信任合作夥伴的流量通過網頁連接埠 80443。這項政策會封鎖所有其他連接埠,進一步提升安全性。

  • Folder2:這個團隊使用工具掃描系統。工具來自於受信任合作夥伴範圍內的 IP 位址 203.0.113.1。管理員會確保這項掃描工具可以連上 VM 的任何連接埠。對於來自信任合作夥伴的其他流量,專案層級管理員會決定規則。然後為特定應用程式開啟通訊埠 8044322

在本範例中,安全性管理員會封鎖機構中所有 VM 的輸入連線,但來自允許的 IP 範圍 203.0.113.0/24 的連線除外。管理員會將 203.0.113.0/24 連線的後續決策,委派給資料夾層級的安全管理員。

下圖顯示這個情境的設定:

適用於整個機構和特定資料夾的規則
機構層級和資料夾專屬規則

政策如何套用至 VM

評估階層中的規則後,VM 防火牆政策會套用如下:

虛擬私有雲網路 my-vpc 中的 VM

  • 允許從 203.0.113.0/24 到目的地 TCP 通訊埠 80443 的所有輸入連線。系統會拒絕任何其他連入連線。

  • 如果沒有相符的高階防火牆政策規則,虛擬私有雲防火牆規則會允許所有輸出連線。

虛擬私有雲網路 vpc2 中的 VM

  • 這項政策允許來自 203.0.113.1 的所有輸入連線。如果是來自 203.0.113.0/24 來源的連入連線 (203.0.113.1 除外),政策只允許流量前往通訊埠 8044322。這項政策會拒絕所有其他輸入連線。

  • 由於沒有相符的較高層級防火牆政策規則,VPC 防火牆規則會允許所有輸出連線。

如何設定

如要設定機構層級和資料夾專屬規則,請按照下列步驟操作:

  1. Org_A 建立防火牆政策:

    gcloud compute firewall-policies create \
        --organization ORG_ID \
        --short-name SHORT_NAME \
        --description DESCRIPTION
    
  2. 新增規則,將 Ingress 從 203.0.113.0/24 委派給專案擁有者:

    gcloud compute firewall-policies rules create 1000 \
        --action=goto_next \
        --description DESCRIPTION \
        --organization ORG_ID \
        --short-name SHORT_NAME \
        --src-ip-ranges=203.0.113.0/24
    
  3. 新增規則,拒絕所有其他外部連線:

    gcloud compute firewall-policies rules create 2000 \
        --action=deny \
        --description DESCRIPTION \
        --organization ORG_ID \
        --short-name SHORT_NAME \
        --src-ip-ranges=0.0.0.0/0
    
  4. 將防火牆政策與機構建立關聯:

    gcloud compute firewall-policies associations create \
        --organization ORG_ID \
        --short-name SHORT_NAME
    
  5. 建立防火牆政策,內含 Folder1 的規則:

    gcloud compute firewall-policies create \
        --organization ORG_ID \
        --short-name SHORT_NAME \
        --description DESCRIPTION
    
  6. 新增規則,允許所有 HTTP(S) Ingress:

    gcloud compute firewall-policies rules create 1000 \
        --action=allow \
        --description DESCRIPTION \
        --layer4-configs=tcp:80,tcp:443 \
        --organization ORG_ID \
        --short-name SHORT_NAME
    
  7. 新增規則,拒絕所有其他通訊埠或通訊協定的輸入:

    gcloud compute firewall-policies rules create 2000 \
        --action=deny \
        --description DESCRIPTION \
        --organization ORG_ID \
        --short-name SHORT_NAME \
        --src-ip-ranges=0.0.0.0/0
  8. 將防火牆政策與 Folder1 建立關聯:

    gcloud compute firewall-policies associations create \
        --organization ORG_ID \
        --short-name SHORT_NAME \
        --folder FOLDER_ID
    
  9. 建立防火牆政策,內含 Folder2 的規則:

    gcloud compute firewall-policies create \
        --organization ORG_ID \
        --short-name SHORT_NAME \
        --description DESCRIPTION
    
  10. 新增規則,允許來自 203.0.113.1 的輸入流量:

    gcloud compute firewall-policies rules create 1000 \
        --action=allow \
        --description DESCRIPTION \
        --organization ORG_ID \
        --short-name SHORT_NAME \
        --src-ip-ranges=203.0.113.1/32
    
  11. 將防火牆政策與 Folder2 建立關聯:

    gcloud compute firewall-policies associations create \
        --organization ORG_ID \
        --short-name SHORT_NAME \
        --folder FOLDER_ID
    
  12. 新增防火牆規則,允許 HTTP(S) 連線從內部輸入:

    gcloud compute firewall-rules create allow-internal-traffic \
        --network=vpc2 \
        --action=allow \
        --rules=tcp:80,tcp:443,tcp:22
    

更改下列內容:

  • ORG_ID:貴機構的 ID

    Specify an organization ID to create a policy whose parent is an
    organization. The policy can be associated with the organization or
    a folder within the organization.
    
  • SHORT_NAME:政策名稱

    A policy created by using the Google Cloud CLI has two
    names: a system-generated name and a short name provided by you. When
    using the gcloud CLI to update an existing policy, you can
    provide either the system-generated name or the short name and the
    organization ID. When using the API to update the policy, you must
    provide the system-generated name.
    
  • DESCRIPTION:防火牆政策說明

  • FOLDER_ID:資料夾 ID

後續步驟