配置全球网络防火墙政策以允许流向 FQDN 的出站流量

了解如何使用 Google Cloud 控制台创建和配置全球网络防火墙政策,以允许流向特定完全限定域名 (FQDN) 的出站流量。防火墙政策会阻止源自您的网络的所有其他出站流量。本快速入门创建包含子网的 Virtual Private Cloud (VPC) 网络,在 VPC 网络中创建虚拟机 (VM) 实例,设置使用出站流量规则的防火墙政策,然后测试虚拟机中的防火墙政策。

准备工作

  1. 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.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Make sure that billing is enabled for your Google Cloud project.

  4. Enable the Compute Engine and Identity-Aware Proxy (IAP) APIs.

    Enable the APIs

  5. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  6. Make sure that billing is enabled for your Google Cloud project.

  7. Enable the Compute Engine and Identity-Aware Proxy (IAP) APIs.

    Enable the APIs

  8. 确保您具有 Compute Network Admin 角色 (roles/compute.networkAdmin)。

创建包含 IPv4 子网的自定义 VPC 网络

创建包含 IPv4 子网的自定义模式 VPC 网络。

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

    进入 VPC 网络页面

  2. 点击创建 VPC 网络

  3. 对于名称,输入 vpc-fw-policy-egress

  4. 对于子网创建模式,选择自定义

  5. 新子网部分中,为子网指定以下配置参数:

    • 名称:输入 subnet-1
    • 区域:选择 us-central1
    • IPv4 范围:输入 10.0.0.0/24
  6. 点击完成

  7. 点击创建

创建虚拟机

在上一部分中配置的子网中创建虚拟机。

  1. 在 Google Cloud 控制台中,转到创建实例页面。

    转到“创建实例”

  2. 对于名称,输入 instance-1-us

  3. 对于区域,请选择 us-central1 (Iowa)

  4. 展开高级选项,然后展开网络

  5. 网络接口部分中,展开现有网络接口并指定以下配置参数:

    • 网络:选择 vpc-fw-policy-egress
    • 子网:选择 subnet-1 IPv4 (10.0.0.0/24)
    • 外部 IPv4 地址:选择
  6. 点击完成

  7. 点击创建

创建 Cloud Router 路由器和 Cloud NAT 网关

在上一部分中,您创建了一个没有任何外部 IP 地址的虚拟机。如需使该虚拟机能够访问公共互联网,请为创建虚拟机所在的同一区域和子网创建 Cloud Router 路由器和 Cloud NAT 网关。

  1. 在 Google Cloud 控制台中,转到 Cloud NAT 页面。

    转到 Cloud NAT

  2. 点击开始使用创建 Cloud NAT 网关

    注意:如果这是您创建的第一个 Cloud NAT 网关,请点击开始。如果您已有网关,Google Cloud 会显示创建 Cloud NAT 网关按钮。如需创建其他网关,请点击创建 Cloud NAT 网关

  3. 对于网关名称,输入 fw-egress-nat-gw

  4. NAT 类型列表中,选择公共

  5. 选择 Cloud Router 路由器部分中,指定以下配置参数:

    • 网络:选择 vpc-fw-policy-egress
    • 区域:选择 us-central1(爱荷华)
    • Cloud Router:点击创建新路由器
      1. 对于名称,输入 fw-egress-router
      2. 点击创建
  6. 点击创建

创建全球网络防火墙政策以启用 IAP

如需为网络中的虚拟机启用 Identity-Aware Proxy,请创建全球网络防火墙政策并向该政策添加防火墙规则。IAP 允许对虚拟机的管理员权限。

该防火墙规则必须具有以下特征:

  • 应用于您希望可以使用 IAP TCP 转发访问的所有虚拟机。
  • 允许 IP 地址范围 35.235.240.0/20 的入站流量。此范围包含 IAP 用于 TCP 转发的所有 IP 地址。
  • 允许与您希望可以使用 IAP TCP 转发访问的所有端口(例如,用于 SSH 的端口 22)的连接。

如需启用对 vpc-fw-policy-egress 网络中的所有虚拟机的 IAP 访问,请按照以下步骤操作:

  1. 在 Google Cloud 控制台中,转到防火墙页面。

    转到“防火墙政策”

  2. 点击创建防火墙政策

  3. 配置政策部分的政策名称中,输入 fw-egress-policy

  4. 部署范围列表中,选择全局,然后点击继续

  5. 如需为政策创建规则,请在添加规则部分中点击添加规则

    1. 优先级字段中,输入 100
    2. 对于流量方向,选择入站
    3. 对于对匹配项执行的操作,选择允许
    4. 日志列表中,选择开启
    5. 目标部分的目标类型中,选择网络中的所有实例
    6. 来源部分的 IP 范围中,输入 35.235.240.0/20
    7. 协议和端口部分中,选择指定的协议和端口
    8. 选中 TCP 复选框,在端口字段中,输入 22
    9. 点击创建
  6. 点击继续

  7. 如需将 VPC 网络与政策关联,请在将政策与 VPC 网络关联部分中,点击关联

  8. 选中 vpc-fw-policy-egress 复选框,然后点击关联

  9. 点击继续

  10. 点击创建

