创建防火墙端点和端点关联

防火墙端点是一种可用区级资源,可为网络流量提供第 7 层检查。创建防火墙端点以强制执行高级安全政策,例如入侵检测和防御。

创建防火墙端点后,请创建防火墙端点关联,以将该端点与同一可用区中的一个或多个 Virtual Private Cloud (VPC) 网络相关联。如果您在与 VPC 网络关联的防火墙政策中启用了第 7 层检查,匹配的流量将被透明地拦截并转发到防火墙端点。

您可以创建支持或不支持巨型帧的防火墙端点。如需了解防火墙端点支持的数据包大小,请参阅支持的数据包大小

本页面介绍如何使用 Google Cloud 控制台、Google Cloud CLI 或 Terraform 创建防火墙端点并将其与 Virtual Private Cloud (VPC) 网络相关联。

准备工作

在配置防火墙端点和关联之前,请完成以下操作:

角色与权限

如需获得创建防火墙端点所需的权限,请让您的管理员向您授予组织或项目的必要 Identity and Access Management (IAM) 角色。如需了解详情,请参阅管理访问权限

如需检查本页面中列出的操作的进度,请确保您的用户账号具有 Compute Network User (roles/compute.networkUser) 角色,该角色包含以下权限:

  • networksecurity.operations.get
  • networksecurity.operations.list

配额

如需查看防火墙端点和关联的配额,请参阅配额和限制

创建防火墙端点

您将在特定可用区中创建防火墙端点。为确保流量检查正常进行并避免路由失败,请在要检查的工作负载所在的可用区中创建防火墙端点。

您可以在组织级或项目级创建防火墙端点。组织级端点仅支持组织级安全配置文件组。项目级端点同时支持组织级和项目级安全配置文件组。

控制台

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

    进入“防火墙端点”

  2. 点击打开项目选择器,然后选择您的组织或项目。

  3. 如果您选择了组织,请点击创建组织级端点

    如果您已选择项目,请在位于此项目中的防火墙端点部分中,点击创建项目级端点

  4. 区域列表中,选择要创建防火墙端点的区域。

  5. 可用区列表中,选择要创建防火墙端点的可用区。

  6. 名称字段中,输入防火墙端点的名称。

  7. 如果您要创建组织级端点,请在结算项目列表中选择要用于结算防火墙端点的 Google Cloud 项目。

  8. 点击继续。系统会打开高级配置部分。

  9. 如需为端点启用 WildFire 支持,请选中启用 Wildfire预览版)复选框。

    1. 如果未接受所选项目的最终用户许可协议 (EULA),请点击同意并继续以接受 WildFire 专用 EULA。

    2. 可选:点击其他 Wildfire 配置列表,然后执行以下操作:

      • WildFire 区域列表中,选择相应区域。
      • 内容云区域列表中,选择相应区域。
      • 签名查找超时字段中,输入超时时长。
      • 签名查找超时操作列表中,选择 AllowDeny
      • 如需阻止 HTTP 部分响应,请选中阻止 HTTP 部分响应复选框。
      • 内嵌云分析最大时长字段中,输入时长。
      • 内嵌云分析超时操作列表中,选择 AllowDeny
      • 如需为 WildFire 内嵌云分析期间超时的文件启用日志生成功能,请选中启用提交超时日志记录复选框。
  10. 如果您希望端点支持巨型帧,请选中启用巨型帧支持复选框;否则,请清除此复选框。

  11. 点击继续

  12. 如果您想添加防火墙端点关联,请点击添加端点关联;否则,请跳过此步骤。

    1. 项目列表中,选择要创建防火墙端点关联的 Google Cloud 项目。
    2. 如果未为 Google Cloud 项目启用 Compute Engine API 或 Network Security API,请点击启用
    3. 网络列表中,选择要与防火墙端点关联的网络。
    4. TLS 检查政策列表中,选择要添加到此关联的 TLS 检查政策。
    5. 如需添加其他关联,请点击添加端点关联
  13. 点击创建

