設定防火牆政策規則的批次更新

本頁說明如何為所有防火牆政策規則 (階層式和網路防火牆政策) 設定批次更新。如要執行批次更新,可以使用 Google Cloud CLICompute 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

  1. 安裝 Google Cloud CLI 後,請執行下列指令初始化

    
    gcloud init
    
    

    如果您使用外部識別資訊提供者 (IdP),請先使用聯合身分登入 gcloud CLI

  2. 在本機用戶端中設定預設區域和可用區

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 檔案,請按照下列步驟操作:

  1. 建立 YAML 檔案 RULES_YAML_FILE。將 RULES_YAML_FILE 替換為您選擇的檔案名稱。

  2. 在 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:要匯出規則的階層式防火牆政策簡短名稱或 ID
  • DESTINATION:要匯出設定的 YAML 檔案路徑
  • ORGANIZATION:要更新機構防火牆政策的機構。如果 FIREWALL_POLICY 是簡稱,就必須設定這項屬性

API

如要從階層式防火牆政策匯出現有規則,請在 Compute Engine API 中使用 firewallPolicies.get 方法

  GET https://compute.googleapis.com/compute/v1/locations/global/firewallPolicy/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:您的專案 ID
  • FIREWALL_POLICY_NAME:要匯出的防火牆政策名稱

如要從區域網路防火牆政策匯出現有規則,請使用 Compute Engine API 中的 regionNetworkFirewallPolicies.get 方法

GET https://compute.googleapis.com/compute/v1/projects/PROJECT/regions/REGION/firewallPolicies/FIREWALL_POLICY_NAME

更改下列內容:

  • PROJECT:您的專案 ID
  • REGION:防火牆政策規則的區域
  • FIREWALL_POLICY_NAME:要匯出的防火牆政策名稱

這項要求會傳回防火牆政策資源定義

修改防火牆政策規則

修改您在上一個部分匯出的防火牆政策規則。

  1. 開啟匯出的檔案。例如 RULES_YAML_FILE

  2. 新增 rules 欄位,如以下範例所示。

        rules:
         -action: allow
          description: test-rule1
          direction: INGRESS
          disabled: false
          enableLogging: false
          kind: compute#firewallPolicyRule
      

  3. 新增其他設定欄位,例如 actiondirectionpriority。以下是基本 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:要更新的階層式防火牆政策簡短名稱或 ID
  • RULES_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
  

更改下列內容:

匯入網路防火牆政策

將修改後的防火牆規則 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:網路防火牆政策規則的專案 ID
  • FIREWALL_POLICY_NAME:要匯出的網路防火牆政策名稱

如要匯入修改後的區域網路防火牆政策規則,請使用 Compute Engine API 中的 regionNetworkFirewallPolicies.patch 方法

  PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT/regions/REGION/firewallPolicies/FIREWALL_POLICY_NAME
   

更改下列內容:

  • PROJECT:區域網路防火牆政策規則的專案 ID
  • REGION:防火牆政策規則的區域
  • FIREWALL_POLICY_NAME:要匯出的防火牆政策名稱

    這項要求會傳回網路防火牆政策資源定義

後續步驟

  • 如需防火牆規則的簡介,請參閱防火牆政策規則
  • 如要瞭解如何批次更新防火牆政策規則,請參閱總覽