本頁說明如何為所有防火牆政策規則 (階層式和網路防火牆政策) 設定批次更新。如要執行批次更新,可以使用 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
規則。
事前準備
如果尚未設定驗證,請先完成這項程序。 驗證是驗證您身分的程序,可讓您存取 Trusted Cloud by S3NS 服務和 API。如要從本機開發環境執行程式碼或範例,可以按照本節所述,向 Compute Engine 進行驗證。
主控台
使用 Trusted Cloud 控制台存取 Trusted Cloud by S3NS 服務和 API 時,不需要設定驗證。
gcloud
安裝 Google Cloud CLI 後,請執行下列指令初始化:
gcloud init
如果您使用外部識別資訊提供者 (IdP),請先使用聯合身分登入 gcloud CLI。
在本機用戶端中設定預設區域和可用區。
REST
如要在本機開發環境中使用本頁的 REST API 範例,請使用您提供給 gcloud CLI 的憑證。
安裝 Google Cloud CLI 後,請執行下列指令初始化:
gcloud init
如果您使用外部識別資訊提供者 (IdP),請先使用聯合身分登入 gcloud CLI。
詳情請參閱Trusted Cloud by S3NS 驗證說明文件中的「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
:要匯出的防火牆政策名稱這項要求會傳回網路防火牆政策資源定義。