gcloud

如需创建防火墙端点,请使用 gcloud network-security firewall-endpoints create 命令

gcloud network-security firewall-endpoints create NAME \
    --organization ORGANIZATION_ID | --project PROJECT_ID \
    --location LOCATION \
    [--billing-project QUOTA_PROJECT_ID] \
    [--enable-jumbo-frames]

替换以下内容:

  • NAME:防火墙端点的名称。

  • ORGANIZATION_ID:组织 ID。使用此标志可创建组织级防火墙端点。

  • PROJECT_ID:项目 ID。 使用此标志可创建项目级防火墙端点。

  • LOCATION:用于创建端点的可用区。

  • QUOTA_PROJECT_ID:配额项目 ID。 此标志仅适用于组织级防火墙端点。

如需创建支持大小不超过 8,500 字节的巨型帧的防火墙端点,请使用可选的 --enable-jumbo-frames 标志。跳过此标志可创建不支持巨型帧的端点。如需了解防火墙端点支持的数据包大小,请参阅支持的数据包大小

如需创建支持 WildFire 的防火墙端点,请使用 gcloud beta network-security firewall-endpoints create 命令预览版):

gcloud beta network-security firewall-endpoints create NAME \
    --organization ORGANIZATION_ID | --project PROJECT_ID \
    --zone ZONE \
    --enable-jumbo-frames \
    --enable-wildfire \
    --wildfire-region=WILDFIRE_REGION \
    --content-cloud-region=CONTENT_CLOUD_REGION \
    --hold-for-wildfire-realtime-signature-lookup-timeout-ms=TIMEOUT_MS \
    --hold-for-wildfire-realtime-signature-lookup-timeout-action=ACTION \
    --wildfire-inline-cloud-analysis-timeout-ms=TIMEOUT_MS \
    --wildfire-inline-cloud-analysis-timeout-action=ACTION \
    --[no-]enable-wildfire-analysis-logging \
    --[no-]block-partial-http \
    --billing-project BILLING_PROJECT_ID

替换以下内容:

  • WILDFIRE_REGION:端点发送未知文件的地理区域。
  • CONTENT_CLOUD_REGION:端点使用的内容云区域。
  • TIMEOUT_MS:签名查找或内嵌分析的超时阈值(以毫秒为单位)。
  • ACTION:超时操作,必须为 AllowDeny
  • --[no-]enable-wildfire-analysis-logging:是否为超时事件启用日志记录。
  • --[no-]block-partial-http:选中此选项可禁止恢复已阻止的恶意 HTTP 文件下载。

如需将防火墙端点与 VPC 网络关联,请参阅创建防火墙端点关联

Terraform

使用 google_network_security_firewall_endpoint Terraform 资源

resource "google_network_security_firewall_endpoint" "default" {
  name               = "my-firewall-endpoint"
  parent             = "organizations/123456789"
  location           = "us-central1-a"
  billing_project_id = "my-project-name"
  enable_jumbo_frames = true
}

如需创建支持大小不超过 8,500 字节的巨型帧的防火墙端点,请将字段 enable_jumbo_frames 设置为 true。如需创建不支持巨型帧的防火墙端点,请将此字段设置为 false。如需了解防火墙端点支持的数据包大小,请参阅支持的数据包大小。 如需创建支持 WildFire 的防火墙端点,请将字段 enable_wildfire 设置为 True

如需了解如何应用或移除 Terraform 配置,请参阅基本 Terraform 命令

创建防火墙端点关联

防火墙端点关联可将防火墙端点与特定可用区中的 VPC 网络相关联。此关联可确保与相应可用区中关联网络的拦截规则匹配的流量由防火墙端点检查。

在创建关联之前,请确保您拥有防火墙端点

关联要求

