遷移未使用網路標記和服務帳戶的虛擬私有雲防火牆規則

如果虛擬私有雲 (VPC) 防火牆規則未使用任何網路標記或服務帳戶,請執行下列工作,將 VPC 防火牆規則遷移至全域網路防火牆政策:

  1. 評估您的環境
  2. 遷移虛擬私有雲防火牆規則
  3. 查看新的全域網路防火牆政策
  4. 完成遷移後工作

事前準備

  1. In the Trusted Cloud console, on the project selector page, select or create a Trusted Cloud project.

    Go to project selector

  2. Verify that billing is enabled for your Trusted Cloud project.

  3. Enable the Compute Engine API.

    Enable the API

  4. Install the Google Cloud CLI.

  5. 設定 gcloud CLI 以使用您的聯合身分。

    詳情請參閱「 使用聯合身分登入 gcloud CLI」。

  6. 如要初始化 gcloud CLI,請執行下列指令:

    gcloud init
  7. 確認您具備 Compute 安全性管理員角色 (roles/compute.securityAdmin)。
  8. 評估您的環境

    1. 找出網路中現有的虛擬私有雲防火牆規則數量。
    2. 記下與每項虛擬私有雲防火牆規則相關聯的優先順序。
    3. 確認您具備建立、建立關聯、修改及查看全域網路防火牆政策所需的 Identity and Access Management (IAM) 角色和權限。

    遷移虛擬私有雲防火牆規則

    評估環境後,請使用 compute firewall-rules migrate 指令,將虛擬私有雲防火牆規則遷移至全域網路防火牆政策。

    gcloud beta compute firewall-rules migrate \
        --source-network=NETWORK_NAME \
        --target-firewall-policy=POLICY_NAME
    

    更改下列內容:

    • NETWORK_NAME:包含要遷移的虛擬私有雲防火牆規則的虛擬私有雲網路名稱。
    • POLICY_NAME:遷移期間要建立的全域網路防火牆政策名稱。

    排除要遷移的防火牆規則

    如要排除特定防火牆規則,請使用 gcloud beta compute firewall-rules migrate 指令,並加上 --exclusion-patterns-file 旗標:

    gcloud beta compute firewall-rules migrate \
        --source-network=NETWORK_NAME \
        --target-firewall-policy=POLICY_NAME \
        --exclusion-patterns-file=EXCLUSION_PATTERNS_FILE
    

    更改下列內容:

    • NETWORK_NAME:虛擬私有雲網路的名稱,其中包含您要遷移的虛擬私有雲防火牆規則。
    • POLICY_NAME:遷移期間要建立的全域網路防火牆政策名稱。
    • EXCLUSION_PATTERNS_FILE:檔案名稱,其中包含定義要從遷移作業排除的虛擬私有雲防火牆命名模式的規則運算式。請務必指定檔案的完整路徑。系統會略過符合指定模式的防火牆規則。

      定義排除模式時,請注意下列事項:

      • 每個規則運算式都必須單獨一行,且代表單一防火牆命名模式。
      • 規則運算式開頭或結尾不含任何空白字元。

    查看排除的防火牆規則

    根據排除的防火牆規則命名模式,遷移工具不會遷移部分防火牆規則,例如 Google Kubernetes Engine (GKE) 防火牆規則。如要匯出排除的防火牆規則命名模式清單,請使用 gcloud beta compute firewall-rules migrate 指令搭配 --export-exclusion-patterns--exclusion-patterns-file 旗標。

    gcloud beta compute firewall-rules migrate \
        --source-network=NETWORK_NAME \
        --target-firewall-policy=POLICY_NAME \
        --exclusion-patterns-file=EXCLUSION_PATTERNS_FILE \
        --export-exclusion-patterns
    

    更改下列內容:

    • NETWORK_NAME:虛擬私有雲網路的名稱,其中包含您要遷移的虛擬私有雲防火牆規則。
    • POLICY_NAME:遷移期間要建立的全域網路防火牆政策名稱。
    • EXCLUSION_PATTERNS_FILE:匯出下列排除的防火牆規則命名模式的檔案路徑。

      gke-(.+)-ipv6-all
      gke-(.+)-(.+)-((master)|(vms)|(all)|(inkubelet)|(exkubelet)|(mcsd))
      k8s-fw-(l7-)?(.+)
      k8s-(.+)-((node)|(http)|(node-http))-hc
      (.+)-hc
      k8s2-(.+)-(.+)-(.+)-(.+)(-fw)?
      k8s2-(.+)-l4-shared-hc-fw
      gke((gw)|(mcg))1-l7-(.+)-(.+)
      

    如要遷移符合特定模式的排除防火牆規則,請從匯出的清單中移除該模式,然後執行 gcloud beta compute firewall-rules migrate 指令並搭配使用 --exclusion-patterns-file 標記。

    強制遷移,同時保留評估順序

    遷移期間,如果排除的防火牆規則評估順序介於使用者指定的防火牆規則評估順序之間,遷移就會失敗。這是因為排除的防火牆規則不會遷移,且遷移工具無法在新網路防火牆政策中保留使用者定義規則的原始評估順序。

    舉例來說,如果防火牆規則具有下列優先順序,遷移作業就會失敗。

    • 優先順序為 100 的使用者指定規則
    • 優先順序為 200 的排除規則
    • 優先順序為 300 的使用者指定規則

    如要強制遷移工具遷移使用者指定的規則,同時保留原始評估順序並忽略排除的防火牆規則,請使用 gcloud beta compute firewall-rules migrate 指令並加上 --force 旗標。

    gcloud beta compute firewall-rules migrate \
        --source-network=NETWORK_NAME \
        --target-firewall-policy=POLICY_NAME \
        --force
    

    更改下列內容:

    • NETWORK_NAME:虛擬私有雲網路的名稱,其中包含您要遷移的虛擬私有雲防火牆規則。
    • POLICY_NAME:遷移期間要建立的全域網路防火牆政策名稱。

    查看新的全域網路防火牆政策

    將新的全域網路防火牆政策附加至 VPC 網路之前,Google 建議您先檢查政策,確保遷移程序已正確完成。

    確認防火牆政策規則設定,並檢查下列規則元件是否已正確遷移至每個規則:

    • 相對優先順序
    • 流量方向
    • 相符時執行的動作
    • 記錄設定
    • 目標參數
    • 來源參數 (適用於輸入規則)
    • 目的地參數 (適用於輸出規則)
    • 通訊協定和通訊埠限制

    如要進一步瞭解防火牆政策規則的元件,請參閱「防火牆政策規則」。

    遷移後工作

    如要啟用及使用全域網路防火牆政策,請完成下列各節所述的移轉後工作。

    將全域網路防火牆政策與網路建立關聯

    遷移工具會根據現有的虛擬私有雲防火牆規則,建立全域網路防火牆政策。您必須手動將政策與必要的虛擬私有雲網路建立關聯,才能為該網路中的任何 VM 啟用政策規則。如要建立全域網路防火牆政策的關聯,請使用 compute network-firewall-policies associations create 指令

    gcloud compute network-firewall-policies associations create \
        --firewall-policy=POLICY_NAME \
        --network=NETWORK_NAME \
        --global-firewall-policy
        --replace-association-on-target
    

    更改下列內容:

    • POLICY_NAME:要與虛擬私有雲網路建立關聯的全域網路政策名稱。
    • NETWORK_NAME:虛擬私有雲網路的名稱。

    如要進一步瞭解如何將全域網路防火牆政策連結至 VPC 網路,請參閱將政策連結至網路

    變更政策和規則的評估順序

    根據預設,Cloud Next Generation Firewall 會先評估虛擬私有雲防火牆規則,再評估全域網路防火牆政策。如要確保全域網路防火牆政策優先於虛擬私有雲端防火牆規則,請使用 compute networks update 指令變更規則評估順序。

    gcloud compute networks update NETWORK-NAME \
        --network-firewall-policy-enforcement-order=BEFORE_CLASSIC_FIREWALL
    

    NETWORK_NAME 替換為您的虛擬私有雲網路名稱。

    如要確認系統是否先評估全域網路防火牆政策,再評估虛擬私有雲防火牆規則,請使用 compute networks get-effective-firewalls 指令

    gcloud compute networks get-effective-firewalls NETWORK_NAME
    

    在上述指令的輸出內容中,如果 TYPE: network-firewall-policy 顯示在 TYPE: network-firewall 之前,系統會先評估全域網路防火牆政策。

    如要進一步瞭解政策和規則評估順序的變更,請參閱「變更政策和規則評估順序」。

    啟用防火牆規則記錄

    記錄有助於判斷防火牆規則是否正常運作。遷移工具建立新的全域網路防火牆政策時,會保留現有虛擬私有雲防火牆規則的記錄狀態。請確認全域網路防火牆政策中的規則已啟用記錄功能。如要啟用防火牆政策規則的記錄功能,請使用 compute network-firewall-policies rules update 指令

    gcloud compute network-firewall-policies rules update PRIORITY \
        --firewall-policy=POLICY_NAME \
        --enable-logging
        --global-firewall-policy
    

    更改下列內容:

    • PRIORITY:要更新的規則優先順序。
    • POLICY_NAME:要更新規則的全域網路防火牆政策名稱。

    測試全域網路防火牆政策

    刪除虛擬私有雲防火牆規則前,請先測試全域網路防火牆政策,確認政策規則是否能如預期運作,處理符合規則的任何流量。

    請執行下列步驟:

    1. 確認您已在虛擬私有雲防火牆規則和全域網路防火牆政策中啟用記錄功能。
    2. 變更規則評估順序,讓系統先評估全域網路防火牆政策,再評估虛擬私有雲防火牆規則。
    3. 監控記錄,確認全域網路防火牆政策的命中次數,以及虛擬私有雲防火牆規則是否遭到遮蔽。

    從網路中刪除虛擬私有雲防火牆規則

    Google 建議您先停用虛擬私有雲防火牆規則,再完全刪除這些規則。如果遷移工具建立的全球網路防火牆政策無法提供預期結果,您可以還原至這些規則。

    如要停用虛擬私有雲防火牆規則,請使用 compute firewall-rules update 指令

    gcloud compute firewall-rules update RULE_NAME --disabled
    

    請將 RULE_NAME 替換為要停用的 VPC 防火牆規則名稱。

    如要刪除虛擬私有雲防火牆規則,請使用 compute firewall-rules delete 指令

    gcloud compute firewall-rules delete RULE_NAME
    

    後續步驟