階層式防火牆政策範例

這個頁面顯示階層式防火牆政策的實作範例。並假設您已熟悉階層式防火牆政策所述概念。

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

在這個用途中,組織中的所有虛擬機器 (VM) 執行個體都必須經過掃描和清查,方法是使用特定 IP 位址 (10.100.0.1) 的探查,連至特定目的地通訊埠 (123)。組織安全管理員會確保任何網路管理員或其他安全管理員,都無法封鎖組織中任何 VM 執行個體上的該通訊埠。

這個範例假設沒有部署任何資料夾層級的防火牆政策。

下圖說明瞭這項用途的設定。

允許探測器存取所有 VM
允許探測器存取所有 VM

在 VM 中套用的有效政策

在這個範例中,評估階層中的規則後,有效的 VM 防火牆政策如下所示。

輸入連線

  • 根據政策規定,系統允許來源 IP 為 10.100.0.1 且目的地通訊埠為 123 的連入連線。如果機構政策相符,系統就會允許探查連線,並停止評估階層中的其他規則。

  • 如果輸入連線的來源 IP 10.100.0.1 和目的地埠 123 不相符,系統就不會比對成功,因此會套用虛擬私有雲防火牆規則中的預設輸入規則,拒絕連線。

輸出連線

  • 階層定義的規則不相符。因此,系統會套用虛擬私有雲防火牆規則中的預設輸出規則,允許輸出連線。

設定操作說明

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

    gcloud compute firewall-policies create \
         --organization=123456789012 \
         --short-name="example-firewall-policy" \
         --description="rules that apply to all VMs in the organization"
    
  2. 將規則新增至防火牆政策:

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

    gcloud compute firewall-policies associations create \
        --firewall-policy=example-firewall-policy \
        --organization=123456789012

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

在這個用途中,防火牆政策會封鎖來自外部網際網路來源的所有連線,但目的地通訊埠為 8044322 的連線除外。無論虛擬私有雲網路層級的防火牆規則為何,系統都會封鎖任何通訊埠上的輸入網際網路連線,但 8044322 除外。對於連接埠 8044322 上的任何連線,政策會將這些連接埠在各自虛擬私有雲網路中強制執行的行為,委派給虛擬私有雲安全管理員。

下圖說明瞭這項用途的設定。

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

在 VM 中套用的有效政策

在這個範例中,評估階層中的規則後,有效的 VM 防火牆政策如下所示。

輸入連線

  • 來自 10.0.0.0/8 的任何連入連線都會delegate-internal-traffic比對優先順序最高的機構層級規則,並略過機構政策中的其餘規則,然後根據虛擬私有雲網路層級設定的防火牆規則進行評估。在虛擬私有雲防火牆規則中,系統會允許來自 10.2.0.0/16 的連線,並根據默示輸入規則 (即 deny) 評估其餘連線。

  • 來源 IP 範圍不是 10.0.0.0/8 的輸入連線,會委派至下一個層級,目的地通訊埠為 2280443,其中允許通訊埠 80443,但不允許 22

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

輸出連線

  • 階層定義的規則不相符。因此,系統會套用虛擬私有雲防火牆規則中的預設輸出規則,允許輸出連線。

設定操作說明

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

    gcloud compute firewall-policies create \
        --organization=123456789012 \
        --short-name="example-firewall-policy" \
        --description="rules that apply to all VMs in the organization"
    
  2. 新增規則,將內部連線委派給專案擁有者:

    gcloud compute firewall-policies rules create 1000 \
        --action=goto_next \
        --description="delegate-internal-traffic" \
        --organization=123456789012 \
        --firewall-policy="example-firewall-policy" \
        --src-ip-ranges=10.0.0.0/8
    
  3. 新增規則,將通訊埠 80/443/22 的外部連線規則委派給專案擁有者:

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

    gcloud compute firewall-policies rules create 3000 \
        --action=deny \
        --description="block-other-external-traffic-spec-ports" \
        --organization=123456789012 \
        --firewall-policy="example-firewall-policy" \
        --src-ip-ranges=0.0.0.0/0
    
  5. 將防火牆政策與機構建立關聯:

    gcloud compute firewall-policies associations create \
        --organization=123456789012 \
        --firewall-policy="example-firewall-policy"
  6. 在專案中新增防火牆規則,允許指定子網路建立內部連線:

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

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

範例 3:拒絕輸出連線,但允許來自特定 VPC 網路的連線

在這個應用情境中,機構組織安全管理員不允許任何虛擬私有雲網路中的輸出連線,但虛擬私有雲網路 myvpc 中的連線除外。管理員將開放對外連線至公開伺服器的決策權,委派給安全管理員 203.0.113.1myvpc

本範例假設沒有部署任何資料夾層級的防火牆政策。下圖說明瞭這項用途的設定。

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

在 VM 中套用的有效政策

在這個範例中,評估階層中的規則後,有效的 VM 防火牆政策如下所示。

輸入連線

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

輸出連線

  • 系統會允許所有前往 203.0.113.1 的輸出連線,並拒絕其餘連線。所有輸出連線都會203.0.113.1符合delegate-egress-my-vpc規則,並略過機構政策中的其餘規則。

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