添加防火墙规则以拒绝流向所有目的地的出站流量

如需拒绝流向所有目的地的出站流量,请向 fw-egress-policy 添加防火墙规则。

  1. 在 Google Cloud 控制台中,转到防火墙页面。

    转到“防火墙政策”

  2. 网络防火墙政策部分中,点击 fw-egress-policy

  3. 点击创建规则

  4. 优先级字段中,输入 700

  5. 流量方向列表中,选择出站

  6. 对匹配项执行的操作部分,选择拒绝

  7. 日志列表中,选择开启

  8. 目的地部分的 IP 范围中,输入 0.0.0.0/0

  9. 点击创建

添加防火墙规则以仅允许流向特定 FQDN 的出站流量

如需仅允许流向特定 FQDN (ads.google.com) 的出站流量,请在 fw-egress-policy 中添加防火墙规则。

  1. 在 Google Cloud 控制台中,转到防火墙页面。

    转到“防火墙政策”

  2. 网络防火墙政策部分中,点击 fw-egress-policy

  3. 点击创建规则

  4. 优先级字段中,输入 600

  5. 流量方向列表中,选择出站

  6. 对于对匹配项执行的操作,选择允许

  7. 日志列表中,选择开启

  8. 目标部分中,为 FQDN 输入 ads.google.com

  9. 点击创建

测试全球网络防火墙政策

配置全球网络防火墙政策后,请按照以下步骤操作来测试政策:

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

    转到虚拟机实例

  2. instance-1-us 虚拟机实例的连接列中,点击 SSH

  3. SSH-in-browser 对话框中,点击授权并等待连接建立。

  4. 如需验证是否允许流向 https://ads.google.com 的出站流量,请运行以下命令:

      curl -I https://ads.google.com
    

    上述命令会返回 https://ads.google.com 的标头信息,这意味着允许出站连接。

  5. 如需验证出站流量是否被阻止流向任何其他目的地,请指定任何 FQDN 并运行以下命令:

      curl -m 2 -I https://mail.yahoo.com
    

    上述命令会返回 Connection timed out 消息,这是正常的,因为您创建了防火墙规则,以拒绝流向除 https://ads.google.com 之外的所有目的地的出站流量。

查看日志

您可以通过访问日志来验证防火墙规则是否已应用于出站流量。如需查看日志详细信息,请按以下步骤操作:

  1. 在 Google Cloud 控制台中,转到防火墙页面。

    转到“防火墙政策”

  2. 网络防火墙政策部分中,点击 fw-egress-policy

  3. 命中数列中,点击您在创建全球网络防火墙政策部分中创建的规则对应的数字。Logs Explorer 页面随即会打开。

  4. 如需查看应用于出站流量的防火墙规则,请展开单个日志。您可以通过展开相关部分来查看连接、处理方式、远程位置和规则详细信息。

清理

为避免因本快速指南中使用的资源导致您的 Google Cloud 账号产生费用,请删除包含这些资源的项目,或者保留项目但删除各个资源。

要删除在本快速入门中创建的资源,请完成以下任务。

删除防火墙政策

  1. 在 Google Cloud 控制台中,转到防火墙页面。

    转到“防火墙政策”

  2. 网络防火墙政策部分中,点击 fw-egress-policy

  3. 点击关联标签页。

  4. 选中 vpc-fw-policy-egress 复选框,然后点击移除关联

  5. 移除防火墙政策关联对话框中,点击移除

  6. 点击删除

  7. 删除防火墙政策对话框中,点击删除

删除虚拟机

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

    转到虚拟机实例

  2. 选中 instance-1-us 虚拟机对应的复选框。

  3. 点击删除

  4. 删除 instance-1-us 对话框中,点击删除

删除 Cloud NAT 网关和 Cloud Router 路由器

  1. 在 Google Cloud 控制台中,前往 Cloud Router 路由器页面。

    前往“Cloud Router 路由器”

  2. 选择 fw-egress-router 对应的复选框。

  3. 点击删除

  4. 删除 fw-egress-router 对话框中,点击删除

删除 Cloud Router 路由器时,关联的 Cloud NAT 网关也会被删除。

删除 VPC 网络及其子网

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

    进入 VPC 网络页面

  2. 名称列中,点击 vpc-fw-policy-egress

  3. 点击删除 VPC 网络

  4. 删除网络对话框中,点击删除

删除 VPC 网络时,其子网也会被删除。

后续步骤