管理分层防火墙政策和规则

分层防火墙政策可让您对网络流量进行精细控制。本页面介绍了如何管理分层防火墙政策及其规则,以保护您的 Google Cloud 资源。

在阅读本页面之前,请确保您熟悉分层防火墙政策概览中所述的概念。如需查看分层防火墙政策实施的示例,请参阅分层防火墙政策示例

防火墙政策任务

本部分介绍了如何管理分层防火墙政策。

如需查看本部分所列任务所产生的操作的进度,请确保您的 IAM 主账号除了每项任务所需的权限或角色之外,还具有以下权限或角色。

描述政策

您可以查看分层防火墙政策的详细信息,包括政策规则和关联的规则属性。所有这些规则属性都计入规则属性配额。如需了解详情,请参阅每个防火墙政策表格中的“每个分层防火墙政策的规则属性”。

控制台

  1. 在 Google Cloud 控制台中,前往防火墙政策页面。

    转到“防火墙政策”

  2. 在项目选择器菜单中,选择您的组织 ID 或包含政策的文件夹。

  3. 点击您的政策。

gcloud

gcloud compute firewall-policies describe POLICY_NAME \
    --organization ORG_ID

列出政策

控制台

  1. 在 Google Cloud 控制台中,前往防火墙政策页面。

    转到“防火墙政策”

  2. 在项目选择器菜单中,选择您的组织 ID 或包含政策的文件夹。

    对于组织,与该组织关联的防火墙政策部分会显示关联政策。位于该组织的防火墙政策部分会列出该组织拥有的政策。

    对于文件夹,与该文件夹关联或由该文件夹继承的防火墙政策部分会显示与该文件夹关联或由该文件夹继承的政策。位于该文件夹的防火墙政策部分会列出该文件夹拥有的政策。

gcloud

gcloud compute firewall-policies list \
    [--organization ORG_ID | --folder FOLDER_ID]

列出资源的关联

控制台

  1. 在 Google Cloud 控制台中,前往防火墙政策页面。

    转到“防火墙政策”

  2. 在项目选择器菜单中,选择您的组织 ID 或包含政策的文件夹。

  3. 对于所选资源(组织或文件夹),系统会显示关联和继承的政策的列表。

gcloud

gcloud compute firewall-policies associations list \
    [--organization ORG_ID | --folder FOLDER_ID]

将政策从一个资源移动到另一个资源

移动政策只会更改政策的父级。更改政策的父级可能会改变以下情况:哪些 IAM 主账号可以在政策中创建和更新规则,以及哪些 IAM 主账号可以创建未来的关联。

移动政策不会更改任何现有政策关联或政策中规则的评估。

控制台

使用 Google Cloud CLI 执行此过程。

gcloud

运行以下命令,将分层防火墙政策移至组织:

gcloud compute firewall-policies move POLICY_NAME \
    --organization ORG_ID

运行以下命令,将分层防火墙政策移至组织中的文件夹:

gcloud compute firewall-policies move POLICY_NAME \
    --folder FOLDER_ID

替换以下内容:

  • POLICY_NAME:您要迁移的政策的简称或系统生成的名称
  • ORG_ID:政策要移至的组织的 ID
  • FOLDER_ID:政策要移至的文件夹 ID

更新政策说明

唯一可以更新的政策字段是说明字段。

控制台

  1. 在 Google Cloud 控制台中,前往防火墙政策页面。

    转到“防火墙政策”

  2. 在项目选择器菜单中,选择您的组织 ID 或包含政策的文件夹。

  3. 点击您的政策。

  4. 点击修改

  5. 修改说明。

  6. 点击保存

gcloud

gcloud compute firewall-policies update POLICY_NAME \
    --description DESCRIPTION \
    --organization ORG_ID

删除关联

如果您需要更改与组织或文件夹关联的分层防火墙政策,建议您关联新政策,而不是删除现有的关联政策。您只需一步即可关联新政策,这有助于确保分层防火墙政策始终与组织或文件夹相关联。

如需删除分层防火墙政策与组织或文件夹之间的关联,请按照本部分中提到的步骤操作。分层防火墙政策中的规则在关联被删除后不适用于新连接。