設定操作說明

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

    gcloud compute firewall-policies create \
        --organization=123456789012 \
        --short-name="example-firewall-policy" \
        --description="rules that apply to all VMs in the organization"
    
  2. 新增規則,委派特定輸出連線:

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

    gcloud compute firewall-policies rules create 2000 \
        --action=deny \
        --description="block-egress-external-traffic-spec-ports" \
        --direction=egress \
        --dest-ip-ranges=0.0.0.0/0 \
        --organization=123456789012 \
        --short-name="example-firewall-policy"
  4. 將防火牆政策與機構建立關聯:

    gcloud compute firewall-policies associations create \
        --organization=123456789012 \
        --short-name="example-firewall-policy"

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

在這個使用案例中,安全性管理員不允許連入機構中任何 VM 的連線,但允許清單中新增的範圍除外:203.0.113.0/24。管理員會將如何處理 203.0.113.0/24 連線的後續決策,委派給資料夾層級的安全管理員。

有兩個不同的資料夾:

  • Folder1,其中政策只允許連線至後端 VM 的通訊埠 80443,其餘通訊埠則遭到封鎖。
  • Folder2,其中的政策會強制執行,禁止 Folder2 中的任何 VM 封鎖來自 IP 位址 203.0.113.1 的流量前往任何目的地通訊埠。Folder2 安全管理員將其他決策委派給 VPC 安全管理員,後者決定開啟通訊埠 8044322,並拒絕其餘通訊埠。

下圖說明瞭這項用途的設定。

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

在 VM 中套用的有效政策

在這個範例中,評估階層中的規則後,有效的 VM 防火牆政策如下所示。

適用於屬於 my-vpc 的 VM

  • 允許來自 203.0.113.0/24 的所有輸入連線,目的地通訊埠為 TCP 80443。系統會拒絕所有其他輸入連線。

  • 由於較高層級的防火牆政策規則沒有相符項目,因此系統會根據套用的虛擬私有雲防火牆規則,接受所有輸出連線。

適用於屬於 vpc2 的 VM

  • 允許來自 203.0.113.1 的所有輸入連線。從 203.0.113.1 以外的 203.0.113.0/24 來源連入的連線,只能連至通訊埠 8044322。系統會拒絕所有其他連入連線。

  • 由於較高層級的防火牆政策規則沒有相符項目,因此系統會根據套用的虛擬私有雲防火牆規則,接受所有輸出連線。

設定操作說明

  1. 建立防火牆政策,內含 Org_A 的規則:

    gcloud compute firewall-policies create \
        --organization=100000000000 \
        --short-name="example-firewall-policy-org-a" \
        --description="rules that apply to all VMs in the organization"
    
  2. 新增規則,將 Ingress 從 203.0.113.0/24 委派給專案擁有者:

    gcloud compute firewall-policies rules create 1000 \
        --action=goto_next \
        --description="delegate-ingress" \
        --organization=100000000000 \
        --short-name="example-firewall-policy-org-a" \
        --src-ip-ranges=203.0.113.0/24
    
  3. 新增規則,拒絕所有其他外部連線:

    gcloud compute firewall-policies rules create 2000 \
        --action=deny
        --description="block-ingress-external-traffic"
        --organization=100000000000 \
        --short-name="example-firewall-policy-org-a" \
        --src-ip-ranges=0.0.0.0/0
    
  4. 將防火牆政策與機構建立關聯:

    gcloud compute firewall-policies associations create \
        --organization=100000000000 \
        --short-name="example-firewall-policy-org-a"
  5. 建立防火牆政策,內含 Folder1 的規則:

    gcloud compute firewall-policies create \
        --organization=100000000000 \
        --short-name="example-firewall-policy-folder1" \
        --description="rules that apply to all VMs under Folder1"
    
  6. 新增規則,允許所有 HTTP(S) Ingress:

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

    gcloud compute firewall-policies rules create 2000 \
        --action=deny \
        --description="block-ingress-external-traffic" \
        --organization=100000000000 \
        --short-name="example-firewall-policy-folder1" \
        --src-ip-ranges=0.0.0.0/0
  8. 將防火牆政策與 Folder1 建立關聯:

    gcloud compute firewall-policies associations create \
        --organization=100000000000 \
        --short-name="example-firewall-policy-folder1" \
        --folder=200000000000
  9. 建立防火牆政策,內含 Folder2 的規則:

    gcloud compute firewall-policies create \
        --organization=100000000000 \
        --short-name="example-firewall-policy-folder2" \
        --description="rules that apply to all VMs under Folder2"
  10. 新增規則,允許來自 203.0.113.1 的輸入流量:

    gcloud compute firewall-policies rules create 1000 \
        --action=allow \
        --description="allow-vul-scan-ingress" \
        --organization=100000000000 \
        --short-name="example-firewall-policy-folder2" \
        --src-ip-ranges=203.0.113.1/32
  11. 將防火牆政策與 Folder2 建立關聯:

    gcloud compute firewall-policies associations create \
        --organization=100000000000 \
        --short-name="example-firewall-policy-folder2" \
        --folder=300000000000
  12. 新增防火牆規則,允許 HTTP(S) 連線從內部輸入:

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

後續步驟