本文档是系列文章中的一篇,该系列介绍了将数据中心工作负载迁移到 Google Cloud 的企业的网络和安全架构。
该系列包含以下文档:
- 设计用于迁移企业工作负载的网络:架构方法
- 适用于云内安全访问的网络:参考架构(本文档)
- 适用于面向互联网的应用交付的网络:参考架构
- 适用于混合和多云工作负载的网络:参考架构
云内用例的工作负载位于 VPC 网络中,需要连接到 Google Cloud 中的其他资源。它们可能会使用云中原生提供的服务,例如 BigQuery。安全边界由各种第一方 (1P) 和第三方 (3P) 功能(如防火墙、VPC Service Controls 和网络虚拟设备)提供。
在许多情况下,这些工作负载横跨多个 Google Cloud VPC 网络,并且 VPC 网络之间的边界需要得到保护。本文档详细介绍了这些安全和连接架构。
直接原样迁移架构
云内用例的第一个场景是直接原样迁移架构,即将现有工作负载按原样迁移到云端。
防火墙
您可以配置防火墙规则来帮助建立安全边界。您可以使用网络标记将精细的防火墙规则应用于一组虚拟机。标记是一种任意特性,由在创建虚拟机时添加到虚拟机的 tags
字段中的字符串组成。您也可以在虚拟机创建后通过修改虚拟机来分配标记。如需了解使用 Google Cloud 防火墙规则管理流量的实现指南,请参阅企业基础蓝图中的网络防火墙政策。
您还可以使用防火墙日志记录来审核和验证防火墙规则设置的效果。
您可以使用 VPC 流日志进行网络取证和流式传输日志,以便与 SIEM 集成。整个系统可以提供实时监控、事件关联、分析和安全提醒。
图 1 显示了防火墙规则如何使用虚拟机标记来帮助限制 VPC 网络中虚拟机之间的流量。
图 1. 使用网络标记应用精细的出站流量控制的网络防火墙配置。
网络虚拟设备
网络虚拟设备 (NVA) 是具有多个网络接口的虚拟机。NVA 使您可以直接连接到多个 VPC 网络。Web 应用防火墙 (WAF) 和安全应用级层防火墙等安全功能可以在虚拟机上实现。您可以使用 NVA 为东西流量实现安全功能,特别是在使用中心辐射型配置时,如图 2 所示。
如需查看在 Google Cloud 上使用 NVA 的实现指导,请参阅 Google Cloud 上的集中式网络设备。
图 2. 共享 VPC 网络中的集中式网络设备配置。
Cloud IDS
利用 Cloud Intrusion Detection System (Cloud IDS),您可以镜像来自 VPC 网络中子网的流量,从而实现原生安全检查和日志记录。您可以使用 Cloud IDS 在网络层和应用层检查和监控各种威胁以供分析。您可以在与您的 Google Cloud 项目关联的 VPC 网络中创建 Cloud IDS 端点。这些端点使用 Google Cloud 网络栈中内置的数据包镜像功能,监控进出该网络的入站流量和出站流量。为了连接到托管 Cloud IDS 进程的服务提供方项目(Google 管理的项目),您必须启用专用服务访问通道。
如果您采用中心辐射式架构,则每个 spoke 的流量可以镜像到 Cloud IDS 实例,如图 3 所示。
图 3. 镜像使用专用服务访问通道的 VPC 流量的 Cloud IDS 配置。
您可以通过额外步骤在 VPC Service Controls 服务边界中保护 Cloud IDS。如需详细了解 VPC Service Controls 支持,请参阅支持的产品。
VPC 网络对等互连
对于跨多个 VPC 网络的应用,无论它们是否属于同一个 Google Cloud 项目或组织资源,VPC 网络对等互连都支持 VPC 网络之间的连接。此连接方式可让流量在 Google 的网络中流动,而不会通过公共互联网。
在直接原样迁移架构中使用的 VPC 网络对等互连有两种模型。一种采用“纯粹”的中心辐射型 (hub-and-spoke) 架构,另一种采用具有传递性的中心辐射型架构,在第二种架构中,来自一个 spoke 的流量可以到达另一个 spoke。以下部分详细介绍了如何将 VPC 网络对等互连与这些不同的架构搭配使用。
中心辐射型架构
中心辐射型架构是使用 VPC 网络对等互连的用于 VPC 连接的常用模型。如果企业的各种应用需要访问一组共同的服务(例如日志记录或身份验证),则此模型非常有用。如果企业需要为通过中心离开网络的流量实施一组共同的安全政策,则此模型也非常有用。在纯粹的中心辐射型模型中,不允许 spoke 之间交换流量(称为传递性流量)。图 4 显示了一个纯粹的中心辐射型架构,它使用 VPC 网络对等互连将 spoke 连接到该 hub。如需了解构建中心辐射型网络的实现指南,请参阅企业基础蓝图中的中心辐射型网络拓扑。
但是,如果您不需要 VPC 级层的分离,则可以使用共享 VPC 架构,该架构可以为刚开始使用 Google Cloud 的企业提供更简单的模型。
图 4. 使用 VPC 网络对等互连进行网络隔离和非传递性连接的中心辐射型网络架构。
具有传递性的中心辐射型架构
如需启用具有传递性的中心辐射型架构(一个 spoke 的流量可以通过 hub 到达其他 spoke),可以通过几种方法来使用 VPC 网络对等互连。您可以在全网状拓扑中使用 VPC 网络对等互连,其中每个 VPC 网络都与其需要访问的每个其他 VPC 网络直接对等互连。
或者,您可以使用 NVA 将 hub 和 spoke 连接在一起。然后,NVA 位于用作 VPC spoke 流量的下一个跃点的内部负载均衡器后面。图 5 显示了这两种方式。
此外,您还可以使用 VPN 在 hub VPC 网络和 spoke VPC 网络之间进行连接。此配置可实现 spoke 到 spoke 连接的可达性,从而提供通过 hub VPC 网络的传递性。
图 5. 使用 Cloud VPN 进行网络隔离和传递性连接的中心辐射型网络配置。
共享 VPC
您可以使用共享 VPC 集中控制宿主项目中的子网、路由和防火墙等网络资源。这种级别的控制让您能够实施网络管理、审核和访问权限控制的最小权限安全最佳实践,因为您可以将网络管理任务委托给网络和安全管理员。您可以使用服务项目将创建和管理虚拟机的权限分配给实例管理员。使用服务项目可确保虚拟机管理员只能创建和管理实例,而不能在共享 VPC 网络中进行任何影响网络的更改。
例如,如需提供更高的隔离性,您可以定义位于不同宿主项目中的两个 VPC 网络,并将多个服务项目连接到每个网络,其中一个网络用于生产,另一个用于测试。图 6 显示了使用不同的项目将生产环境与测试环境隔离开来的架构。
如需详细了解构建 VPC 网络的最佳实践,请参阅 VPC 设计的最佳实践和参考架构。
图 6. 使用多个隔离的宿主项目和服务项目(测试和生产环境)的共享 VPC 网络配置。
混合服务架构
混合服务架构提供更多云原生服务,可供您用于在多 VPC 环境中连接和保护服务。这些云原生服务为直接原样迁移架构中的功能提供了补充,可让您更轻松地大规模管理多 VPC 环境。
Private Service Connect
Private Service Connect 使一个 VPC 网络中托管的服务可以在另一个 VPC 网络中提供。服务不需要由同一组织资源托管,因此 Private Service Connect 可用于以非公开方式使用另一个 VPC 网络中的服务,即使该服务连接到另一个组织资源也是如此。
您可以使用 Private Service Connect 来访问 Google API 或访问托管在其他 VPC 网络中的服务。
使用 Private Service Connect 访问 Google API
使用 Private Service Connect 时,您可以使用属于 VPC 网络的 Private Service Connect 端点公开 Google API,如图 7 所示。
图 7. 使用 VPC 网络专用的 Private Service Connect 端点将流量发送到 Google API 的 Private Service Connect 配置。
工作负载可以使用 Private Service Connect 端点将流量发送到一组全球 Google API。此外,您还可以使用 Private Service Connect 后端访问单个 Google API,从而将负载均衡器的安全功能扩展到 API 服务。图 8 显示了此配置。
图 8. 使用 Private Service Connect 后端将流量发送到 Google API 的 Private Service Connect 配置。
在 VPC 网络或实体之间使用 Private Service Connect
通过 Private Service Connect,服务提供方也可以向相同或不同组织资源中的另一个 VPC 网络中的服务使用方提供服务。服务提供方 VPC 网络可支持多个服务使用方。使用方可以通过将流量发送到位于使用方 VPC 网络中的 Private Service Connect 端点来连接到提供方服务。端点将流量转发到包含已发布服务的 VPC 网络。
图 9. 通过服务连接发布托管式服务并通过端点使用服务的 Private Service Connect 配置。
VPC 无服务器访问通道连接器
VPC 无服务器访问通道连接器处理无服务器环境与 VPC 网络之间的流量。在 Google Cloud 项目中创建连接器后,您可以将其连接到特定的 VPC 网络和区域。然后,您可以配置无服务器服务,将此连接器用于出站网络流量。您可以使用子网或 CIDR 范围指定连接器。通过连接器发送到 VPC 网络的流量来自您指定的子网或 CIDR 范围,如图 10 所示。
图 10. 使用 VPC 网络内的内部 IP 地址访问 Google Cloud 无服务器环境的无服务器 VPC 访问通道连接器配置。
支持 Cloud Run、Cloud Functions 或 App Engine 标准环境的每个区域均支持无服务器 VPC 访问通道连接器。如需了解详情,请参阅使用 VPC 无服务器访问通道连接器时的支持的服务和支持的网络协议列表。
VPC Service Controls
VPC Service Controls 可阻止来自互联网或来自安全边界外的项目的授权访问,从而帮助防止 Cloud Storage 或 BigQuery 等服务的数据渗漏。例如,设想以下场景:人为错误或错误的自动化操作导致在 Cloud Storage 或 BigQuery 等服务上错误设置 IAM 政策。导致这些服务中的资源可公开访问。在这种情况下,存在数据泄露的风险。如果您将这些服务配置为 VPC Service Controls 边界的一部分,则即使资源的 IAM 政策允许访问,对资源的入站访问也会被阻止。
VPC Service Controls 可以根据客户端特性(如身份类型(服务账号或用户)和网络来源(IP 地址或 VPC 网络)创建边界。
VPC Service Controls 可帮助降低以下安全风险:
- 从使用被盗凭据的未授权网络进行的访问。
- 恶意内部人员或被攻破的代码造成数据渗漏。
- 配置错误的 IAM 政策导致私有数据被公开。
图 11 显示了 VPC Service Controls 如何帮助您建立服务边界以帮助降低这些风险。
图 11. 使用专用访问通道服务扩展到混合环境的 VPC 服务边界。
您可以使用入站和出站规则来允许两个服务边界之间的通信,如图 12 所示。
图 12. 配置入站和出站规则以在服务边界之间进行通信。
如需详细了解 VPC Service Controls 部署架构的建议,请参阅设计和架构服务边界。如需详细了解 VPC Service Controls 支持的服务列表,请参阅支持的产品和限制。
零信任分布式架构
网络边界安全控制措施是必要的,但不足以支持最小权限的安全原则和纵深防御。零信任分布式架构基于网络边界边缘构建,但并不仅仅依赖于网络边界边缘来实施安全控制。作为分布式架构,它们由微服务组成,使用按服务执行的安全政策、强身份验证和工作负载身份。
您可以将零信任分布式架构作为由 Cloud Service Mesh 和 Cloud Service Mesh 管理的服务来实现。
Cloud Service Mesh
您可以使用服务安全将 Cloud Service Mesh 配置为在 GKE 集群内提供零信任分布式架构微服务网格。在此模型中,在具有 Envoy Sidecar 或无代理 gRPC 的 GKE 服务中,身份、证书和授权政策均由以下所有项管理:Cloud Service Mesh、Workload Identity、Certificate Authority Service 和 IAM。证书管理和安全命名由平台提供,所有服务通信都受到 mTLS 传输安全性的约束。图 13 显示了具有此配置的集群。
图 13. 使用 Cloud Service Mesh 的单集群零信任分布式架构网格。
授权政策指定服务器如何对传入请求或 RPC 进行授权。您可以将授权政策配置为根据各种参数(例如发送请求的客户端的身份、主机、标头和其他 HTTP 特性)来允许或拒绝传入的请求或 RPC。您可以查看在基于 gRPC 和 Envoy 的网格上配置授权政策的实现指南。
在图 13 中,该架构有一个集群和平面网络(共享 IP 地址空间)。在零信任分布式架构中,多集群通常用于实现隔离、位置和扩缩。
在更复杂的环境中,多个集群可以在按舰队组合集群时共享托管式身份。在这种情况下,您可以使用 Private Service Connect 跨独立的 VPC 网络配置网络连接。此方法类似于混合工作负载访问多集群网络连接方法,如本文档后面部分所述。
如需了解如何使用 Cloud Service Mesh 精细地控制流量,请参阅高级流量管理概览。
Cloud Service Mesh
Cloud Service Mesh 提供开箱即用的 mTLS 零信任分布式架构微服务网格,它基于 Istio 基础构建而成。您可以使用集成的流来设置网格。GKE 支持具有 Google 管理的数据和控制平面的托管式 Cloud Service Mesh。此外,也可以使用集群内控制平面,它适用于 Google Distributed Cloud 或 GKE Multi-Cloud 等其他环境。Cloud Service Mesh 为您管理身份和证书,提供基于 Istio 的授权政策模型。
Cloud Service Mesh 依赖舰队来管理多集群服务部署配置和身份。与 Cloud Service Mesh 一样,当您的工作负载在平面(或共享)VPC 网络连接环境中运行时,除了防火墙配置之外,没有特殊的网络连接要求。如果您的架构包含跨多个 VPC 网络或网络环境(例如跨 Cloud Interconnect 连接)的多个 Cloud Service Mesh 集群,那么您还需要一个东西网关。Cloud Service Mesh 网络的最佳实践与 GKE 网络最佳实践中所述相同。
Cloud Service Mesh 还与 Identity-Aware Proxy (IAP) 集成。IAP 使您可以设置精细的访问权限政策,以便根据源请求的属性(例如用户身份、IP 地址和设备类型)来控制用户对工作负载的访问权限。这种级别的控制可实现端到端零信任环境。
使用 Cloud Service Mesh 时,您需要考虑 GKE 集群要求。如需了解详情,请参阅“GKE 上的单个项目安装”文档中的要求部分。
后续步骤
- 适用于面向互联网的应用交付的网络:参考架构。
- 适用于混合和多云工作负载的网络:参考架构。
- 迁移到 Google Cloud 可以帮助您规划、设计和实施将工作负载迁移到 Google Cloud 的过程。
- Google Cloud 中的着陆区设计为创建着陆区网络提供了指南。
- 如需查看更多参考架构、图表和最佳做法,请浏览云架构中心。