控制台

  1. 在 Google Cloud 控制台中,前往防火墙政策页面。

    转到“防火墙政策”

  2. 在项目选择器菜单中,选择您的组织 ID 或包含政策的文件夹。

  3. 点击您的政策。

  4. 点击关联标签页。

  5. 选择要删除的关联。

  6. 点击移除关联

gcloud

gcloud compute firewall-policies associations delete ASSOCIATION_NAME \
    --firewall-policy POLICY_NAME \
    --organization ORG_ID

删除政策

您必须先删除分层防火墙政策的所有关联,然后才能删除该政策。

控制台

  1. 在 Google Cloud 控制台中,前往防火墙政策页面。

    转到“防火墙政策”

  2. 在项目选择器菜单中,选择您的组织 ID 或包含政策的文件夹。

  3. 点击您要删除的政策。

  4. 点击关联标签页。

  5. 选择所有关联。

  6. 点击移除关联

  7. 移除所有关联后,点击删除

gcloud

使用以下命令删除政策:

gcloud compute firewall-policies delete POLICY_NAME \
    --organization ORG_ID

防火墙政策规则任务

本部分介绍了如何管理分层防火墙政策规则。

将规则从一个政策克隆到另一个政策

从目标政策中移除所有规则,并将其替换为来源政策中的规则。

控制台

  1. 在 Google Cloud 控制台中,前往防火墙政策页面。

    转到“防火墙政策”

  2. 在项目选择器菜单中,选择您的组织 ID 或包含政策的文件夹。

  3. 点击要从中复制规则的政策。

  4. 点击屏幕顶部的克隆

  5. 提供目标政策的名称。

  6. 可选:如果您想立即关联新政策,请点击继续以打开将政策与资源相关联部分。

  7. 点击克隆

gcloud

gcloud compute firewall-policies clone-rules POLICY_NAME \
    --source-firewall-policy=SOURCE_POLICY \
    --organization=ORG_ID \

替换以下内容:

  • POLICY_NAME:接收所复制规则的政策
  • SOURCE_POLICY:从中复制规则的政策;必须是资源的网址
  • ORG_ID:包含分层防火墙政策的组织 ID。

描述规则

控制台

  1. 在 Google Cloud 控制台中,前往防火墙政策页面。

    转到“防火墙政策”

  2. 在项目选择器菜单中,选择您的组织 ID 或包含政策的文件夹。

  3. 点击您的政策。

  4. 点击规则的优先级。

gcloud

gcloud compute firewall-policies rules describe PRIORITY \
    --firewall-policy=POLICY_NAME \
    --organization=ORG_ID

替换以下内容:

  • POLICY_NAME:包含新规则的分层防火墙政策的名称。
  • ORG_ID:包含分层防火墙政策的组织 ID。

列出政策中的所有规则

控制台

  1. 在 Google Cloud 控制台中,前往防火墙政策页面。

    转到“防火墙政策”

  2. 在项目选择器菜单中,选择您的组织 ID 或包含政策的文件夹。

  3. 点击您的政策。规则列在防火墙规则标签页中。

gcloud

gcloud compute firewall-policies list-rules POLICY_NAME \
    --organization=ORG_ID

替换以下内容:

  • POLICY_NAME:包含相应规则的分层防火墙政策的名称。
  • ORG_ID:包含分层防火墙政策的组织 ID。

更新规则

控制台

  1. 在 Google Cloud 控制台中,前往防火墙政策页面。

    转到“防火墙政策”

  2. 在项目选择器菜单中,选择包含分层防火墙政策的组织或文件夹。

  3. 点击包含要更新的规则的分层防火墙政策的名称。

  4. 点击规则的优先级。

  5. 点击修改

  6. 修改要更改的防火墙规则字段。如需了解各个字段的说明,请参阅以下内容之一:

  7. 点击保存

gcloud

gcloud compute firewall-policies rules update PRIORITY \
    --firewall-policy=POLICY_NAME \
    --organization ORG_ID \
    [...other flags that you want to modify...]

替换以下内容:

  • PRIORITY:唯一标识规则的优先级编号。
  • POLICY_NAME:包含规则的政策的名称。
  • ORG_ID:包含分层防火墙政策的组织 ID。

提供要修改的标志。如需了解标志说明,请参阅以下内容之一:

删除规则

从政策中删除规则会导致该规则不再适用于与该规则的目标建立的新连接。

