Google PCNE: 防火墙策略、Cloud Armor 和网络安全 — 学习指南
属于 Google Professional Cloud Network Engineer — 学习指南. 使用经过验证的答案练习: Google 考试中心, 或参加限时模拟考试: ExamRoll.io.
概览
Google Cloud 上的防火墙政策、Cloud Armor 和网络安全共同为分段、缩减攻击面、DDoS 弹性及可观测性提供了分层控制。有效的设计结合了身份感知目标定位、分层强制执行、最小权限入站和出站规则,以及与 Google 全球负载均衡器绑定的边缘保护。运维的成功取决于对规则评估、隐式行为、日志记录范围以及不同负载均衡模式下流量实际来源的理解。
VPC 防火墙规则与身份感知目标定位
VPC 防火墙规则是有状态的,并按网络、方向和优先级进行评估。
- 方向和隐式规则:
- 入站规则针对进入虚拟机网卡的流量进行评估;出站规则针对离开虚拟机网卡的流量进行评估。
- 每个 VPC 中都存在两条隐式规则:一条隐式全部拒绝的入站规则和一条隐式全部允许的出站规则。这些规则无法修改,也不会生成日志。默认网络还会创建几条宽松的规则;自定义 VPC 则不会。
- 优先级和评估:
- 优先级范围是 0–65535,数字越小越先评估。第一个匹配的规则完全决定了要执行的操作。
- 如果多个具有相同优先级的规则同时匹配,则最具体的 IP 范围胜出;如果具体程度相同但操作冲突,则拒绝操作胜出。应避免使用相同优先级的规则产生重叠。
- 目标和来源:
- 目标定义了规则适用于哪些虚拟机:网络标记、虚拟机服务帐号或安全标记。来源/目的地是 IP CIDR;对于入站规则,您还可以为同一 VPC 内的来源指定来源服务帐号或标记。
- 网络标记是项目用户可设置的虚拟机元数据;它们简单但管控较弱。服务帐号提供与工作负载身份和 IAM 绑定的身份感知目标定位,更难被滥用。安全标记(通过 IAM 绑定的组织级资源管理器标记)让安全团队能够控制规则可以定位到哪些虚拟机,同时防止开发人员自行分配可绕过保护的标记;使用它们可以实现更强的治理。
- 日志记录:
- 可以按规则启用防火墙规则日志记录,以捕获该规则匹配的允许或拒绝的连接。隐式拒绝不会被记录;如果您需要拒绝日志,请添加一条启用了日志记录的显式高优先级拒绝规则。
- 日志包括规则参考、操作、5 元组、字节数,并可导出用于取证分析。
设计与运维:
- 最小权限入站:首选使用显式高优先级拒绝规则实现默认拒绝,然后按服务帐号或安全标记添加限定范围的允许规则。对于负载均衡器后的实例组,仅允许来自负载均衡器或健康检查范围(即流量的实际来源)的流量。
- 最小权限出站:用一条显式的高优先级全部拒绝出站规则,外加针对性的允许规则(例如允许访问 NAT 范围、合作伙伴 IP 或通过 Private Google Access 访问 Google API)来替换隐式的允许规则。注意不要破坏返回流量;有状态性允许对已允许连接的响应通过,无需额外规则。
- 身份感知目标定位:
- 使用服务帐号制定“谁可以通信”的策略,这与 IP 的变动无关。
- 使用安全标记来防止开发人员自行应用宽松的网络标记。
- 常见陷阱与故障模式:
- 负载均衡器来源身份:对于外部 HTTP(S) 负载均衡器,后端看到的是来自 Google Front End 代理的连接,而不是客户端 IP。应使用 Cloud Armor 来允许/拒绝客户端 IP;使用 VPC 防火墙来允许 GFE 出站流量和健康检查范围。对于 TCP/UDP 网络负载均衡器,后端看到的是客户端 IP;针对客户端 IP 的防火墙允许列表会直接生效。
- 缺少拒绝日志:来自隐式规则的拒绝操作不会被记录。添加一条启用了日志记录的显式拒绝规则来观察被阻止的流量。
- NAT 绕过:如果虚拟机有外部 IP,它将使用该 IP 进行出站通信,从而绕过 Cloud NAT。移除外部 IP 以强制使用 NAT。
- 规则不匹配诊断:确认方向、目标身份(标记/服务帐号/安全标记)、优先级和来源过滤器。如果日志显示没有匹配项,则说明流量没有命中您预期的规则。
简短示例:启用日志记录的身份感知入站允许规则:
- 目标:服务帐号 sa: web-backend@project.iam.gserviceaccount.com
- 来源范围:GFE 代理范围 + Google 健康检查
- 优先级:100
- 操作:允许 tcp:80,443
- 日志记录:开启
层级式防火墙策略、分段和服务边界
层级式防火墙策略在任何 VPC 级规则之前强制执行组织级或文件夹级的规则。使用它们来保证安全护栏(例如,“拒绝所有从互联网到非负载均衡虚拟机的入站流量”或“拒绝来自 0.0.0.0/0 的 RDP/SSH”)。较低级别的 VPC 规则无法覆盖已匹配的组织/文件夹级拒绝规则。
分段策略:
- 入站分段:
- 组织/文件夹策略:针对高风险端口设置高优先级拒绝规则,并设置默认拒绝规则(经批准的入口点除外)。在需要时允许 Google 健康检查范围。
- VPC 规则:通过服务账号或安全标记定位到特定工作负载的允许规则。对于内部服务,使用 Private Service Connect 或内部负载均衡器,通过受限规则实现东西向访问。
- 出站分段:
- 将隐式的“全部允许出站”规则替换为在组织/文件夹或 VPC 范围生效的“高优先级全部拒绝出站”规则,然后仅开放必要的流量:
- 通过 Cloud NAT 或经批准的出站防火墙访问互联网。
- 通过 Private Google Access 和 private.googleapis.com 或 restricted.googleapis.com 端点访问 Google API。受限端点与 VPC Service Controls 配合使用,可防止数据泄露到未经授权的身份或项目中。
- 对于将 0.0.0.0/0 流量导向第三方防火墙,但仍需直接访问 Google API 而不产生流量折返 (hairpinning) 的设计,可为 Google API 的 VIP 地址块添加指向默认互联网网关的静态路由,并在子网上启用 Private Google Access。这可以在保留安全控制的同时,减少访问第一方服务时对第三方设备的延迟和依赖。
- 将隐式的“全部允许出站”规则替换为在组织/文件夹或 VPC 范围生效的“高优先级全部拒绝出站”规则,然后仅开放必要的流量:
服务边界交互:
- VPC Service Controls 在项目和受支持的 Google API 周围定义边界,以减少数据泄露风险。启用边界后:
- 优先使用 restricted.googleapis.com,以确保 API 调用必须保持在边界上下文中。
- 确保 DNS 将相关域指向受限或私有端点,并且路由不会回传到不受信任的出站设备。
- 将边界策略与出站防火墙的允许列表相结合,以避免意外泄露到边界外的端点。
权衡取舍:
- 组织级的拒绝规则简化了风险管理,但如果变更控制流程缓慢,可能会阻碍合法的实验;可使用安全标记和有文档记录的请求工作流来委托例外处理。
- 激进的出站拒绝策略能缩小爆炸半径,但需要强大的服务发现和变更控制机制以防止服务中断。
Cloud Armor、WAF 和全球边缘保护
Cloud Armor 将安全策略绑定到外部 HTTP(S) 和外部 TCP/SSL 代理负载均衡器,以在边缘提供保护。
- WAF 规则:
- 使用针对 OWASP Top 10 和常见 CVE 的预配置规则,以及使用表达式语言根据标头、IP、国家/地区、URI 等进行匹配的自定义规则。
- 按后端服务附加规则,并按优先级排序。操作包括允许、拒绝(可附带特定响应)或针对 HTTP(S) 的重定向。
- 速率限制:
- 通过滑动窗口和突发控制,强制执行基于密钥(例如,客户端 IP、标头或 Cookie)的配额。基于速率的封禁会自动为滥用来源添加临时拒绝规则。
- Adaptive Protection:
- 由机器学习驱动的异常检测功能可以学习正常的请求模式,并发现 L7 DDoS 或滥用行为。它可以建议或自动生成候选规则;请先在预览模式下部署它们。
- 预览模式:
- 在不影响流量的情况下评估新规则。预览结果会被记录下来,从而实现低风险的调优。验证后切换到强制执行模式。
DDoS 防御和全局负载均衡器控制:
- Google 的全球任播边缘网络可以吸收大规模的 L3/L4 攻击;SYN/ACK 验证、畸形数据包处理和边缘容量的自动扩缩功能已内置于外部 HTTP(S) 和 TCP/SSL 代理平台中。
- 与 Cloud Armor 结合使用,以缓解 L7 洪水攻击、凭证填充和应用程序滥用。
- 在负载均衡器上强制执行 TLS 策略、现代密码套件,并在需要时执行客户端 mTLS。对于 IPv6 需求,请使用带有 IPv6 VIP 的全局外部 HTTP(S) 或 TCP/SSL 代理负载均衡器。
- 为负载均衡的应用设置特定客户端 IP 的允许列表:
- 如果使用 HTTP(S),首选以客户端 IP 为键的 Cloud Armor 允许列表,并将后端防火墙规则限制为仅允许来自 GFE 和健康检查源的流量。
- 如果使用 TCP/UDP 网络负载均衡器,后端可以看到真实的客户端 IP;将 VPC 防火墙允许列表直接应用于目标实例(通过安全标记或服务账号),并包含 Google 健康检查 IP。
操作注意事项:
- 规则在边缘进行评估;不正确的允许列表可能立即导致全球性服务中断。使用预览模式和分阶段部署,并监控 Cloud Armor 日志和负载均衡器指标。
- 会话亲和性需求各不相同:对于混合协议(例如,从同一客户端到同一后端池的 HTTP 和 TFTP),负载均衡器上的客户端 IP 亲和性可以跨端口保持会话粘性。
可见性、检查和事件响应
可观察性:
- VPC Flow Logs 为每个子网提供抽样的五元组流记录,具有可配置的抽样、元数据扩充和聚合间隔。使用它们进行性能基线分析和异常检测。
- 防火墙规则日志记录了启用了日志功能的特定规则的每次连接的允许和拒绝情况;创建显式的拒绝规则来记录那些本会被隐式拒绝规则阻挡的流量。
- Cloud Armor 请求日志和预览结果显示了在边缘的规则匹配、操作决策和速率限制结果。
检查和检测:
- Packet Mirroring 将流量复制到同一区域的收集器,用于深度包检测或 IDS。通过子网、标签或服务账号来限定镜像范围,以限制开销。Packet Mirroring 是带外(out-of-band)的,不会阻塞流量;请将其与 Cloud IDS 或第三方传感器结合使用。
- 内联 L7 检查需要双网卡(2-NIC)设备模式并路由流量经过它。为对称路由和高可用性(HA)进行工程设计;考虑区域性故障域和潜在的吞吐量瓶颈。内联设备如果发生故障会增大爆炸半径;在适用情况下,部署托管实例组和带健康检查的路由故障转移模式。
事件响应实践:
- 将日志集中到一个安全项目中,针对拒绝日志的突然飙升、新的高优先级规则创建或 Cloud Armor 速率限制触发等情况构建检测。使用 BigQuery 或 SIEM 集成进行调查。
- 确保 IAM 的最小权限原则:在 Shared VPC 中,Network Admin 权限不足以修改防火墙策略,需要 Security Admin 权限;在网络和安全团队之间进行职责分离。
- 当您需要紧急 SSH 访问(break-glass access)且未预先配置密钥时,如果 IAM 和实例元数据设置允许,可从 Cloud Shell 使用 gcloud compute ssh 通过实例元数据推送一个临时密钥。
- 在排查“无日志”场景时:验证规则和流量方向,记住隐式拒绝规则不会产生日志,并检查可能更早匹配到的分层策略。
实际问题场景
Contoso Retail 在 Google Cloud 上运行一个多层 Web 平台。前端流量由一个全球外部 HTTP(S) 负载均衡器提供服务;应用虚拟机在多个区域运行,没有外部 IP。出口(Egress)流量必须通过第三方 NGFW 进行发夹弯(hairpin)路由,但访问 Google API(BigQuery 和 Pub/Sub)的流量除外。安全团队希望建立组织范围的护栏,为合作伙伴试点项目设置客户端 IP 允许列表,并在测试可疑恶意客户端时将风险降至最低。
方法:
建立分层护栏
- 创建一个组织级别的分层防火墙策略,拒绝所有从 0.0.0.0/0 到缺少安全标签 env=public-entry 的虚拟机目标的入站(ingress)流量,并拒绝来自互联网的管理端口(SSH、RDP)。
- 理由:在全球范围内阻止不安全的暴露;由于对标签的 IAM 限制,开发人员无法自行分配该安全标签。
基于身份的工作负载目标定位
- 为前端、应用和数据库层分配不同的服务账号。在 VPC 级别的防火墙规则中引用这些服务账号,以仅允许所需的东西向流量(例如,前端→应用 tcp:443,应用→数据库 tcp:5432)。
- 理由:将策略与工作负载身份绑定,并防止意外的标签滥用。
为负载均衡的后端设置入站允许规则
- 在应用虚拟机上,创建一个高优先级的入站允许规则,以应用服务账号为目标,源范围等于 Google Front End (GFE) 代理和 Google 健康检查的范围;启用日志记录。
- 理由:对于 HTTP(S) L7,后端应仅接受来自 GFE 和健康检查 IP 的连接;客户端 IP 允许列表在边缘强制执行。
Cloud Armor 边缘策略
- 将一个 Cloud Armor 策略附加到外部 HTTP(S) 负载均衡器的后端服务上:
- 添加一个合作伙伴客户端 IP 允许列表规则。
- 启用针对 OWASP Top 10 的预配置 WAF 规则。
- 配置一个以客户端 IP 为键、设置保守阈值的速率限制。
- 理由:在客户端 IP 可见且流量到达 VPC 之前,强制执行客户端源限制和应用层保护。
- 将一个 Cloud Armor 策略附加到外部 HTTP(S) 负载均衡器的后端服务上:
自适应保护和安全测试
- 启用 Adaptive Protection,并为可疑的客户端 IP 创建一个处于预览模式的拒绝规则。
- 理由:预览模式允许在不影响真实用户的情况下验证行为;在强制执行前,通过日志确认该客户端是否为恶意。
使用 Private Google Access 进行出口流量分段
- 保留一条指向第三方 NGFW 的 0.0.0.0/0 路由。为 Google APIs VIP 添加指向默认互联网网关的自定义静态路由,并在子网上启用 Private Google Access。添加一条显式的高优先级出口全部拒绝规则,然后为 NGFW 下一跳和 Google API 添加特定的允许规则;启用日志记录。
- 理由:强制通用互联网出口流量通过 NGFW,同时允许私下访问 BigQuery 和 Pub/Sub,无需不必要的发夹弯路由。
NAT 和外部 IP 控制
- 对于需要互联网出口但没有外部 IP 的实例,使用 Cloud NAT。审计并移除任何必须使用 NAT 的计算实例上的外部 IP。
- 理由:防止绕过 NAT,并保持单一的出口态势。
检查和监控
- 在每个区域为应用层启用 Packet Mirroring,以应用服务账号为目标,并将镜像流量发送到区域 IDS 收集器。为关键规则启用 VPC Flow Logs 和防火墙规则日志;将 Cloud Armor 和 VPC 日志导出到中央安全项目和 BigQuery。
- 理由:为威胁追捕和性能基线分析提供深度可见性,且不引入路径内延迟。
为事件响应做好准备的操作
- 针对 Cloud Armor 拒绝、防火墙拒绝日志的激增或分层策略的变更建立警报。记录使用 Cloud Shell gcloud compute ssh 进行受控紧急访问的 break-glass SSH 流程。
- 理由:快速检测活跃的滥用行为,并为修复保留一条安全的操作路径。
变更安全性和回滚
- 在预览模式下分阶段部署 Cloud Armor 变更,然后再强制执行。对于防火墙变更,在将变更传播到组织级策略之前,使用风险较低的优先级和金丝雀项目进行测试。
- 理由:在保持强大安全态势的同时,最大限度地减少因策略错误导致全局中断的可能性。
← VPC 架构、子网和地址规划 · 所有领域 · 混合连接、Cloud Router 和 BGP →
练习这些题目 → · 在 ExamRoll.io 上限时练习 →
Pass the whole exam — not just this question
You found this answer. Get every verified question and explanation in one place, and save hours of prep. Free to start.
通过考试 →