配置端点关联时,请遵循以下要求:

  • 可用区限制:您必须在与防火墙端点相同的可用区中创建关联。为了有效检查流量,请在部署计算实例的可用区中创建关联。
  • 每个可用区一个端点:在单个可用区中,您可以将 VPC 网络与一个防火墙端点(项目级或组织级)相关联。不过,您可以将单个 VPC 网络与多个不同可用区中的不同防火墙端点相关联。
  • 跨项目关联:您可以将 VPC 网络与另一个项目中的防火墙端点相关联。如果您使用项目级端点,则端点的项目必须与 VPC 网络位于同一组织中。
  • 资源映射:关联是项目级资源。即使关联指向组织级防火墙端点,您也需要在部署了计算实例的特定项目中创建关联。

支持巨型帧的防火墙端点只能接受不超过 8,500 字节的数据包。或者,不支持巨型帧的防火墙端点只能接受不超过 1,460 字节的数据包。如果您需要入侵检测和防御服务、WildFire 或网址过滤服务,建议您将关联的 VPC 网络配置为使用 8,500 字节和 1,460 字节的最大传输单元 (MTU) 限制。如需了解详情,请参阅 支持的数据包大小

控制台

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

    进入“防火墙端点”

  2. 在项目选择器菜单中,选择您的 Google Cloud 项目。

  3. 点击创建端点关联

  4. 区域列表中,选择要创建防火墙端点关联的区域。

  5. 可用区列表中,选择要创建防火墙端点关联的可用区。

  6. 防火墙端点列表中,选择要添加到关联中的防火墙端点。

  7. 网络列表中,选择要添加到关联中的网络。

  8. TLS 检查政策列表中,选择要添加到此关联的 TLS 检查政策。

  9. 点击创建

gcloud

如需创建防火墙端点关联,请使用 gcloud network-security firewall-endpoint-associations create 命令

组织级防火墙端点

gcloud network-security firewall-endpoint-associations \
    create NAME \
    --endpoint organizations/ORGANIZATION_ID/locations/LOCATION/firewallEndpoints/FIREWALL_ENDPOINT_NAME \
    --network projects/PROJECT_NAME/global/networks/NETWORK_NAME \
    --location LOCATION \
    --project PROJECT_ID \
    [ --tls-inspection-policy projects/TLS_PROJECT_NAME/locations/REGION_NAME/tlsInspectionPolicies/TLS_POLICY_NAME ]

项目级防火墙端点

gcloud network-security firewall-endpoint-associations \
    create NAME \
    --endpoint projects/ENDPOINT_PROJECT_ID/locations/LOCATION/firewallEndpoints/FIREWALL_ENDPOINT_NAME \
    --network projects/PROJECT_NAME/global/networks/NETWORK_NAME \
    --location LOCATION \
    --project PROJECT_ID \
    [ --tls-inspection-policy projects/TLS_PROJECT_NAME/locations/REGION_NAME/tlsInspectionPolicies/TLS_POLICY_NAME ]

替换以下内容:

  • NAME:防火墙端点关联的名称。

  • ORGANIZATION_ID:防火墙端点所在的组织 ID。此标志仅适用于组织级防火墙端点。

  • ENDPOINT_PROJECT_ID:防火墙端点所在的项目 ID。此标志仅适用于项目级防火墙端点。

  • LOCATION:防火墙端点所在的可用区。

  • FIREWALL_ENDPOINT_NAME:防火墙端点的名称。

  • PROJECT_NAME:网络的 Google Cloud 项目名称。

  • NETWORK_NAME:网络的名称。

  • PROJECT_ID:创建关联的 Google Cloud 项目 ID。这应该是您要拦截流量的项目。

  • TLS_PROJECT_NAME:TLS 检查政策的 Google Cloud 项目名称。

  • REGION_NAME:TLS 检查政策的区域名称。

  • TLS_POLICY_NAME:TLS 检查政策的名称。

    此政策用于对指定网络上的加密流量进行 TLS 检查。这是一个可选参数。

后续步骤