控制台

  1. 在 Google Cloud 控制台中,前往防火墙政策页面。

    转到“防火墙政策”

  2. 在项目选择器菜单中,选择您的组织 ID 或包含政策的文件夹。

  3. 点击您的政策。

  4. 选择要删除的规则。

  5. 点击删除

gcloud

gcloud compute firewall-policies rules delete PRIORITY \
    --firewall-policy=POLICY_NAME \
    --organization=ORG_ID

替换以下内容:

  • PRIORITY:您要从政策中删除的规则的优先级。
  • POLICY_NAME:包含相应规则的分层防火墙政策的名称。
  • ORG_ID:包含分层防火墙政策的组织 ID。

获取网络的有效防火墙规则

您可以查看应用于 VPC 网络所有区域的所有分层防火墙政策规则、VPC 防火墙规则和全球网络防火墙政策规则。

控制台

  1. 在 Google Cloud 控制台中,前往 VPC 网络页面。

    进入 VPC 网络页面

  2. 点击要查看其防火墙政策规则的网络。

  3. 点击防火墙

  4. 展开每个防火墙政策以查看适用于此网络的规则。

gcloud

gcloud compute networks get-effective-firewalls NETWORK_NAME

NETWORK_NAME 替换为您要查看有效规则的网络。

您还可以在防火墙页面中查看网络的有效防火墙规则。

控制台

  1. 在 Google Cloud 控制台中,前往防火墙政策页面。

    转到“防火墙政策”

  2. 防火墙政策列在此项目继承的防火墙政策部分中。

  3. 点击每项防火墙政策以查看适用于此网络的规则。

获取虚拟机接口的有效防火墙规则

您可以查看适用于 Compute Engine 虚拟机的网络接口的所有防火墙规则(包括所有适用的防火墙政策和 VPC 防火墙规则)。

控制台

  1. 在 Google Cloud 控制台中,前往虚拟机实例页面。

    转到虚拟机实例

  2. 在项目选择器菜单中,选择包含虚拟机的项目。

  3. 点击虚拟机。

  4. 对于网络接口,请点击接口。

  5. 有效防火墙规则会显示在网络配置分析部分中的防火墙标签页中。

gcloud

gcloud compute instances network-interfaces get-effective-firewalls INSTANCE_NAME \
    [--network-interface INTERFACE] \
    [--zone ZONE]

替换以下内容:

  • INSTANCE_NAME:您要查看其有效规则的虚拟机;如果未指定接口,该命令会返回主要接口 (nic0) 的规则。
  • INTERFACE:您要查看其有效规则的虚拟机接口;默认值为 nic0
  • ZONE:虚拟机的可用区;如果已将所选可用区设置为默认可用区,则此行为可选。

问题排查

本部分包含您在创建分层防火墙政策时可能遇到的错误消息的说明。

  • FirewallPolicy may not specify a name. One will be provided.

    您不能指定政策名称。分层防火墙政策“名称”是创建政策时 Google Cloud 生成的数字 ID。但是,您可以在多种上下文中指定好友的简称

  • FirewallPolicy may not specify associations on creation.

    只有在创建分层防火墙政策后才能创建关联。

  • Can't move firewall policy to a different organization.

    分层防火墙政策移动必须位于同一个组织内。

  • The attachment already has an association. Please set the option of replacing existing association to true if you want to replace the old one.

    如果资源已附加分层防火墙政策,则附加操作将失败,除非替换现有关联的选项设置为 true。

  • Can't have rules with the same priorities.

    在分层防火墙政策中,规则的优先级必须是唯一的。

  • Direction must be specified for a firewall policy rule.

    通过直接发送 REST 请求创建分层防火墙政策规则时,必须指定规则的方向。如果使用 Google Cloud CLI 且未指定方向,则默认为 INGRESS

  • Can't specify enable_logging on a goto_next rule.

    具有 goto_next 操作的规则不允许使用防火墙日志记录,因为 goto_next 操作用于表示不同防火墙政策的评估顺序,并且不是终端操作(例如 ALLOW 或 DENY)。

  • Must specify at least one destination on Firewall policy rule.

    防火墙政策规则中的 layer4Configs 标志必须至少指定一个协议或协议和目标端口。

    如需详细了解如何对防火墙政策规则进行问题排查,请参阅 VPC 防火墙规则问题排查

后续步骤