本頁說明如何為所有防火牆政策規則 (階層式和網路防火牆政策) 設定批次更新。如要執行批次更新,可以使用 Google Cloud CLI 或 Compute Engine API。
如要進一步瞭解批次更新,請參閱總覽。
如果您使用 gcloud CLI 批次更新防火牆政策規則,請使用下列 gcloud CLI 指令:
export-rules
:可將防火牆政策規則設定匯出至 YAML 檔案。然後在 YAML 檔案中,根據需求新增、修改及移除防火牆原則規則設定。import-rules
:可匯入修改後的防火牆政策規則設定檔。這會取代指定防火牆政策的現有規則。
如果您使用 REST API 批次更新防火牆政策規則,請使用 patch
方法。您可以使用 patch
方法,在要求中提供 rules
欄位,取代防火牆政策中的所有規則,不需要建立 YAML 檔案。使用 patch
方法時,請保留優先順序最低的預設 goto_next
規則。
事前準備
如果尚未設定驗證,請先完成這項程序。 驗證是驗證您身分的程序,可讓您存取 Google Cloud 服務和 API。如要從本機開發環境執行程式碼或範例,可以按照本節所述,向 Compute Engine 進行驗證。
主控台
使用 Google Cloud 控制台存取 Google Cloud 服務和 API 時,不需要設定驗證。
gcloud
安裝 Google Cloud CLI 後,請執行下列指令初始化:
gcloud init
如果您使用外部識別資訊提供者 (IdP),請先使用聯合身分登入 gcloud CLI。
在本機用戶端中設定預設區域和可用區。
REST
如要在本機開發環境中使用本頁的 REST API 範例,請使用您提供給 gcloud CLI 的憑證。
安裝 Google Cloud CLI 後,請執行下列指令初始化:
gcloud init
如果您使用外部識別資訊提供者 (IdP),請先使用聯合身分登入 gcloud CLI。
詳情請參閱Google Cloud 驗證說明文件中的「Authenticate for using REST」(驗證以使用 REST)。
建立 YAML 檔案
您可以使用 export-rules
指令,將現有的防火牆政策規則匯出至 YAML 檔案。詳情請參閱「匯出防火牆政策規則」。匯出的 YAML 檔案包含優先順序最低的預設 goto_next
規則 (優先順序大於或等於 2147483644 的規則),請勿修改這些預設 goto_next
規則。
不過,如果不想使用 export-rules
指令,也可以手動建立新的 YAML 檔案來編輯規則。如要手動建立新的 YAML 檔案,請按照下列步驟操作:
建立 YAML 檔案
RULES_YAML_FILE
。將RULES_YAML_FILE
替換為您選擇的檔案名稱。在 YAML 檔案中加入
rules
欄位。rules
欄位包含防火牆政策規則清單。如要瞭解匯出或匯入格式的架構,請參閱CLOUDSDKROOT/lib/googlecloudsdk/schemas/compute/beta/FirewallPolicy.yaml
。Google Cloud CLI 安裝目錄。CLOUDSDKROOT
以下是 YAML 結構定義的範例。
rules: -action: deny description: priority: 1 disabled: false enable-logging: false kind: compute#firewallPolicyRule ... -action: goto_next priority: 2 disabled: false enable-logging: false ...
如要修改防火牆政策規則,請參閱修改防火牆政策規則。
匯出防火牆政策規則
您可以使用 gcloud CLI 或 Compute Engine API 啟動更新。
匯出階層式防火牆政策
從階層式防火牆政策匯出防火牆政策規則。
gcloud
如要從階層式防火牆政策匯出規則,請使用 gcloud compute firewall-policies export-rules
指令:
gcloud compute firewall-policies export-rules FIREWALL_POLICY \ --destination=DESTINATION \ --organization=ORGANIZATION
更改下列內容:
FIREWALL_POLICY
:要匯出規則的階層式防火牆政策簡短名稱或 IDDESTINATION
:要匯出設定的 YAML 檔案路徑ORGANIZATION
:要更新機構防火牆政策的機構。如果FIREWALL_POLICY
是簡稱,就必須設定這項屬性
API
如要從階層式防火牆政策匯出現有規則,請在 Compute Engine API 中使用 firewallPolicies.get
方法:
GET https://compute.googleapis.com/compute/v1/locations/global/firewallPolicy/FIREWALL_POLICY_NAME
更改下列內容:
FIREWALL_POLICY_NAME
:要匯出的防火牆政策名稱這項要求會傳回防火牆政策資源定義。
匯出網路防火牆政策
從網路防火牆政策匯出防火牆規則。
gcloud
如要將網路防火牆政策規則設定匯出至檔案,請使用 gcloud compute network-firewall-policies export-rules
指令:
gcloud compute network-firewall-policies export-rules FIREWALL_POLICY \ --destination=RULES_YAML_FILE_PATH \ --global | --region=REGION
更改下列內容:
FIREWALL_POLICY
:要匯出規則的網路防火牆政策名稱RULES_YAML_FILE_PATH
:匯出設定的 YAML 檔案路徑REGION
:如果是全域政策,請指定--global
;如果是區域政策,請指定REGION
。
API
如要從全域網路防火牆政策匯出現有規則,請在 Compute Engine API 中使用 networkFirewallPolicies.get
方法:
GET https://compute.googleapis.com/compute/v1/projects/PROJECT/global/firewallPolicies/FIREWALL_POLICY_NAME
更改下列內容:
PROJECT
:您的專案 IDFIREWALL_POLICY_NAME
:要匯出的防火牆政策名稱
如要從區域網路防火牆政策匯出現有規則,請使用 Compute Engine API 中的 regionNetworkFirewallPolicies.get
方法:
GET https://compute.googleapis.com/compute/v1/projects/PROJECT/regions/REGION/firewallPolicies/FIREWALL_POLICY_NAME
更改下列內容:
PROJECT
:您的專案 IDREGION
:防火牆政策規則的區域FIREWALL_POLICY_NAME
:要匯出的防火牆政策名稱
這項要求會傳回防火牆政策資源定義。
修改防火牆政策規則
修改您在上一個部分匯出的防火牆政策規則。
開啟匯出的檔案。例如
RULES_YAML_FILE
。新增
rules
欄位,如以下範例所示。rules: -action: allow description: test-rule1 direction: INGRESS disabled: false enableLogging: false kind: compute#firewallPolicyRule
新增其他設定欄位,例如
action
、direction
和priority
。以下是基本 YAML 檔案的範例。rules: -action: allow description: test-rule1 direction: INGRESS disabled: false enableLogging: false kind: compute#firewallPolicyRule match: layer4Configs: -ipProtocol: all srcIpRanges: -192.0.2.0/24 priority: 1 ruleTupleCount: 2 -action: goto_next description: default egress rule direction: EGRESS enableLogging: false kind: compute#firewallPolicyRule match: destIpRanges: -::/0 layer4Configs: -ipProtocol: all priority: 2147483644 ruleTupleCount: 2 -action: goto_next description: default ingress rule direction: INGRESS enableLogging: false kind: compute#firewallPolicyRule match: layer4Configs: -ipProtocol: all srcIpRanges: -::/0 priority: 2147483645 ruleTupleCount: 2 -action: goto_next description: default egress rule direction: EGRESS enableLogging: false kind: compute#firewallPolicyRule match: destIpRanges: -198.51.100.0/24 layer4Configs: -ipProtocol: all priority: 2147483646 ruleTupleCount: 2 -action: goto_next description: default ingress rule direction: INGRESS enableLogging: false kind: compute#firewallPolicyRule match: layer4Configs: -ipProtocol: all srcIpRanges: -192.0.2.0/24 priority: 2147483647 ruleTupleCount: 2
匯入防火牆政策規則
變更檔案以進行所需的批次更新後,將規則匯入防火牆政策。匯入修改後的檔案會以提供的規則取代現有的防火牆政策規則。
匯入階層式防火牆政策規則
將防火牆規則匯入階層式防火牆政策。
gcloud
如要將規則匯入階層式防火牆政策,請使用 gcloud compute firewall-policies import-rules
指令:
gcloud compute firewall-policies import-rules FIREWALL_POLICY \ --source=RULES_YAML_FILE_PATH \ --organization=ORGANIZATION
更改下列內容:
FIREWALL_POLICY
:要更新的階層式防火牆政策簡短名稱或 IDRULES_YAML_FILE_PATH
:要匯入規則的 YAML 檔案路徑ORGANIZATION
:要更新機構防火牆政策的機構。如果FIREWALL_POLICY
是簡短名稱,就必須設定。
API
如要匯入防火牆政策規則,請使用 Compute Engine API 中的 firewallPolicies.patch
方法:
PATCH https://compute.googleapis.com/compute/v1/locations/global/firewallPolicy/FIREWALL_POLICY_NAME
更改下列內容:
FIREWALL_POLICY_NAME
:要匯出的防火牆政策名稱這項要求會傳回防火牆政策資源定義。
匯入網路防火牆政策
將修改後的防火牆規則 YAML 檔案匯入網路防火牆政策。
gcloud
如要將規則匯入網路防火牆政策,請使用 gcloud compute network-firewall-policies import-rules
指令:
gcloud compute network-firewall-policies import-rules FIREWALL_POLICY \ --source=RULES_YAML_FILE_PATH \ --global | --region=REGION
更改下列內容:
FIREWALL_POLICY
:要更新的網路防火牆政策名稱RULES_YAML_FILE_PATH
:匯入規則時選擇的路徑REGION
:如果是全域政策,請指定--global
;如果是區域政策,請指定REGION
。
API
如要匯入修改後的網路防火牆政策規則,請使用 Compute Engine API 中的 networkFirewallPolicies.patch
方法:
PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT/global/firewallPolicy/FIREWALL_POLICY_NAME
更改下列內容:
PROJECT
:網路防火牆政策規則的專案 IDFIREWALL_POLICY_NAME
:要匯出的網路防火牆政策名稱
如要匯入修改後的區域網路防火牆政策規則,請使用 Compute Engine API 中的 regionNetworkFirewallPolicies.patch
方法:
PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT/regions/REGION/firewallPolicies/FIREWALL_POLICY_NAME
更改下列內容:
PROJECT
:區域網路防火牆政策規則的專案 IDREGION
:防火牆政策規則的區域FIREWALL_POLICY_NAME
:要匯出的防火牆政策名稱這項要求會傳回網路防火牆政策資源定義。