如果您的 Virtual Private Cloud (VPC) 防火墙规则不使用任何网络标记或服务账号,请执行以下任务,将 VPC 防火墙规则迁移到全局网络防火墙政策:
准备工作
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Compute Engine API.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Compute Engine API.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
- 确保您具有 Compute Security Admin 角色 (
roles/compute.securityAdmin
)。
评估您的环境
- 确定网络中现有的 VPC 防火墙规则的数量。
- 记下与每个 VPC 防火墙规则关联的优先级。
- 确保您拥有创建、关联、修改和查看全球网络防火墙政策所需的 Identity and Access Management (IAM) 角色和权限。
迁移 VPC 防火墙规则
评估环境后,使用 compute firewall-rules migrate
命令将 VPC 防火墙规则迁移到全球网络防火墙政策。
gcloud beta compute firewall-rules migrate \ --source-network=NETWORK_NAME \ --target-firewall-policy=POLICY_NAME
替换以下内容:
NETWORK_NAME
:包含您要迁移的 VPC 防火墙规则的 VPC 网络的名称。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
:包含您要迁移的 VPC 防火墙规则的 VPC 网络的名称。POLICY_NAME
:要在迁移期间创建的全球网络防火墙政策的名称。EXCLUSION_PATTERNS_FILE
:包含正则表达式的文件的名称,用于定义要从迁移中排除的 VPC 防火墙命名模式。请务必指定文件的完整路径。系统会跳过与指定模式匹配的防火墙规则。定义排除模式时,请考虑以下几点:
- 每个正则表达式都必须单独占一行,并代表一个防火墙命名模式。
- 正则表达式不包含任何前导或后续空格。
查看排除的防火墙规则
根据排除的防火墙规则命名格式,迁移工具不会迁移某些防火墙规则,例如 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
:包含您要迁移的 VPC 防火墙规则的 VPC 网络的名称。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-(.+)-(.+)
如需迁移与特定格式匹配的排除防火墙规则,请从导出列表中移除该格式,并使用 --exclusion-patterns-file
标志运行 gcloud beta compute
firewall-rules migrate
命令。
强制迁移并保留评估顺序
在迁移期间,如果排除的防火墙规则的评估顺序介于用户指定的防火墙规则的评估顺序之间,则迁移会失败。这是因为排除的防火墙规则不会被迁移,并且迁移工具无法在新网络防火墙政策中保留用户定义的规则的原始评估顺序。
例如,如果您的防火墙规则具有以下优先级,则迁移会失败。
- 优先级为 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
:包含您要迁移的 VPC 防火墙规则的 VPC 网络的名称。POLICY_NAME
:要在迁移期间创建的全球网络防火墙政策的名称。
查看新的全球网络防火墙政策
在将新的全球网络防火墙政策附加到 VPC 网络之前,Google 建议您先查看该政策,以确保迁移过程已准确完成。
验证防火墙政策规则配置,并检查是否已为每个规则正确迁移以下规则组成部分:
- 相对优先级
- 流量方向
- 对匹配项执行的操作
- 日志设置
- 目标参数
- 来源参数(适用于入站流量规则)
- 目的地参数(适用于出站流量规则)
- 协议和端口限制条件
如需详细了解防火墙政策规则的组成部分,请参阅防火墙政策规则。
迁移后的任务
如需激活和使用全球网络防火墙政策,您必须完成以下部分中介绍的迁移后任务。
将全球网络防火墙政策与您的网络相关联
迁移工具会根据现有的 VPC 防火墙规则创建全球网络防火墙政策。您必须手动将该政策与所需的 VPC 网络相关联,才能为该网络中的所有虚拟机激活政策规则。如需关联全球网络防火墙政策,请使用 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
:您要与 VPC 网络相关联的全局网络政策的名称。NETWORK_NAME
:您的 VPC 网络的名称。
如需详细了解如何将全球网络防火墙政策关联到 VPC 网络,请参阅将政策与网络关联。
更改政策和规则评估顺序
默认情况下,Cloud Next Generation Firewall 会先评估 VPC 防火墙规则,然后再评估全球网络防火墙政策。为确保全球网络防火墙政策优先于 VPC 防火墙规则,请使用 compute networks update
命令更改规则评估顺序。
gcloud compute networks update NETWORK-NAME \ --network-firewall-policy-enforcement-order=BEFORE_CLASSIC_FIREWALL
将 NETWORK_NAME
替换为您的 VPC 网络名称。
如需验证全球网络防火墙政策是否在 VPC 防火墙规则之前进行评估,请使用 compute networks get-effective-firewalls
命令。
gcloud compute networks get-effective-firewalls NETWORK_NAME
在上述命令的输出中,如果 TYPE: network-firewall-policy
显示在 TYPE: network-firewall
之前,则系统会先评估全球网络防火墙政策。
如需详细了解如何更改政策和规则评估顺序,请参阅更改政策和规则评估顺序。
启用防火墙规则日志记录
日志记录可帮助您确定防火墙规则是否按预期发挥作用。迁移工具在创建新的全球网络防火墙政策时会保留现有 VPC 防火墙规则的日志记录状态。确保已为全球网络防火墙政策内的规则启用日志记录。如需为防火墙政策规则启用日志记录,请使用 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
:您要更新规则的全球网络防火墙政策的名称。
测试全球网络防火墙政策
在删除 VPC 防火墙规则之前,请测试全球网络防火墙政策,以检查政策规则是否按照您的预期对与规则匹配的所有流量发挥作用。
执行以下操作:
- 确保您已在 VPC 防火墙规则和全局网络防火墙政策中启用日志记录。
- 更改规则评估顺序,以便全球网络防火墙政策在 VPC 防火墙规则之前进行评估。
- 监控日志,以验证全球网络防火墙政策是否有命中数,以及 VPC 防火墙规则是否被覆盖。
从您的网络中删除 VPC 防火墙规则
Google 建议您先停用 VPC 防火墙规则,然后再将其完全删除。如果迁移工具创建的全局网络防火墙政策未能提供预期结果,您可以恢复使用这些规则。
如需停用 VPC 防火墙规则,请使用 compute firewall-rules update
命令。
gcloud compute firewall-rules update RULE_NAME --disabled
将 RULE_NAME
替换为要停用的 VPC 防火墙规则的名称。
如需删除 VPC 防火墙规则,请使用 compute firewall-rules delete
命令。
gcloud compute firewall-rules delete RULE_NAME
后续步骤
- 详细了解迁移 VPC 防火墙规则。
- 迁移包含依赖项的 VPC 防火墙规则。