本文档提供了架构最佳实践,以在 Cloud 新一代防火墙 (Cloud NGFW) 中设计、管理和强制执行安全标记。 安全标记通过将防火墙规则评估绑定到 Workload Identity(而不是动态 IP 地址),提供了一种身份感知型网络安全方法。安全标记是 Cloud Next Generation Firewall 基本功能版层级中包含的一项基础功能,并且在所有 Cloud NGFW 层级中都受支持。本指南适用于设计和维护云网络安全政策的网络架构师、安全管理员和 DevOps 工程师。
本文档将最佳实践分为安全标记生命周期的四个关键阶段:
- 设计标记架构:将标记与工作负载 身份对齐,配置微细分,并保持标记粗粒度,以 避免超出安全标记配额限制。
- 配置访问权限控制和治理:建立 Identity and Access Management (IAM) 职责分离,选择适当的范围, 并在虚拟机预配期间强制执行标记。
- 设计防火墙政策和规则逻辑: 优化规则评估,配置分层政策,并实现 安全的默认拒绝规则。
- 保护、监控和审核:通过标记保留来防止意外 删除,启用防火墙日志记录,并定期执行访问 审核。
在使用本指南之前,请确保您熟悉 防火墙安全标记概览 和 Cloud NGFW 概览。
最佳实践摘要
下表总结了安全标记生命周期的核心最佳实践:
| 生命周期阶段 | 重要建议 | 说明 |
|---|---|---|
| 标记架构设计 | 将标记与 Workload Identity 对齐 | 按工作负载角色(例如 env/prod 或 tier/database)定义标记键,
强制执行互斥值,并保持标记粗粒度,以保持在配额限制内。 |
| 访问权限控制和治理 | 强制执行职责分离 | 仅向
安全团队授予 roles/resourcemanager.tagAdmin 角色,将
部署流水线限制为 roles/resourcemanager.tagUser 角色,并选择正确的范围
(organization=auto 与 network)。 |
| 虚拟机预配 | 在创建时强制执行标记 | 在预配期间将安全标记绑定到虚拟机网络接口,并使用 组织政策要求所有新实例都使用标记。 |
| 政策架构 | 指定目标安全标记 | 在防火墙规则中使用目标安全标记,以实现静态评估性能。 在分层政策中配置默认拒绝规则,以保护未标记的 资源。 |
| 跨网络安全 | 保护跨虚拟私有云 (VPC) 连接 | 在对等互连的 VPC 网络 和 Network Connectivity Center (NCC) spoke 之间维护身份边界,而无需管理静态 CIDR 块。 |
| 保护和监控 | 保护和监控标记 | 应用标记保留以防止意外删除,启用防火墙规则日志记录 以进行问题排查,并定期审核 IAM 分配。 |
设计标记架构
结构良好的标记架构可简化防火墙规则、简化安全审核并防止政策冲突。
将标记与 Workload Identity 对齐
围绕不同的工作负载角色、应用层级或法规分类设计安全标记键:
- 环境层级:
env/prod、env/staging、env/dev - 应用层级:
tier/frontend、tier/backend、tier/database - 合规性状态:
scope/pci-dss、scope/hipaa
示例:三层应用微细分
一个典型的三层 Web 应用由 Web 前端 、一个 应用后端 和一个 数据库 组成。为了保护数据库免遭未经授权的访问,您可以使用安全标记来强制执行网络微细分,以便每个层级只能与其相邻的层级通信:
[ Web Tier (tag: tier/frontend) ]
|
| Allow port 8080 (Web can communicate with App)
v
[ App Tier (tag: tier/backend) ]
|
| Allow port 5432 (App can communicate with DB)
v
[ Database Tier (tag: tier/database) ]
如需强制执行此流程,请配置两条防火墙政策规则:
- 规则 1(Web 到应用):允许端口
8080上的入站流量,其中来源标记为tier/frontend,目标标记为tier/backend。 - 规则 2(应用到数据库):允许端口
5432上的入站流量,其中来源标记为tier/backend,目标标记为tier/database。
结果: Web 前端无法直接与
数据库层级通信,因为没有防火墙规则允许
tier/frontend 和 tier/database 之间的流量。即使虚拟机实例共享相同的 IP 子网,Cloud NGFW 也会自动强制执行此
边界。
从网络标记迁移到安全标记
从 VPC 网络标记升级到防火墙安全标记时,请注意以下架构差异:
| 能力 | 网络标记(VPC 规则) | 安全标记(防火墙政策) |
|---|---|---|
| 目标规范 | targetTags = ["web-tier"] |
targetSecureTags = ["tagValues/1234567890"] |
| 来源规范 | sourceTags = ["db-client"] |
sourceSecureTags = ["tagValues/0987654321"] |
| 强制执行范围 | 仅限单个 VPC 网络 | 跨对等互连的 VPC 网络、NCC spoke、 和分层政策 |
| 路由支持 | 您可以使用网络标记作为静态路由的下一个跃点(也称为路由标记) | 您无法使用安全标记进行路由。仅将它们用于防火墙流量过滤。 |
| 访问权限控制 | 对单个标记没有 IAM 权限 | Resource Manager 和 IAM 角色严格控制标记访问和绑定 |
强制执行互斥标记值
确保资源为每个标记键接收一个值。例如,必须为虚拟机实例分配 env/prod 或 env/dev,但不能同时分配两者:
可以:分配单个环境标记 (
env/prod),并通过引用目标标记 (例如env/shared-logging)的显式防火墙规则允许访问 共享服务。**不可以**:在同一虚拟机上堆叠多个环境标记(
env/prod和env/dev)。这样做会使虚拟机与开发防火墙规则匹配,从而将生产资源暴露给开发者流量。
保持标记粗粒度,以保持在配额内
将类似的虚拟机实例分组到共享标记值下,而不是创建唯一的实例专用标记。粗粒度标记可让您的安全状况保持可管理状态,并防止您的组织超出安全标记配额限制。
规划标记架构时,请查看以下限制:
对于多 NIC 虚拟机,请使用标记而不是服务账号
我们建议在防火墙政策中使用安全标记而不是服务账号作为来源或目标。与服务账号不同,您可以将安全标记直接绑定到多宿主虚拟机的各个网络接口 (vNIC)。这种方法可让您对每个网络接口强制执行不同的网络政策。
配置访问权限控制和治理
IAM 管理安全标记,以提供严格的访问权限控制和明确的职责分离。
使用 IAM 角色分离职责
在创建标记的管理员与预配工作负载的团队之间建立运营边界:
- Tag Administrator (
roles/resourcemanager.tagAdmin) :仅向中央网络和安全管理员授予此角色,以创建、修改和删除标记键和值。 - 标记用户 (
roles/resourcemanager.tagUser) :在特定项目或资源范围内向自动 CI/CD 部署流水线或预配服务账号授予此角色,以将标记绑定到虚拟机网络接口。 - 标记查看者 (
roles/resourcemanager.tagViewer) :向需要对标记配置具有只读权限的运营和审核团队授予此角色。
防止自行标记和提升权限
- 可以:仅在项目或网络接口级别向经过审核的
基础设施即代码 (IaC) 部署流水线(例如 Terraform
google_tags_tag_binding工作流)授予roles/resourcemanager.tagUser。 - 不可以:广泛授予
roles/resourcemanager.tagUser给开发者组 在组织级别。这样可以防止开发者自行将生产标记(例如env/prod)附加到未经授权的开发工作负载。
适当确定标记键的范围
在与您的运营治理相匹配的资源层次结构级别定义安全标记键:
- 组织范围的标记 (
purpose-data=organization=auto) :在组织或文件夹级别定义键,以便跨多个 VPC 网络、对等互连的网络和分层防火墙政策进行集中式安全治理。 - 网络范围的标记 (
purpose-data=network) :仅用于项目级隔离,其中标记必须永久限制为单个 VPC 网络。
在虚拟机创建期间强制执行标记分配
在创建时将安全标记绑定到虚拟机网络接口可确保工作负载在启动时立即受到保护。
为了确保用户和自动流水线无法在没有 所需安全标记的情况下预配实例,请配置组织政策以 在资源创建时强制执行标记。 此政策会阻止创建未标记的、未受保护的虚拟机实例。
设计防火墙政策和规则逻辑
将安全标记集成到防火墙政策中,以优化规则评估并保持一致的保护。
使用分层防火墙政策进行集中强制执行
在组织或文件夹级别的分层防火墙政策中定义引用安全标记的防火墙规则。分层政策强制执行组织级治理,本地项目所有者无法覆盖此治理。
指定目标安全标记以提高效率
创建防火墙政策规则时,请尽可能指定目标安全标记 (targetSecureTags)。Cloud NGFW 对目标标记和来源标记的评估方式不同:
目标安全标记(静态匹配):具有目标标记的规则 静态应用于仅携带这些标记的虚拟机实例。这样可以减少在每个虚拟机上评估的规则数量,并提高性能。
来源安全标记(按连接动态匹配):仅指定来源标记 (
sourceSecureTags) 而不指定目标标记的规则会针对网络中所有虚拟机实例的每个连接进行动态评估,这会增加处理开销。
通过分层默认拒绝实现安全默认设置
由于虚拟机实例不会从父文件夹或组织继承 GCE_FIREWALL 安全标记,因此请通过在分层政策中定义安全回退规则来保护未标记的资源:
默认拒绝规则:在组织或文件夹级别创建低优先级规则(例如优先级
65000),该规则默认拒绝所有流量。条件允许规则:创建优先级较高的规则,这些规则仅允许在特定安全标记(例如
tier/frontend到tier/backend)之间传输流量。
如果创建的虚拟机实例没有标记或其标记已分离,则分层默认拒绝规则会自动阻止进出该实例的流量。
在对等互连的网络和 NCC 中使用安全标记
使用安全标记来控制通过 VPC 网络对等互连或 NCC VPC spoke连接的 VPC 网络之间的流量。 安全标记可在连接的网络之间维护身份感知边界,而无需您管理不断变化的 CIDR 块。
保护、监控和审核
持续的运营控制可确保您的安全标记配置保持安全和弹性。
使用标记保留来保护关键标记值
防止在删除使用中的标记时发生意外中断:
- 对关键安全标记值应用标记保留,以防止删除。
- 在将安全标记从虚拟机网络接口分离之前,请验证是否有任何活跃防火墙规则依赖于该安全标记。您必须先移除所有资源绑定(以及任何标记 保留) Cloud de Confiance by S3NS ,然后才能删除安全标记值。
启用防火墙规则日志记录
对使用安全标记的所有规则启用防火墙政策规则日志记录 。这些日志会捕获匹配的流量命中,以帮助您审核访问模式、验证细分并排查连接问题。
定期审核 IAM 角色分配
定期审核 roles/resourcemanager.tagAdmin 和 roles/resourcemanager.tagUser 的主账号分配。此审核可确保只有经过授权的流水线具有标记绑定权限,从而防止提升权限并保留环境隔离。