本文档介绍了如何使用 Google Cloud 控制台、Google Cloud CLI 或 Terraform 创建防火墙端点并将其与 Virtual Private Cloud (VPC) 网络相关联。
如需控制网络流量并保护虚拟机 (VM) 实例,您需要配置防火墙端点和端点关联。创建防火墙端点后,您需要创建可用区级关联,以将该端点与同一可用区中的一个或多个 VPC 网络关联。
本文档适用于配置网络安全和防火墙端点的网络管理员、安全工程师和安全架构师。
准备工作
在配置防火墙端点和关联之前,请完成以下操作:
- 查看防火墙端点概览中的概念。
- 确保您有 VPC 网络和子网。
- 启用所需的 API:
- 在 Google Cloud 项目中启用 Compute Engine API。
- 在要用于结算的 Google Cloud 项目中启用 网络安全 API。
- 在 Google Cloud 项目中启用 Certificate Authority Service API。
- 如果您要运行
gcloud命令行示例,请安装 gcloud CLI。
角色与权限
如需获得创建防火墙端点所需的权限,请让您的管理员向您授予组织或项目的必要 Identity and Access Management (IAM) 角色。如需了解详情,请参阅管理对项目、文件夹和组织的访问权限。
如需检查本页面中列出的操作的进度,请确保您的用户账号具有 Compute Network User (roles/compute.networkUser) 角色,该角色包含以下权限:
networksecurity.operations.getnetworksecurity.operations.list
配额
如需查看防火墙端点和关联的配额,请参阅配额和限制。
创建防火墙端点
您可以在特定可用区中创建防火墙端点。为确保正确检查流量并避免路由失败,请在要检查的工作负载所在的可用区中创建防火墙端点。
您可以在组织级层或项目级层创建防火墙端点。 组织级端点仅支持组织级安全配置文件组。项目级端点支持组织级和项目级安全配置文件组。
您可以创建支持或不支持巨型帧的防火墙端点。如需了解防火墙端点支持的数据包大小,请参阅支持的数据包大小。
控制台
在 Google Cloud 控制台中,前往防火墙端点页面。
点击打开项目选择器,然后选择您的组织或项目。
如果您选择了组织,请点击创建组织级端点。
如果您选择了项目,请在位于此项目中的防火墙端点部分中,点击创建项目级端点。
在区域列表中,选择要创建防火墙端点的区域。
在可用区列表中,选择要创建防火墙端点的可用区。
在名称字段中,输入防火墙端点的名称。
如果您要创建组织级端点,请在结算项目列表中选择要用于结算防火墙端点的 Google Cloud 项目。
点击继续。高级配置部分随即打开。
如需为端点启用高级恶意软件沙盒支持,请选中启用高级恶意软件沙盒 (WildFire) 复选框。
如果所选项目未接受最终用户许可协议 (EULA),请点击接受以接受高级恶意软件沙盒专用 EULA。
可选:点击其他高级恶意软件沙盒配置列表,然后执行以下操作:
- 在 WildFire 区域列表中,选择相应区域。
- 在内容云区域列表中,选择相应区域。
- 在签名查找超时(毫秒)字段中,输入
1到5000毫秒之间的超时时长(默认值为1000)。 - 在签名查找超时操作列表中,选择
Allow或Deny。 - 如需阻止 HTTP 部分响应,请选中阻止 HTTP 部分响应复选框。
- 在内嵌云分析最大时长(秒)字段中,输入时长。
- 在内嵌云分析超时操作列表中,选择
Allow或Deny。 - 如需为高级恶意软件沙盒内嵌云分析期间出现超时的文件启用日志生成功能,请选中启用提交超时日志记录复选框。
如果您希望端点支持巨型帧,请选中启用巨型帧支持复选框;否则,请清除此复选框。
点击继续。
如果您要添加防火墙端点关联,请点击添加端点关联;否则,请跳过此步骤。
- 在项目列表中,选择您要在其中创建防火墙端点关联的 Google Cloud 项目。
- 如果未为 Google Cloud 项目启用 Compute Engine API 或网络安全 API,请点击启用。
- 在网络列表中,选择要与防火墙端点关联的网络。
- 在 TLS 检查政策列表中,选择要添加到此关联的 TLS 检查政策。
- 如需添加其他关联,请点击添加端点关联。
点击创建。
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] \
[--enable-wildfire] \
[--wildfire-region=WILDFIRE_REGION] \
[--content-cloud-region=CONTENT_CLOUD_REGION] \
[--wildfire-lookup-timeout=LOOKUP_TIMEOUT_MS] \
[--wildfire-lookup-action=ACTION] \
[--wildfire-analysis-timeout=ANALYSIS_TIMEOUT_MS] \
[--wildfire-analysis-action=ACTION] \
[--[no-]enable-wildfire-analysis-logging] \
[--[no-]block-partial-http]
替换以下内容:
NAME:防火墙端点的名称。ORGANIZATION_ID:组织 ID。使用此标志可创建组织级防火墙端点。PROJECT_ID:项目 ID。 使用此标志可创建项目级防火墙端点。LOCATION:要在其中创建端点的可用区。QUOTA_PROJECT_ID:配额项目 ID。 此标志仅适用于组织级防火墙端点。WILDFIRE_REGION:启用高级恶意软件沙盒后,端点将未知文件发送到的地理区域。CONTENT_CLOUD_REGION:启用高级恶意软件沙盒后,端点使用的内容云区域。LOOKUP_TIMEOUT_MS:启用高级恶意软件沙盒时,实时签名查找的超时阈值,范围为1到5000毫秒(默认值为1000)。ANALYSIS_TIMEOUT_MS:启用高级恶意软件沙盒后,内嵌云分析的超时阈值,范围为1000到240000毫秒(默认值为30000)。ACTION:启用高级恶意软件沙盒后,签名查找或内嵌云分析的超时操作;有效值为ALLOW和DENY。
如需创建支持大小不超过 8,500 字节的巨型帧的防火墙端点,请使用可选的 --enable-jumbo-frames 标志。跳过此标志可创建不支持巨型帧的端点。如需了解防火墙端点支持的数据包大小,请参阅支持的数据包大小。
如需创建支持高级恶意软件沙盒的防火墙端点,请使用可选的 --enable-wildfire 标志。您还可以指定可选的高级恶意软件沙盒配置标志,例如 --[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。如需了解防火墙端点支持的数据包大小,请参阅支持的数据包大小。如需创建支持高级恶意软件沙盒的防火墙端点,请将 enable_wildfire 字段设置为 true。
如需了解如何应用或移除 Terraform 配置,请参阅基本 Terraform 命令。
创建防火墙端点关联
防火墙端点关联可将防火墙端点与特定可用区中的 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/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 检查。这是一个可选参数。