在过去 18 个月中,Google Cloud 致力于增强的网络安全产品特性,最终推出了 Cloud Next-Generation Firewall(NGFW),其前身为 Cloud Firewall Plus。这一变化不仅反映了平台功能的扩充,也展现了我们为用户提供强大网络保护的承诺。Cloud NGFW 包括入侵检测和防御系统(IDPS)、TLS 检查、FQDN 和地理位置过滤等高级功能,并与 Google 的威胁情报集成以进行防火墙策略规则。
随着 Cloud NGFW Enterprise 的正式发布,我们鼓励 Google Cloud 客户从传统 VPC 防火墙规则过渡到 Cloud NGFW 所提供的强大且灵活的防火墙策略。除了我们在之前的博客《为什么您应该从 VPC 防火墙规则迁移到网络防火墙策略》中概述的优势之外,您现在还可以通过迁移到新的防火墙策略模型,从 Cloud NGFW Standard 和 Enterprise 层中包含的增强网络安全控制中受益。
为了让这个过程变得简单且顺利,我们开发了一款迁移工具,可以自动完成这个过程的大部分工作。让我们深入研究迁移过程,并探索如何升级您的网络安全基础架构,以充分利用 Google Cloud NGFW 的潜力。
过渡到防火墙策略:一个简单的案例
想象一下一个简单的迁移场景,其中的 VPC 防火墙规则不涉及网络标记或服务账户。我们将使用这个简化的用例来展示自动迁移工具在简化向防火墙策略的过渡方面的强大功能。
迁移过程首先扫描已配置的 VPC 防火墙规则,然后生成具有相应规则的等效防火墙策略。如果原始 VPC 防火墙规则中存在重复的优先级,该工具会自动调整规则优先级,以帮助提供无缝且无冲突的过渡。
一旦创建并仔细审查了防火墙策略,就必须将其挂载到 VPC 上。确保启用日志记录以监控规则命中次数。为了确保新策略优先,请更改评估顺序,防火墙策略优先于传统的 VPC 防火墙规则。继续监控命中次数会发现逐渐转向新规则,而旧规则最终不再有命中。此时,您应该能够禁用传统规则,验证可能的负面影响,然后删除传统的 VPC 防火墙规则。
一旦您对新防火墙策略感到满意,您可以使用迁移工具帮助您为该策略生成相应的 Terraform 脚本。
这标志着一个关键点,您可以在此将高级 NGFW 功能添加到基本策略对象中,包括 IDPS、TLS 检查、地理区域的限制、基于 FQDN 的过滤、地址组和 Google 管理的威胁情报 IP 列表。您可以先通过直接修改与您的网络关联的策略对象来测试这些功能。测试成功完成后,您可以手动将这些新参数添加到您为基本策略编写的 Terraform 脚本中,然后再将其纳入生产 CI/CD 流程。
过渡到防火墙策略:复杂案例
在上一节中,我们讨论了一种相对简单的迁移方案。但大多数现有环境都包含依赖关系 —— 引用网络标记和/或服务账户的 VPC 防火墙规则。防火墙策略并不支持网络标记,但支持提供 IAM 控制的安全标记。防火墙策略支持服务账户作为应用规则的目标,但不能用于评估规则本身。在传统的 VPC 防火墙规则中,服务账户可用作入口流量的源过滤器。防火墙策略要求使用标记作为源过滤器。
由于这种变化,需要进行一些前期工作才能成功迁移。首先,您可以使用迁移来识别 VPC 防火墙规则中引用的所有网络标记和/或服务账号,并输出用于标记映射的 JSON 文件。
gcloud beta compute firewall-rules migrate --source-network=$vpc --export-tag-mapping --tag-mapping-file=$file.json |
以下是 JSON 文件的示例输出,格式如下:
{"networktag1": null, "networktag2": null, "networktag3": null, "networktag4": null, "networktag5": null, "networktag6": null, "networktag7": null, "networktag8": null, "sa:serviceaccount1.iam.gserviceaccount.com": null, "sa:serviceaccount2.gserviceaccount.com": null} |
为映射文件中列出的网络标记和/或服务账户列表创建所需的安全标记。编辑 JSON 文件以将网络标记和服务账户映射到相应的安全标记。
下面是使用新创建标记的标记值更新映射文件的示例,这些标记值替换网络标记和服务账户。
{"networktag1": "tagValues/281478364041843", "networktag2": "tagValues/281482792789759", "networktag3": "tagValues/281483765957244", "networktag4": "tagValues/281481907254071", "networktag5": "tagValues/281482152015869", "networktag6": "tagValues/281482761609158", "networktag7": "tagValues/281482620993032", "networktag8": "tagValues/281475492376131", "sa:serviceaccount1.iam.gserviceaccount.com": "tagValues/281479588083409", "sa:serviceaccount2.gserviceaccount.com": "tagValues/281478236400704"} |
使用所有安全标记的标记值手动更新映射文件后,您便可以使用迁移工具将这些标记绑定到相关虚拟机。此过程将安全标签绑定到具有与标签映射文件中的安全标签匹配的网络标签和/或服务账户的实例。请注意,如果有包含网络标记的托管实例组(MIG),您需要手动更新它们以使用更新的安全标记。
gcloud beta compute firewall-rules migrate --source-network=$vpc --tag-mapping-file=$file.json --bind-tags-to-instances –force |
现在,您可以将标记映射文件引用到迁移工具中,以生成已映射所有安全标记的迁移防火墙策略。如简单用例部分所述,您有两种迁移方式:自动创建防火墙策略
gcloud beta compute firewall-rules migrate --source-network=$vpc --tag-mapping-file=$file.json --target-firewall-policy=$migrated-policy –force |
或 Terraform 脚本输出
gcloud beta compute firewall-rules migrate --source-network=$vpc --export-terraform-script --tag-mapping-file=$file.json --target-firewall-policy=$migrated-policy --terraform-script-output-file=$migration.tf –force |
根据您选择的部署创建防火墙策略后,请仔细检查。确保 VPC 防火墙规则中的网络标记和/或服务账户已适当地替换为相应的安全标记。
然后,当您准备就绪时,关联 VPC 并确保启用日志记录以监控规则命中次数。为确保新策略优先,请更改评估顺序,使防火墙策略优先于传统 VPC 防火墙规则。持续监控命中次数将显示逐渐转向新规则,而旧规则最终不再有命中。此时,您可以禁用 VPC 防火墙规则,验证可能的负面影响,并最终删除 VPC 防火墙规则。
与简单用例类似,这标志着一个关键点,您可以利用防火墙策略的增强功能并集成高级功能,如 IDPS、TLS 检查、地理区域限制、基于 FQDN 的过滤、网络威胁情报等。
高级迁移:GKE VPC 防火墙规则
在大多数情况下,迁移工具会尝试将现有的 VPC 防火墙规则迁移到新的防火墙策略规则,但有一个例外:对于由 Google Kubernetes Engine 创建的 VPC 防火墙规则,它会跳过这些规则。GKE 的独特之处在于,它会在部署集群、服务、入口、网关或 HTTPRoutes 时自动创建 VPC 防火墙规则。
这意味着如果您的节点池使用网络标记,则需要手动更新节点池配置以使用相应的安全标记。
从那里,继续使用简单使用案例的步骤进行无依赖迁移,或使用网络标记/服务账户迁移和创建防火墙策略的复杂案例。
验证防火墙策略后,将 VPC 与策略进行关联。
然后,由于您的防火墙策略不包含 GKE 自动生成的规则,请按照以下三个步骤操作:
1.保留现有的检查顺序,并禁用用户定义的 VPC 防火墙规则。
2.手动创建防火墙策略规则以允许/检查发往 GKE 服务 IP 的入站流量。
3.禁用 GKE 自动生成的允许 GKE 服务入站的 VPC 防火墙规则(源:0.0.0.0/0 和目标:负载均衡器 IP)。
自动生成的已被排除的 GKE VPC 防火墙规则具有以下正则表达式(regex):
ggke-(.+)-ipv6-all gke-(.+)-(.+)-((master)|(vms)|(all)|(inkubelet)|(exkubelet)|(mcsd)) k8s-fw-(l7-)?(.+) k8s-(.+)-((node)|(http)|(node-http))-hc (.+)-hc k8s2-(.+)-(.+)-(.+)-(.+)(-fw)? k8s2-(.+)-l4-shared-hc-fw gke((gw)|(mcg))1-l7-(.+)-(.+) |
除 GKE 服务防火墙规则外,所有 GKE 工作负载将继续使用 VPC 防火墙规则。您的非 GKE 工作负载和 GKE 服务流量将由防火墙策略规则处理。
现在希望您已经对如何继续迁移项目以将 VPC 防火墙规则升级到新的网络防火墙策略并利用高级 NGFW 功能集有了一个很好的理解。
有关如何使用自动迁移工具的更多信息,请查看“VPC 防火墙规则迁移工具演示”视频并参考文档网站了解更多详细信息。
文章信息
相关推荐
