本页面介绍如何使用Google Cloud 控制台、Google Cloud CLI 或 Terraform 配置防火墙端点并将其与 Virtual Private Cloud (VPC) 网络相关联。
您可以在可用区级层创建防火墙端点,然后将其与同一可用区中的一个或多个 VPC 网络关联。如果您在与 VPC 网络关联的防火墙政策中启用了第 7 层检查,匹配的流量将被透明地拦截并转发到防火墙端点。
您可以创建支持或不支持巨型帧的防火墙端点。如需了解防火墙端点支持的数据包大小,请参阅支持的数据包大小。
准备工作
在配置防火墙端点和关联之前,请完成以下操作:
- 确保您拥有 VPC 网络和子网。
- 启用所需的 API:
- 在 Google Cloud 项目中启用 Compute Engine API (Compute Engine API)。
- 在要用于结算的 Google Cloud 项目中启用 Network Security API。
- Certificate Authority Service API。 Google Cloud
- 如果您要运行
gcloud命令行示例,请安装 gcloud CLI。
角色与权限
如需获得创建防火墙端点所需的权限,请让您的管理员向您授予组织或项目的必要 Identity and Access Management (IAM) 角色。如需了解详情,请参阅管理访问权限。
如需检查本页面中列出的操作的进度,请确保您的用户账号具有 Compute Network User (roles/compute.networkUser) 角色,该角色包含以下权限:
networksecurity.operations.getnetworksecurity.operations.list
配额
如需查看防火墙端点和关联的配额,请参阅配额和限制。
创建防火墙端点
在特定可用区中创建防火墙端点。
组织级端点
您可以在组织级层创建防火墙端点。这些端点仅支持组织级安全配置文件组。
控制台
在 Google Cloud 控制台中,前往防火墙端点页面。
在项目选择器菜单中,选择您的组织。
点击创建。
在区域列表中,选择要创建防火墙端点的区域。
在可用区列表中,选择要创建防火墙端点的可用区。
在名称字段中输入名称。
在结算项目列表中,选择要用于结算防火墙端点的 Google Cloud 项目。
点击继续。
如果您希望端点支持巨型帧,请选中启用巨型帧支持复选框;否则,请清除此复选框。
点击继续。
如果您想添加防火墙端点关联,请点击添加端点关联;否则,请跳过此步骤。
- 在项目列表中,选择要创建防火墙端点关联的 Google Cloud 项目。
- 如果未为 Google Cloud 项目启用 Compute Engine API 或 Network Security API,请点击启用。
- 在网络列表中,选择要与防火墙端点关联的网络。
- 在 TLS 检查政策列表中,选择要添加到此关联的 TLS 检查政策。
- 如需添加其他关联,请点击添加端点关联。
点击创建。
gcloud
如需创建防火墙端点,请使用 gcloud network-security
firewall-endpoints create 命令:
gcloud network-security firewall-endpoints create NAME \
--organization ORGANIZATION_ID \
--zone ZONE \
--enable-jumbo-frames \
--billing-project BILLING_PROJECT_ID
替换以下内容:
NAME:防火墙端点的名称。ORGANIZATION_ID:激活端点的组织。ZONE:激活端点的可用区。BILLING_PROJECT_ID:用于防火墙端点结算的 Google Cloud 项目 ID。
如需创建支持大小不超过 8,500 字节的巨型帧的防火墙端点,请使用可选的 --enable-jumbo-frames 标志。跳过此标志可创建不支持巨型帧的端点。如需了解防火墙端点支持的数据包大小,请参阅支持的数据包大小。
如需将防火墙端点与 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。如需了解防火墙端点支持的数据包大小,请参阅支持的数据包大小。
如需了解如何应用或移除 Terraform 配置,请参阅基本 Terraform 命令。
项目级端点
您可以在项目级层创建防火墙端点。这些端点同时支持组织级和项目级安全配置文件组。
gcloud
如需创建防火墙端点,请使用 gcloud beta network-security
firewall-endpoints create 命令:
gcloud beta network-security firewall-endpoints create NAME \
--project PROJECT_ID \
--zone ZONE \
--enable-jumbo-frames
替换以下内容:
NAME:防火墙端点的名称。PROJECT_ID:激活端点的项目。ZONE:激活端点的可用区。
如需创建支持大小不超过 8,500 字节的巨型帧的防火墙端点,请使用可选的 --enable-jumbo-frames 标志。跳过此标志可创建不支持巨型帧的端点。如需了解防火墙端点支持的数据包大小,请参阅支持的数据包大小。
如需将防火墙端点与 VPC 网络关联,请参阅创建防火墙端点关联。
创建防火墙端点关联
防火墙端点关联可将防火墙端点与特定可用区中的 VPC 网络相关联。此关联可确保与相应可用区中关联网络的拦截规则匹配的流量由防火墙端点检查。
在创建关联之前,请确保您拥有防火墙端点。
关联要求
配置端点关联时,请遵循以下要求:
- 可用区限制:您必须在与防火墙端点相同的可用区中创建关联。为了有效地检查流量,请在部署计算实例的可用区中创建关联。
- 每个可用区一个端点:在单个可用区中,您只能将一个 VPC 网络与一个防火墙端点(项目级(预览版)或组织级)相关联。不过,您可以将单个 VPC 网络与多个不同可用区中的不同防火墙端点相关联。
- 跨项目关联:您可以将 VPC 网络与另一个项目中的防火墙端点相关联。
- 如果您使用项目级端点(预览版),则端点的项目必须与 VPC 网络位于同一组织中。
- 资源映射:关联是项目级资源。即使关联指向组织级防火墙端点,您也可以在部署了计算实例的特定项目中创建关联。
支持巨型帧的防火墙端点只能接受不超过 8,500 字节的数据包。或者,不支持巨型帧的防火墙端点只能接受大小不超过 1,460 字节的数据包。如果您需要网址过滤服务或入侵检测和防御服务,建议您将关联的 VPC 网络配置为使用 8,500 字节和 1,460 字节的最大传输单元 (MTU) 限制。如需了解详情,请参阅 支持的数据包大小。
控制台
在 Google Cloud 控制台中,前往防火墙端点页面。
在项目选择器菜单中,选择您的 Google Cloud 项目。
点击创建端点关联。
在区域列表中,选择要创建防火墙端点关联的区域。
在可用区列表中,选择要创建防火墙端点关联的可用区。
在防火墙端点列表中,选择要添加到关联中的防火墙端点。
在网络列表中,选择要添加到关联中的网络。
在 TLS 检查政策列表中,选择要添加到此关联的 TLS 检查政策。
点击创建。
gcloud
如需创建防火墙端点关联,请使用 gcloud network-security firewall-endpoint-associations create 命令。
组织级防火墙端点
gcloud network-security firewall-endpoint-associations \
create NAME \
--endpoint organizations/ORGANIZATION_ID/locations/ZONE/firewallEndpoints/FIREWALL_ENDPOINT_NAME \
--network projects/PROJECT_NAME/global/networks/NETWORK_NAME \
--zone ZONE \
--project PROJECT_ID \
[ --tls-inspection-policy projects/TLS_PROJECT_NAME/locations/REGION_NAME/tlsInspectionPolicies/TLS_POLICY_NAME ]
项目级防火墙端点
gcloud beta network-security firewall-endpoint-associations \
create NAME \
--endpoint projects/ENDPOINT_PROJECT_ID/locations/ZONE/firewallEndpoints/FIREWALL_ENDPOINT_NAME \
--network projects/PROJECT_NAME/global/networks/NETWORK_NAME \
--zone ZONE \
--project PROJECT_ID \
[ --tls-inspection-policy projects/TLS_PROJECT_NAME/locations/REGION_NAME/tlsInspectionPolicies/TLS_POLICY_NAME ]
替换以下内容:
NAME:防火墙端点关联的名称。ORGANIZATION_ID:在其中创建组织级防火墙端点的组织的标识符。ENDPOINT_PROJECT_ID:在其中创建项目级防火墙端点的 Google Cloud 项目 ID。ZONE:防火墙端点的可用区。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 检查。这是一个可选参数。