這個頁面顯示階層式防火牆政策的實作範例。並假設您已熟悉階層式防火牆政策所述概念。
範例 1:允許探測器存取所有 VM
在這個用途中,組織中的所有虛擬機器 (VM) 執行個體都必須經過掃描和清查,方法是使用特定 IP 位址 (10.100.0.1
) 的探查,連至特定目的地通訊埠 (123
)。組織安全管理員會確保任何網路管理員或其他安全管理員,都無法封鎖組織中任何 VM 執行個體上的該通訊埠。
這個範例假設沒有部署任何資料夾層級的防火牆政策。
下圖說明瞭這項用途的設定。
在 VM 中套用的有效政策
在這個範例中,評估階層中的規則後,有效的 VM 防火牆政策如下所示。
輸入連線
根據政策規定,系統允許來源 IP 為
10.100.0.1
且目的地通訊埠為123
的連入連線。如果機構政策相符,系統就會允許探查連線,並停止評估階層中的其他規則。如果輸入連線的來源 IP
10.100.0.1
和目的地埠123
不相符,系統就不會比對成功,因此會套用虛擬私有雲防火牆規則中的預設輸入規則,拒絕連線。
輸出連線
- 階層定義的規則不相符。因此,系統會套用虛擬私有雲防火牆規則中的預設輸出規則,允許輸出連線。
設定操作說明
建立防火牆政策來納入規則:
gcloud compute firewall-policies create \ --organization=123456789012 \ --short-name="example-firewall-policy" \ --description="rules that apply to all VMs in the organization"
將規則新增至防火牆政策:
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
將防火牆政策與機構建立關聯:
gcloud compute firewall-policies associations create \ --firewall-policy=example-firewall-policy \ --organization=123456789012
範例 2:除了特定通訊埠以外,拒絕所有外部連線
在這個用途中,防火牆政策會封鎖來自外部網際網路來源的所有連線,但目的地通訊埠為 80
、443
和 22
的連線除外。無論虛擬私有雲網路層級的防火牆規則為何,系統都會封鎖任何通訊埠上的輸入網際網路連線,但 80
、443
和 22
除外。對於連接埠 80
、443
或 22
上的任何連線,政策會將這些連接埠在各自虛擬私有雲網路中強制執行的行為,委派給虛擬私有雲安全管理員。
下圖說明瞭這項用途的設定。
在 VM 中套用的有效政策
在這個範例中,評估階層中的規則後,有效的 VM 防火牆政策如下所示。
輸入連線
來自
10.0.0.0/8
的任何連入連線都會delegate-internal-traffic
比對優先順序最高的機構層級規則,並略過機構政策中的其餘規則,然後根據虛擬私有雲網路層級設定的防火牆規則進行評估。在虛擬私有雲防火牆規則中,系統會允許來自10.2.0.0/16
的連線,並根據默示輸入規則 (即deny
) 評估其餘連線。來源 IP 範圍不是
10.0.0.0/8
的輸入連線,會委派至下一個層級,目的地通訊埠為22
、80
和443
,其中允許通訊埠80
和443
,但不允許22
。其他連線都會遭到封鎖。
輸出連線
- 階層定義的規則不相符。因此,系統會套用虛擬私有雲防火牆規則中的預設輸出規則,允許輸出連線。
設定操作說明
建立防火牆政策來納入規則:
gcloud compute firewall-policies create \ --organization=123456789012 \ --short-name="example-firewall-policy" \ --description="rules that apply to all VMs in the organization"
新增規則,將內部連線委派給專案擁有者:
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
新增規則,將通訊埠
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"
新增規則,拒絕所有其他外部連線:
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
將防火牆政策與機構建立關聯:
gcloud compute firewall-policies associations create \ --organization=123456789012 \ --firewall-policy="example-firewall-policy"
在專案中新增防火牆規則,允許指定子網路建立內部連線:
gcloud compute firewall-rules create allow-internal-traffic \ --action=allow \ --priority=1000 \ --source-ranges=10.2.0.0/16
在專案中新增防火牆規則,允許外部 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.1
myvpc
。
本範例假設沒有部署任何資料夾層級的防火牆政策。下圖說明瞭這項用途的設定。
在 VM 中套用的有效政策
在這個範例中,評估階層中的規則後,有效的 VM 防火牆政策如下所示。
輸入連線
- 階層定義的規則不相符。因此,虛擬私有雲防火牆規則中的預設連入規則會套用,拒絕連入連線。
輸出連線
系統會允許所有前往
203.0.113.1
的輸出連線,並拒絕其餘連線。所有輸出連線都會203.0.113.1
符合delegate-egress-my-vpc
規則,並略過機構政策中的其餘規則。接著,系統會根據
myvpc
中設定的防火牆規則評估輸出連線。預設規則允許輸出連線。機構層級政策中的block-egress-traffic-sepc-ports
規則會拒絕其餘連線。
設定操作說明
建立防火牆政策來納入規則:
gcloud compute firewall-policies create \ --organization=123456789012 \ --short-name="example-firewall-policy" \ --description="rules that apply to all VMs in the organization"
新增規則,委派特定輸出連線:
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
新增規則,拒絕所有其他輸出連線:
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"
將防火牆政策與機構建立關聯:
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 的通訊埠
80
和443
,其餘通訊埠則遭到封鎖。 - Folder2,其中的政策會強制執行,禁止 Folder2 中的任何 VM 封鎖來自 IP 位址
203.0.113.1
的流量前往任何目的地通訊埠。Folder2 安全管理員將其他決策委派給 VPC 安全管理員,後者決定開啟通訊埠80
、443
和22
,並拒絕其餘通訊埠。
下圖說明瞭這項用途的設定。
在 VM 中套用的有效政策
在這個範例中,評估階層中的規則後,有效的 VM 防火牆政策如下所示。
適用於屬於 my-vpc
的 VM
允許來自
203.0.113.0/24
的所有輸入連線,目的地通訊埠為 TCP80
和443
。系統會拒絕所有其他輸入連線。由於較高層級的防火牆政策規則沒有相符項目,因此系統會根據套用的虛擬私有雲防火牆規則,接受所有輸出連線。
適用於屬於 vpc2
的 VM
允許來自
203.0.113.1
的所有輸入連線。從203.0.113.1
以外的203.0.113.0/24
來源連入的連線,只能連至通訊埠80
、443
和22
。系統會拒絕所有其他連入連線。由於較高層級的防火牆政策規則沒有相符項目,因此系統會根據套用的虛擬私有雲防火牆規則,接受所有輸出連線。
設定操作說明
建立防火牆政策,內含 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"
新增規則,將 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
新增規則,拒絕所有其他外部連線:
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
將防火牆政策與機構建立關聯:
gcloud compute firewall-policies associations create \ --organization=100000000000 \ --short-name="example-firewall-policy-org-a"
建立防火牆政策,內含 Folder1 的規則:
gcloud compute firewall-policies create \ --organization=100000000000 \ --short-name="example-firewall-policy-folder1" \ --description="rules that apply to all VMs under Folder1"
新增規則,允許所有 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"
新增規則,拒絕所有其他通訊埠或通訊協定的輸入:
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
將防火牆政策與 Folder1 建立關聯:
gcloud compute firewall-policies associations create \ --organization=100000000000 \ --short-name="example-firewall-policy-folder1" \ --folder=200000000000
建立防火牆政策,內含 Folder2 的規則:
gcloud compute firewall-policies create \ --organization=100000000000 \ --short-name="example-firewall-policy-folder2" \ --description="rules that apply to all VMs under Folder2"
新增規則,允許來自
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
將防火牆政策與 Folder2 建立關聯:
gcloud compute firewall-policies associations create \ --organization=100000000000 \ --short-name="example-firewall-policy-folder2" \ --folder=300000000000
新增防火牆規則,允許 HTTP(S) 連線從內部輸入:
gcloud compute firewall-rules create allow-internal-traffic \ --network=vpc2 \ --action=allow \ --rules=tcp:80,tcp:443,tcp:22
後續步驟
- 如要建立及修改階層式防火牆政策和規則,請參閱「使用階層式防火牆政策」。