本文档是三篇文档中的第三篇。该文档介绍了混合云和多云网络架构模式。本部分探讨了可用于混合云和多云架构的几种常见安全网络架构模式。本文介绍了这些网络模式最适合的场景,并提供了使用 Google Cloud实现这些模式的最佳实践。
混合云和多云架构模式文档集包含以下部分:
- 构建混合云和多云架构:讨论如何规划使用 Google Cloud设计混合云和多云设置架构的策略。
- 混合云和多云架构模式:讨论在混合云和多云策略中采用的常见架构模式。
- 混合云和多云安全网络架构模式:从网络角度讨论混合云和多云网络架构模式(本文档)。
以安全可靠的方式将私有计算环境连接到 Google Cloud 是所有混合和多云架构成功部署的关键。为混合云和多云端设置选择的混合网络连接和云网络架构模式必须满足企业工作负载的独特要求。它还必须适合您打算采用的架构模式。虽然您可能需要对每种设计进行定制,但可以使用常见模式作为蓝图。
本文档中的网络架构模式不应被视为 Google Cloud 中的着陆区设计的替代方案。相反,您应在整体 Google Cloud 着陆区设计中设计和部署所选的架构模式,该设计涵盖以下领域:
- 身份
- 资源管理
- 安全
- 网络
- 监控
不同的应用可以使用不同的网络架构模式,这些模式会作为着陆区架构的一部分进行整合。在多云设置中,您应确保着陆区设计在所有环境中保持一致。
本系列包含以下页面:
贡献者
作者:Marwan Al Shawi | 合作伙伴客户工程师
其他贡献者:
- Saud Albazei | 应用现代化改造客户工程师
- Anna Berenberg | 工程研究员
- Marco Ferrari | 云解决方案架构师
- Victor Morno | Cloud 网络产品经理
- ohannes Passing | 云解决方案架构师
- Mark Schlagenhauf | 网络技术文档工程师
- Daniel Strebel | 欧洲、中东和非洲地区应用现代化解决方案负责人
- Ammett Williams | 开发者关系工程师
架构模式
本系列文档介绍了网络架构模式,这些模式是根据位于 Google Cloud 和其他环境(本地或其他云)中的应用之间所需的通信模型而设计的。
这些模式应纳入到组织的整体着陆区架构中,该架构可以包含多个网络模式,以满足不同应用的特定通信和安全要求。
本系列文档还介绍了可与每种架构模式搭配使用的不同设计变体。以下网络模式可帮助您满足应用的通信和安全要求:
镜像模式
镜像模式基于将某个现有环境或环境的设计复制到新环境或环境。因此,此模式主要适用于遵循环境混合模式的架构。在该模式下,您可以在一个环境中运行开发和测试工作负载,在另一个环境中运行暂存和生产工作负载。
镜像模式假定测试工作负载和生产工作负载不应直接相互通信。但是,应该能够以一致的方式管理和部署这两组工作负载。
如果您使用此模式,请以符合以下要求的方式连接这两个计算环境:
- 持续集成/持续部署 (CI/CD) 可以跨所有计算环境或特定环境部署和管理工作负载。
- 监控、配置管理和其他管理系统应可跨计算环境工作。
- 工作负载无法跨计算环境直接通信。如有必要,必须以精细且受控的方式进行通信。
架构
下图展示了此模式的概要参考架构,该架构支持 CI/CD、监控、配置管理、其他管理系统和工作负载通信:
上图中架构的说明如下:
- 工作负载会根据功能环境(开发、测试、CI/CD 和管理工具)在 Google Cloud 端的多个 VPC 中分发。
- 共享 VPC 用于开发和测试工作负载。额外的 VPC 用于 CI/CD 和管理工具。使用共享 VPC:
- 每个环境和每个服务项目的应用由不同的团队管理。
- 宿主项目管理和控制开发环境和测试环境之间的网络通信和安全控制,以及 VPC 外部的网络通信和安全控制。
- CI/CD VPC 连接到在私有计算环境中运行生产工作负载的网络。
- 防火墙规则仅允许允许的流量。
- 您还可以将 Cloud Next Generation Firewall Enterprise 与入侵防御服务 (IPS) 搭配使用,在不更改设计或路由的情况下实现深度数据包检测,以防范威胁。Cloud 新一代防火墙企业版的工作原理是创建 Google 管理的可用区级防火墙端点,这些端点使用数据包拦截技术以透明方式检查工作负载以查找配置的威胁签名。它还可以保护工作负载免受威胁。
- 允许使用内部 IP 地址在对等 VPC 之间进行通信。
- 在此模式中,通过对等互连,CI/CD 和管理系统能够部署和管理开发和测试工作负载。
- 请考虑以下常规最佳实践。
您可以使用上述符合业务和应用要求的混合云和多云网络连接选项之一来建立此 CI/CD 连接。为了便于您部署和管理生产工作负载,此连接可在不同的计算环境之间提供专用网络可达性。所有环境都应具有无重叠的 RFC 1918 IP 地址空间。
如果开发和测试环境中的实例需要访问互联网,请考虑以下选项:
- 您可以将 Cloud NAT 部署到同一共享 VPC 宿主项目网络。部署到同一共享 VPC 宿主项目网络有助于避免这些实例可直接从互联网访问。
- 对于出站 Web 流量,您可以使用安全 Web 代理。该代理具有多项优势。
如需详细了解 Google Cloud 工具和功能,它们可帮助您在 Google Cloud 以及混合云和多云环境中构建、测试和部署,请参阅 Google Cloud 上的 DevOps 和 CI/CD 简介博文。
变体
为了满足不同的设计要求,同时仍顾及所有通信要求,镜像架构模式提供了以下选项,这些选项在以下部分中进行了介绍:
每个环境一个共享 VPC
“按环境共享 VPC”设计选项支持在各个环境中实现应用级或服务级分离,包括可能需要满足特定组织安全要求的 CI/CD 和管理工具。这些要求限制了需要由不同团队管理的不同服务的通信、管理域和访问权限控制。
这种设计通过在不同环境之间提供网络级和项目级隔离来实现分离,从而实现更精细的通信和 Identity and Access Management (IAM) 访问权限控制。
从管理和运维角度来看,这种设计可让您灵活地管理每个环境和每个服务项目中由不同团队创建的应用和工作负载。VPC 网络及其安全功能可由网络运维团队根据以下可能的结构进行预配和管理:
- 一个团队管理所有环境中的所有宿主项目。
- 不同的团队管理各自环境中的宿主项目。
关于管理宿主项目的决策应基于各个团队的团队结构、安全操作和访问权限要求。您可以将此设计变体应用于“每个环境使用共享 VPC 网络”着陆区设计选项。不过,您需要考虑镜像模式的通信要求,以定义允许在不同环境之间进行哪些通信,包括通过混合网络进行的通信。
您还可以为每个主环境预配一个共享 VPC 网络,如下图所示:
集中式应用层防火墙
在某些情况下,安全要求可能要求使用超出 Cloud Next Generation Firewall 功能的高级防火墙机制实现应用层(第 7 层)和深度数据包检测。为了满足贵组织的安全要求和标准,您可以使用托管在网络虚拟设备 (NVA) 中的 NGFW 设备。多家 Google Cloud 安全合作伙伴都提供了非常适合此任务的选项。
如下图所示,您可以使用多个网络接口将 NVA 放置在虚拟私有云与私有计算环境之间的网络路径中。
此设计还可与多个共享 VPC 搭配使用,如下图所示。
在此设计中,NVA 充当边界安全层。它还为启用内嵌流量检查和强制执行严格的访问权限控制政策奠定了基础。
如需采用包含 VPC 防火墙规则和入侵防御服务功能的强大多层安全策略,请为东西向和南北向流量添加进一步的流量检查和安全控制。
中心辐射型拓扑
另一种可能的设计变体是,为开发和不同的测试阶段使用单独的 VPC(包括共享 VPC)。在此变体中(如下图所示),所有阶段环境都通过中心辐射型架构与 CI/CD 和管理 VPC 连接。如果您必须在每个环境中分离管理网域和函数,请使用此选项。轮辐通信模型有助于满足以下要求:
- 应用需要访问一组常见的服务,例如监控、配置管理工具、CI/CD 或身份验证。
- 需要通过中心集中地对传入和传出流量应用一组共同的安全政策。
如需详细了解中心辐射型设计选项,请参阅具有集中式设备的中心辐射型拓扑和无集中式设备的中心辐射型拓扑。
如上图所示,VPC 之间的通信和混合连接都通过 hub VPC 进行。在此模式中,您可以控制和限制 hub VPC 中的通信,以符合您的连接要求。
在星形网络架构中, Google Cloud的主要连接选项(在 spoke VPC 和 hub VPC 之间)如下:
- VPC 网络对等互连
- VPN
- 使用网络虚拟设备 (NVA)
- 使用多个网络接口
- 使用 Network Connectivity Center (NCC)
如需详细了解您在设计中应考虑哪些选项,请参阅中心辐射型网络架构。在需要流量传递性时,选择在 spoke 和 hub VPC 之间使用 VPN 而非 VPC 对等互连是一个关键影响因素。流量传递性是指一个 spoke 的流量可以通过 hub 到达其他 spoke。
微服务零信任分布式架构
混合架构和多云架构可能需要多个集群来实现其技术和业务目标,包括将生产环境与开发和测试环境分隔开来。因此,网络边界安全控制措施非常重要,尤其是在需要遵守特定安全要求时。
这还不足以支持当前云优先分布式微服务架构的安全要求,您还应考虑零信任分布式架构。微服务零信任分布式架构通过微服务级安全政策强制执行、身份验证和工作负载身份,为您的微服务架构提供支持。信任基于身份,并会针对每项服务强制执行。
通过使用分布式代理架构(例如服务网格),服务可以有效验证调用方,并为每个请求实现精细的访问权限控制政策,从而实现更安全、更可伸缩的微服务环境。借助 Cloud Service Mesh,您可以灵活地选择部署跨越Google Cloud 和本地部署的公用网格。该网格使用授权政策来帮助确保服务间通信安全。
您还可以将 Apigee Adapter for Envoy(Kubernetes 集群内的轻量级 Apigee API 网关部署)纳入到此架构中。Apigee Adapter for Envoy 是一款开源边缘和服务代理,专为云优先型应用而设计。
如需详细了解此主题,请参阅以下文章:
- 零信任分布式架构
- GKE Enterprise Hybrid 环境
- 连接至 Google
- 将本地 GKE Enterprise 集群连接到Google Cloud 网络。
- 设置多云或混合网格
- 跨环境和集群部署 Cloud Service Mesh。
镜像模式最佳实践
- 部署或重新配置生产部署所需的 CI/CD 系统必须具有高可用性,这意味着所有架构组件都必须设计为提供预期的系统可用性级别。如需了解详情,请参阅 Google Cloud 基础架构可靠性。
- 为了消除代码更新等重复流程的配置错误,自动化功能对于标准化构建、测试和部署至关重要。
- 在此设计中集成集中式 NVA 可能需要纳入具有不同安全访问权限控制级别的多个部分。
- 在设计包含 NVA 的解决方案时,请务必考虑 NVA 的高可用性 (HA),以避免可能阻止所有通信的单点故障。请遵循您的 NVA 供应商提供的高可用性和冗余设计及实现指南。
- 通过不通过 VPC 对等互连或 VPN 将本地 IP 路由导出到开发和测试 VPC,您可以限制从开发和测试环境到本地环境的网络可单播性。如需了解详情,请参阅 VPC 网络对等互连自定义路由交换。
- 对于使用需要 Google API 访问权限的专用 IP 地址的工作负载,您可以使用 VPC 网络中的 Private Service Connect 端点公开 Google API。如需了解详情,请参阅本系列中的受限入站。
- 查看混合云和多云网络架构模式的一般最佳实践。
网状模式
网状模式基于建立混合网络架构。该架构跨多个计算环境。在这些环境中,所有系统都可以相互通信,并非仅限于根据应用的安全要求进行单向通信。此网络模式主要适用于分层混合、分区多云或爆发架构。它还适用于业务连续性设计,可在 Google Cloud中预配灾难恢复 (DR) 环境。在所有情况下,它都要求您以符合以下通信要求的方式连接计算环境:
- 使用专用 RFC 1918 IP 地址,工作负载可以跨环境边界相互通信。
- 双方均可发起通信。通信模型的具体细节可能会因应用和安全要求而异,例如后面的设计选项中所讨论的通信模型。
- 您使用的防火墙规则必须根据作为该模式设计服务对象的一个或多个应用的要求,允许特定 IP 地址来源和目的地之间的流量。理想情况下,您可以使用多层安全保护方法来精细地限制计算环境之间和之内的流量。
架构
下图展示了网状模式的概要参考架构。
- 所有环境都应使用一个无重叠的 RFC 1918 IP 地址空间。
- 在 Google Cloud 端,您可以将工作负载部署到一个或多个共享 VPC,或非共享 VPC 中。如需了解此模式其他可能的设计选项,请参阅下文的设计变体。选择的 VPC 结构应与贵组织的项目和资源层次结构设计相符。
- Google Cloud 的 VPC 网络可扩展到其他计算环境。这些环境可以是本地环境,也可以是其他云环境。使用符合您的业务和应用要求的混合云和多云网络连接选项之一。
将通信限制为许可的来源和目的地 IP 地址。使用以下任一功能,或多项功能的组合:
具有新一代防火墙 (NGFW) 检查功能的网络虚拟设备 (NVA),放置在网络路径中。
具有入侵防御服务 (IPS) 的 Cloud Next Generation Firewall Enterprise,可在不更改网络设计或路由的情况下实现深度数据包检测,以防范威胁。
变体
网状架构模式可与其他方法结合使用以满足不同的设计要求,同时仍顾及该模式的通信要求。以下部分介绍了模式选项:
每个环境一个 VPC
考虑使用“每个环境一个 VPC”选项的常见原因如下:
- 云环境需要对 VPC 网络和资源在网络级层进行分隔,以符合您的组织的资源层次结构设计。如果需要进行管理域名分隔,还可以将其与每个环境一个单独项目结合使用。
- 如需集中管理共用网络中的网络资源,并在不同环境之间提供网络隔离,请为您在 Google Cloud中的每个环境(例如开发、测试和生产环境)使用共享 VPC。
- 扩展需求可能需要超出单个 VPC 或项目的 VPC 配额。
如下图所示,“每个环境一个 VPC”设计使每个 VPC 都可以使用 VPN 或者具有多个 VLAN 连接的 Cloud Interconnect,直接与本地环境或其他云环境集成。
上图中显示的模式可应用于着陆区中心辐射型网络拓扑。在该拓扑中,单个(或多个)混合连接可由所有 spoke VPC 共享。通过使用中转 VPC 终结混合连接和其他 spoke VPC 来共享混合连接。您还可以通过在中转 VPC 中添加具有下一代防火墙 (NGFW) 检查功能的 NVA 来扩展此设计,如下一部分“使用集中式应用层防火墙”中所述。
使用集中式应用层防火墙
如果您的技术要求强制要求使用超出 Cloud Next Generation Firewall 功能的高级防火墙功能实现应用层(第 7 层)和深度数据包检测,您可以使用托管在 NVA 中的 NGFW 设备。但是,该 NVA 必须满足您的组织的安全需求。如需实现这些机制,您可以扩展拓扑以通过集中式 NVA 防火墙传递所有跨环境流量,如下图所示。
您可以使用具有集中式设备的中心辐射型拓扑,将下图中的模式应用于着陆区设计:
如上图所示,NVA 充当边界安全层,并用作启用内嵌流量检查的基础。它还会强制执行严格的访问权限控制政策。为了同时检查东西向和南北向流量,集中式 NVA 的设计可能包含具有不同安全访问权限控制级别的多个部分。
微服务零信任分布式架构
使用容器化应用时,镜像模式部分中讨论的微服务零信任分布式架构也适用于此架构模式。
此模式与镜像模式之间的主要区别在于, Google Cloud 中的工作负载与其他环境中的工作负载之间的通信模型可以从任一端启动。必须根据应用要求和安全要求使用 Service Mesh 精细控制流量。
网状模式最佳实践
- 在执行任何其他操作之前,请先确定资源层次结构设计以及支持任何项目和 VPC 所需的设计。这样做可以帮助您选择与您的 Google Cloud 项目结构一致的最佳网络架构。
- 在私有计算环境和Google Cloud中使用 Kubernetes 时,请使用零信任分布式架构。
- 在设计中使用集中式 NVA 时,您应定义多个具有不同安全访问权限控制级别和流量检查政策的部分。这些控制措施和政策应基于应用的安全要求。
- 在设计包含 NVA 的解决方案时,请务必考虑 NVA 的高可用性 (HA),以避免可能阻止所有通信的单点故障。请遵循提供 NVA 的 Google Cloud 安全供应商提供的高可用性和冗余设计及实现指南。
- 如需提供更强的隐私保护、数据完整性和受控通信模型,请使用 API 网关(如 Apigee 和具有端到端 mTLS 的 Apigee Hybrid)通过 API 公开应用。您还可以在同一组织资源中使用共享 VPC 和 Apigee。
- 如果解决方案的设计需要将基于 Google Cloud的应用公开给公共互联网,请考虑适用于面向互联网的应用交付的网络中讨论的设计建议。
- 为了帮助保护项目中的 Google Cloud 服务并降低数据渗漏的风险,请使用 VPC Service Controls 在项目或 VPC 网络级层指定服务边界。此外,您还可以通过授权 VPN 或 Cloud Interconnect 将服务边界扩展到混合环境。如需详细了解服务边界的优势,请参阅 VPC Service Controls 概览。
- 查看混合云和多云网络模式的一般最佳实践。
如果您希望在 Google Cloud中托管的应用与其他环境之间实施更严格的隔离和更精细的访问权限控制,请考虑使用本系列其他文档中讨论的封闭模式之一。
封闭模式
封闭模式基于一种架构,该架构会根据不同环境之间公开的特定 API 或端点,以精细的方式公开选定的应用和服务。本指南将此模式分为三种可能的选项,每种选项由具体的通信模型决定:
- 封闭出站流量
封闭出站流量和封闭入站流量(双向封闭)
如本指南中之前所述,此处介绍的网络架构模式可适用于具有各种不同要求的各种应用。为了满足不同应用的具体需求,您的主着陆区架构可能同时采用一种模式或多种模式的组合。所选架构的具体部署取决于每个门控模式的具体通信要求。
本系列文章将介绍每种限流模式及其可能的设计选项。不过,适用于所有门控模式的一个常见设计选项是适用于采用微服务架构的容器化应用的零信任分布式架构。此选项由 Cloud Service Mesh、Apigee 和 Apigee Adapter for Envoy(Kubernetes 集群内的轻量级 Apigee 网关部署)提供支持。 Apigee Adapter for Envoy 是一种广受欢迎的开源边缘和服务代理,专用于云优先型应用。此架构可在服务级别控制允许的安全服务间通信以及通信方向。您可以根据所选模式在服务级别设计、微调和应用流量通信政策。
通过门控模式,您可以实现具有入侵防御服务 (IPS) 的 Cloud Next Generation Firewall Enterprise,以便在不进行任何设计或路由修改的情况下执行深度数据包检测,从而防范威胁。该检查取决于要访问的具体应用、通信模型和安全要求。如果安全要求需要使用超出 Cloud Next Generation Firewall 功能的高级防火墙机制实现第 7 层和深度数据包检测,您可以使用托管在网络虚拟设备 (NVA) 中的集中式下一代防火墙 (NGFW)。多家 Google Cloud 安全合作伙伴提供可满足您的安全要求的 NGFW 设备。将 NVA 与这些门控模式集成可能需要在网络设计中引入多个安全区域,每个区域都有不同的访问权限控制级别。
封闭出站流量
受控出站流量网络模式的架构基于将来自本地环境或其他云环境的部分 API 公开给在 Google Cloud中部署的工作负载。这样,您无需将这些数据从本地环境或其他云环境直接公开到公共互联网。您可使用充当现有工作负载外观 (facade) 的 API 网关、代理或负载均衡器来促进这种有限的公开。您可以在隔离的边界网络段(例如边界网络)中部署 API 网关功能。
受控出站网络模式主要适用于分层应用架构模式和分区应用架构模式,但不限于这些模式。在内部网络中部署后端工作负载时,门控出站网络有助于在您的本地计算环境中保持更高级别的安全性。该模式要求您以符合以下通信要求的方式连接计算环境:
- 您在 Google Cloud 中部署的工作负载可以使用内部 IP 地址与公开应用的 API 网关或负载均衡器(或 Private Service Connect 端点)进行通信。
- 无法直接从 Google Cloud内部访问私有计算环境中的其他系统。
- 不允许从私有计算环境到部署在 Google Cloud 中的任何工作负载的通信。
- 流量仅可从 Google Cloud 环境内部发送到其他环境中的私有 API。
本指南重点介绍通过专用混合网络连接的混合云和多云环境。如果贵组织的安全要求允许,您可以通过互联网直接访问具有公共 IP 地址的远程目标 API 的 API 调用。但您必须考虑以下安全机制:
- 采用传输层安全协议 (TLS) 的 API OAuth 2.0。
- 速率限制。
- 威胁防范政策。
- 向 API 层的后端配置双向 TLS。
- IP 地址许可名单过滤功能已配置为仅允许双方与预定义的 API 源和目的地进行通信。
如需保护 API 代理,请考虑以下其他安全方面。如需了解详情,请参阅使用 Apigee 保护应用和 API 的最佳实践。
架构
下图展示了支持上一部分中列出的通信要求的参考架构:
数据按以下方式流经上图:
- 在 Google Cloud 端,您可以将工作负载部署到虚拟私有云 (VPC) 中。VPC 可以是单个 VPC,也可以是多个 VPC(共享或非共享)。部署应与贵组织的项目和资源层次结构设计相符。
- Google Cloud 环境的 VPC 网络可扩展到其他计算环境。这些环境可以是本地环境,也可以是其他云环境。如需使用内部 IP 地址支持环境之间的通信,请使用合适的混合云和多云网络连接。
如需限制来自特定 VPC IP 地址且目的地为远程网关或负载平衡器的流量,请使用 IP 地址许可名单过滤。使用有状态的防火墙规则时,系统会允许来自这些连接的返回流量。您可以将以下功能任意组合使用,以确保通信安全并将其限制为仅与允许的来源和目的地 IP 地址通信:
具有新一代防火墙 (NGFW) 检查功能的网络虚拟设备 (NVA),放置在网络路径中。
具有入侵防御服务 (IPS) 的 Cloud Next Generation Firewall Enterprise,可实现深度数据包检测,以防范威胁。
所有环境共享无重叠的 RFC 1918 IP 地址空间。
变体
封闭出站流量架构模式可与其他方法结合使用以满足不同的设计要求,同时仍顾及该模式的通信要求。此模式提供以下选项:
使用 Google Cloud API 网关和全球前端
采用这种设计方法,API 公开和管理将在Google Cloud中进行。如上图所示,您可以通过将 Apigee 实现为 API 平台来实现此目的。是否要在远程环境中部署 API 网关或负载均衡器取决于您的具体需求和当前配置。Apigee 提供两种预配连接选项:
- 使用 VPC 对等互连
- 不使用 VPC 对等互连
Google Cloud 全球前端功能(例如 Cloud Load Balancing、Cloud CDN [通过 Cloud Interconnect 访问时] 和跨云互连)可提高用户访问在本地环境和其他云环境中托管后端的应用的速度。
通过从 Google Cloud 点对点 (PoP) 分发这些应用,可优化内容传送速度。 Google Cloud PoP 遍布全球 180 多个互联网交换中心和 160 多个互连设施。
如需了解在将 Apigee 与 Cloud CDN 搭配使用来实现以下目标时,POP 如何帮助提供高性能 API,请观看 YouTube 上的使用 Apigee 和 Cloud CDN 提供高性能 API:
- 缩短延迟时间。
- 在全球范围内托管 API。
- 提高高峰流量的可用性。
上图中所示的设计示例基于不使用 VPC 对等互连的 Private Service Connect。
此设计中的北向网络是通过以下方式建立的:
- 负载均衡器(图中的 LB),客户端请求会终止在此处,负载均衡器会处理流量,然后将其路由到 Private Service Connect 后端。
- 借助 Private Service Connect 后端, Google Cloud 负载均衡器可以使用 Private Service Connect 网络端点组 (NEG) 通过与提供方服务连接关联的 Private Service Connect 连接将客户端请求发送到已发布的服务(Apigee 运行时实例)。
南向网络通过以下方式建立:
- 引用与客户 VPC 中的内部负载均衡器(图中的 ILB)关联的服务连接的 Private Service Connect 端点。
ILB 是与混合连接网络端点组(混合连接 NEG)一起部署的。
通过混合网络连接(例如 VPN 或 Cloud Interconnect)访问混合服务时,需要通过混合连接 NEG 进行访问。
如需了解详情,请参阅设置具有混合连接的区域级内部代理网络负载平衡器和 Private Service Connect 部署模式。
使用 Private Service Connect 公开远程服务
在以下场景中,您可以使用 Private Service Connect 选项公开远程服务:
- 您不使用 API 平台,或者出于以下原因,您希望避免将整个 VPC 网络直接连接到外部环境:
- 您有安全限制或合规性要求。
- 您有 IP 地址范围重叠的情况,例如在合并和收购场景中。
- 即使截止期限较短,也能在各个环境中实现客户端、应用和服务之间的安全单向通信。
- 您可能需要通过服务提供方 VPC(中转 VPC)提供与多个使用方 VPC 的连接,以提供高度可伸缩的多租户或单租户服务模型,以便访问其他环境中已发布的服务。
将 Private Service Connect 用于作为 API 使用的应用可为已发布的应用提供内部 IP 地址,以便跨区域和通过混合连接在专用网络中实现安全访问。这种抽象化有助于通过混合云和多云连接模型来集成来自各种云和本地环境的资源。您可以使用 Private Service Connect 发布服务,并提供精细的访问权限,从而加快应用集成速度并安全地公开位于本地环境或其他云环境中的应用。在这种情况下,您可以使用以下选项:
- 引用区域级内部代理网络负载平衡器或内部应用负载平衡器的服务附件。
- 负载均衡器在提供方 VPC(在此设计中充当中转 VPC)中使用混合网络端点组(混合连接 NEG)。
在上图中,应用 VPC 网络中的工作负载可以通过 Private Service Connect 端点访问在本地环境或其他云环境中运行的混合服务,如下图所示。这种单向通信的设计选项提供了一种与中转 VPC 对等互连的替代方案。
在上图的设计中,多个前端、后端或端点可以连接到同一个服务连接,从而允许多个 VPC 网络或多个使用方访问同一个服务。如下图所示,您可以让应用可供多个 VPC 访问。这种可访问性在多租户服务场景中非常有用,在这种场景中,您的服务会被多个使用方 VPC 使用,即使其 IP 地址范围重叠也是如此。
在集成位于不同环境中的应用时,IP 地址重叠是最常见的问题之一。下图中的 Private Service Connect 连接有助于避免 IP 地址重叠问题。无需预配或管理任何其他网络组件(例如 Cloud NAT 或 NVA)即可执行 IP 地址转换。如需查看示例配置,请参阅使用 Private Service Connect 发布混合服务。
此设计具有以下优势:
- 避免潜在的共享伸缩依赖项和大规模管理复杂性。
- 通过提供精细的连接性控制,提高安全性。
- 减少服务提供方和使用方与远程外部环境之间的 IP 地址协调。
上图中的设计方法可以在后续阶段扩展,以便使用之前讨论的网络设计选项(包括 Private Service Connect 选项)将 Apigee 集成为 API 平台。
您可以使用 Private Service Connect 全球访问权限,让 Private Service Connect 端点可从其他区域访问。
连接到 Private Service Connect 端点的客户端可以位于端点所在的区域,也可以位于其他区域。此方法可用于为托管在多个区域的服务提供高可用性,或从其他区域访问单个区域中提供的服务。当其他区域托管的资源访问 Private Service Connect 端点时,区域间出站流量费用会应用于目的地为具有全球访问权限的端点的流量。
最佳做法
- 将 Apigee 和 Apigee Hybrid 作为 API 平台解决方案有诸多好处。它为后端服务 API 提供了代理层以及抽象或 Facade,并结合了安全功能、速率限制、配额和分析。
- 在适用于您的要求和架构的情况下,将 Apigee Adapter for Envoy 与使用 Kubernetes 的 Apigee Hybrid 部署架构(如适用)搭配使用。
- Google Cloud 中的 VPC 和项目设计应遵循您的资源层次结构和安全通信模型要求。
- 使用 API 网关的 API 时,您还应使用 IP 地址许可名单。许可名单可限制与 API 使用方和 API 网关(可能托管在不同环境中)的特定 IP 地址源和目的地的通信。
- 使用 VPC 防火墙规则或防火墙政策通过 Private Service Connect 端点控制对 Private Service Connect 资源的访问。
- 如果应用通过应用负载平衡器公开到外部,不妨考虑使用 Google Cloud Armor 作为额外的安全层,以防范 DDoS 攻击和应用层安全威胁。
如果实例需要访问互联网,请在应用(使用方)VPC 中使用 Cloud NAT 以允许工作负载访问互联网。这样,您就可以避免在 API 网关或负载均衡器后方部署的系统中为虚拟机实例分配外部公共 IP 地址。
查看混合云和多云网络模式的一般最佳实践。
封闭入站流量
封闭入站流量模式的架构基于,将 Google Cloud 中运行的工作负载的选定 API 公开给私有计算环境,但不向公共互联网公开。此模式与封闭出站流量模式相对应,非常适合边缘混合、分层混合和分区多云场景。
与封闭出站流量模式一样,您可以使用充当现有工作负载或服务外观 (facade) 的 API 网关或负载均衡器来促进这种有限的公开。这样,就可以从私有计算环境、本地环境或其他云环境访问相应的工作负载或服务,具体如下所示:
- 部署在私有计算环境或其他云环境中的工作负载可以使用内部 IP 地址与 API 网关或负载均衡器进行通信。无法访问部署在Google Cloud 中的其他系统。
- 不允许从 Google Cloud 到私有计算环境或其他云环境的通信。流量仅可从私有环境或其他云环境发送到 Google Cloud中的 API。
架构
下图展示了满足封闭入站流量模式要求的参考架构。
上图中架构的说明如下:
- 在 Google Cloud 端,您将工作负载部署到应用 VPC(或多个 VPC)中。
- Google Cloud 环境网络通过使用混合或多云网络连接来扩展到其他计算环境(本地或其他云),以促进环境之间的通信。
- (可选)您可以使用中转 VPC 来实现以下目的:
- 提供额外的边界安全层,以允许访问应用 VPC 之外的特定 API。
- 将流量路由到 API 的 IP 地址。您可以创建 VPC 防火墙规则,以防止某些来源通过端点访问特定 API。
- 通过集成网络虚拟设备 (NVA) 检查中转 VPC 中的第 7 层流量。
- 通过 API 网关或负载均衡器(代理或应用负载均衡器)访问 API 以提供代理层,并为您的服务 API 提供抽象层或外观。如果您需要将流量分发到多个 API 网关实例,可以使用内部直通式网络负载均衡器。
- 使用通过 Private Service Connect 的负载均衡器公开应用或服务,以针对通过 Private Service Connect 端点访问已发布服务的方式提供精细控制的有限访问权限。
- 所有环境都应使用一个无重叠的 RFC 1918 IP 地址空间。
下图说明了此模式的设计,使用 Apigee 作为 API 平台。
在上图中,使用 Apigee 作为 API 平台提供了以下特性和功能来实现封闭入站流量模式:
- 网关或代理功能
- 安全功能
- 速率限制
- 分析
在该设计中:
- 北向网络连接(对于来自其他环境的流量)通过与 Apigee VPC 关联的应用 VPC 中的 Private Service Connect 端点。
- 在应用 VPC 中,内部负载均衡器用于通过 Apigee VPC 中提供的 Private Service Connect 端点公开应用 API。如需了解详情,请参阅停用了 VPC 对等互连的架构。
在应用 VPC 中配置防火墙规则和流量过滤。这样可以提供精细的受控访问机制。它还可帮助阻止系统不通过 Private Service Connect 端点和 API 网关而直接访问您的应用。
此外,您还可以将应用 VPC 中后端工作负载的内部 IP 地址子网的通告限制为本地网络,以避免不通过 Private Service Connect 端点和 API 网关直接访问。
某些安全要求可能需要在应用 VPC 之外进行边界安全检查,包括混合连接流量。在这种情况下,您可以加入中转 VPC 来实现一个额外的安全层。这些层(例如具有多个网络接口的下一代防火墙 [NGFW] NVA 或具有入侵防御服务 (IPS) 的 Cloud Next Generation Firewall Enterprise)会在应用 VPC 外部执行深度数据包检测,如以下图所示:
如上图所示:
- 北向网络连接(对于来自其他环境的流量)通过单独的中转 VPC 流向与 Apigee VPC 关联的中转 VPC 中的 Private Service Connect 端点。
- 在应用 VPC 中,内部负载均衡器(图中的 ILB)用于通过 Apigee VPC 中的 Private Service Connect 端点公开应用。
您可以在同一 VPC 网络中预配多个端点,如下图所示。如需覆盖不同的应用场景,您可以使用 Cloud Router 路由器和 VPC 防火墙规则来控制可能的不同网络路径。例如,如果您使用多个混合网络连接将本地网络连接到 Google Cloud ,则可以通过一个连接将部分流量从本地发送到特定 Google API 或已发布的服务,并通过另一个连接发送其余流量。此外,您还可以使用 Private Service Connect 全球访问权限来提供故障切换选项。
变体
封闭入站流量架构模式可与其他方法结合使用以满足不同的设计要求,同时仍顾及该模式的通信要求。此模式提供以下选项:
从其他环境访问 Google API
对于需要访问 Google 服务(如 Cloud Storage 或 BigQuery),但又不希望通过公共互联网发送流量的场景,Private Service Connect 提供了一种解决方案。如以下图所示,它可使用 Private Service Connect 端点的 IP 地址,通过混合网络连接从本地环境或其他云环境实现对受支持的 Google API 和服务(包括 Google 地图、Google Ads 以及Google Cloud)的访问。如需详细了解如何通过 Private Service Connect 端点访问 Google API,请参阅通过端点访问 Google API 的简介。
在上图中,您的本地网络必须使用 Cloud VPN 隧道或 Cloud Interconnect VLAN 连接来连接到中转(使用方)VPC 网络。
您可以使用端点或后端访问 Google API。端点可让您定位一组 Google API。后端可让您定位某个特定的区域级 Google API。
使用 Private Service Connect 将应用后端公开给其他环境
在特定场景中(如分层混合模式重点介绍),您可能需要在 Google Cloud 中部署后端,同时在私有计算环境中保留前端。虽然此方法不太常见,但它适用于处理可能依赖于旧版组件的重量级单体式前端。适用此方法的一个更常见的场景是,跨多个环境(包括本地和其他云环境)管理分布式应用,需要通过混合网络连接到托管在 Google Cloud 中的后端。
在这种架构中,您可以在私有本地环境或其他云环境中使用本地 API 网关或负载均衡器,以直接将应用前端公开给公共互联网。在 Google Cloud 中使用 Private Service Connect 支持使用 Private Service Connect 端点通过私有连接来连接到公开的后端,最好使用预定义的 API,如下图所示:
上图中的设计使用 Apigee Hybrid 部署,其中包含 Google Cloud 中的管理平面和托管在其他环境中的运行时平面。您可以在本地环境或其他云环境中的某个受支持 Kubernetes 平台上安装和管理分布式 API 网关上的运行时平面。根据您对跨 Google Cloud 和其他环境的分布式工作负载的要求,您可以将 Apigee on Google Cloud 与 Apigee Hybrid 搭配使用。如需了解详情,请参阅分布式 API 网关。
使用中心辐射型架构将应用后端公开给其他环境
在某些情况下,您可能需要公开托管在 Google Cloud 不同 VPC 网络中的应用后端的 API。如下图所示,hub VPC 作为各种 VPC(spoke) 的中心互连点,通过私有混合连接实现安全通信。您可以选择在其他环境中使用本地 API 网关功能(例如 Apigee Hybrid),以在托管应用前端的位置本地终结客户端请求。
如上图所示:
- 如需提供额外的 NGFW 第 7 层检查功能,可以选择在设计中集成具有 NGFW 功能的 NVA。您可能需要这些能力以满足组织的特定安全要求和安全政策标准。
此设计假设 spoke VPC 不需要直接的 VPC 到 VPC 通信。
- 如果需要进行 spoke 到 spoke 的通信,您可以使用 NVA 来促进此类通信。
- 如果您在不同的 VPC 中拥有不同的后端,则可以使用 Private Service Connect 将这些后端公开给 Apigee VPC。
- 如果使用 VPC 对等互连来实现 spoke VPC 与 hub VPC 之间的北向和南向连接,您需要考虑基于 VPC 对等互连的 VPC 网络的传递性限制。如需避开此限制,您可以使用以下任一选项:
如果需要使用 NVA 进行流量检查(包括来自其他环境的流量),则应在混合中转 VPC 上终结到本地环境或其他云环境的混合连接。
如果设计不包含 NVA,您可以在 hub VPC 上终结混合连接。
如果需要某些负载均衡功能或安全功能(例如添加 Google Cloud Armor DDoS 防护或 WAF),您可以选择通过外部 VPC 在边界处部署外部应用负载均衡器,然后再将外部客户端请求路由到后端。
最佳做法
- 如果需要由托管在私有本地环境或其他云环境中的前端在本地接收来自互联网的客户端请求,请考虑使用 Apigee Hybrid 作为 API 网关解决方案。此方法还有助于将解决方案无缝迁移到完全由 Google Cloud托管的环境,同时保持 API 平台 (Apigee) 的一致性。
- 在适用于您的要求和架构的情况下,将 Apigee Adapter for Envoy 与使用 Kubernetes 的 Apigee Hybrid 部署架构(如适用)搭配使用。
- Google Cloud 中的 VPC 和项目的设计应遵循本指南中所述的资源层次结构和安全通信模型要求。
- 将中转 VPC 纳入此设计可让您灵活地在工作负载 VPC 之外提供额外的边界安全措施和混合连接。
- 使用 Private Service Connect 通过混合连接网络使用端点的内部 IP 地址从本地环境或其他云环境访问 Google API 和服务。如需了解详情,请参阅从本地主机访问端点。
- 为了帮助保护项目中的 Google Cloud 服务并降低数据渗漏的风险,请使用 VPC Service Controls 在项目或 VPC 网络级层指定服务边界。
- 如有需要,您可以通过 VPN 或 Cloud Interconnect 将服务边界扩展到混合环境。如需详细了解服务边界的优势,请参阅 VPC Service Controls 概览。
- 使用 VPC 防火墙规则或防火墙政策通过 Private Service Connect 端点控制对 Private Service Connect 资源的网络级访问。例如,应用(使用方)VPC 中的出站防火墙规则可以限制从虚拟机实例到端点的 IP 地址或子网的访问。如需详细了解 VPC 防火墙规则,请参阅 VPC 防火墙规则。
- 在设计包含 NVA 的解决方案时,请务必考虑 NVA 的高可用性 (HA),以避免可能阻止所有通信的单点故障。请遵循您的 NVA 供应商提供的高可用性和冗余设计及实现指南。
- 如需增强边界安全性并保护部署在相应环境中的 API 网关,您可以选择在其他计算环境(混合云或其他云)中实现负载均衡和 Web 应用防火墙机制。请在直接连接到互联网的边界网络上实现这些选项。
- 如果实例需要访问互联网,请在应用 VPC 中使用 Cloud NAT 以允许工作负载访问互联网。这样,您就可以避免在 API 网关或负载均衡器后方部署的系统中为虚拟机实例分配外部公共 IP 地址。
- 对于出站网络流量,请使用安全 Web 代理。该代理具有多项优势。
- 查看混合云和多云网络模式的一般最佳实践。
封闭出站流量和封闭入站流量
封闭出站流量和封闭入站流量模式结合使用封闭出站流量和封闭入站流量,适用于需要在工作负载之间双向使用所选 API 的场景。工作负载可以在 Google Cloud、私有本地环境或其他云环境中运行。在此模式中,您可以使用 API 网关、Private Service Connect 端点或负载均衡器公开特定 API,并可选择提供身份验证、授权和 API 调用审核。
此模式与网状模式之间的主要区别在于,它适用于只需要双向 API 使用或与特定 IP 地址来源和目的地通信的场景,例如通过 Private Service Connect 端点发布的应用。由于通信仅限于公开的 API 或特定 IP 地址,因此您在设计中无需考虑跨环境的网络。常见的适用场景包括但不限于:
- 合并与收购。
- 与合作伙伴进行应用集成。
- 组织的应用和服务与管理自己的应用并托管在不同环境中的不同组织部门之间进行集成。
通信的工作原理如下:
- 您在 Google Cloud 中部署的工作负载可以使用内部 IP 地址与 API 网关(或特定目的地 IP 地址)进行通信。无法访问部署在私有计算环境中的其他系统。
- 相反,您在其他计算环境中部署的工作负载可以使用内部 IP 地址与 Google Cloud端的 API 网关(或特定的已发布端点 IP 地址)进行通信。无法访问部署在 Google Cloud 中的其他系统。
架构
下图展示了封闭出站流量和封闭入站流量模式的参考架构:
上图中的设计方法包含以下要素:
- 在 Google Cloud 端,您在 VPC(或共享 VPC)中部署工作负载,而不将其直接公开到互联网。
- Google Cloud 环境网络可扩展到其他计算环境。该环境可以是本地环境,也可以是其他云环境。如需扩展环境,请使用合适的混合云和多云连接通信模式来支持环境之间的通信,以便它们可以使用内部 IP 地址。
- (可选)通过启用对特定目标 IP 地址的访问,您可以使用中转 VPC 来帮助在应用 VPC 外部添加边界安全层。
- 您可以在中转 VPC 中使用 Cloud Next Generation Firewall 或具有新一代防火墙 (NGFW) 的网络虚拟设备 (NVA) 来检查流量以及允许或禁止来自特定来源的流量在到达应用 VPC 之前访问某些 API。
- 应该通过 API 网关或负载均衡器访问 API,以提供代理层以及服务 API 的抽象或外观 (facade)。
- 对于作为 API 使用的应用,您还可以使用 Private Service Connect 为已发布的应用提供内部 IP 地址。
- 所有环境都使用无重叠的 RFC 1918 IP 地址空间。
此模式的常见应用涉及在 Google Cloud 中部署应用后端(或应用后端的一部分),同时在本地环境或其他云中托管其他后端和前端组件(分层混合模式或分区多云模式)。随着应用不断演变并迁移到云端,通常会出现对特定云服务的依赖和偏好。
有时,这些依赖和偏好会导致应用和后端分布在不同云提供商。此外,某些应用可能使用分布在本地环境和多个云环境中的资源和服务组合进行构建。
对于分布式应用,外部 Cloud Load Balancing 混合云和多云连接功能可用于终结用户请求并将其路由到其他环境中的前端或后端。此路由通过混合网络连接进行,如下图所示。此集成可实现在不同环境中逐步分发应用组件。从前端发送到 Google Cloud 中托管的后端服务的请求可通过由内部负载均衡器(图中的 ILB)协助建立的混合网络连接安全地进行通信。
使用上图中的 Google Cloud 设计可帮助实现以下目标:
- 使用符合此模式通信模型的预定义 API,促进 Google Cloud、本地环境和其他云环境之间的双向通信。
- 如需为面向互联网的应用的全球前端提供分布式应用组件(前端或后端),并实现以下目标,您可以使用分布在入网点 (PoP) 的 Google Cloud 的高级负载均衡和安全功能:
- 使用无服务器托管服务降低资本支出并简化运营。
- 全球优化与应用后端的连接,以提高速度和降低延迟。
- Google Cloud 跨云网络通过最优专用连接在应用组件之间实现多云通信。
- 通过提供对 Cloud CDN 的访问权限,为使用全球 Cloud Load Balancing 的应用缓存需求量较高的静态内容并提高应用性能。
- 使用提供全球分布式 Web 应用防火墙 (WAF) 和 DDoS 缓解服务的 Google Cloud Armor 功能来保护面向互联网的应用的全球前端。
- (可选)您可以将 Private Service Connect 整合到您的设计中。这样,便可以实现从其他环境到 Google Cloud 服务 API 或您的已发布服务的专用访问,此类访问无需穿过公共互联网,并且您可以对其进行精细控制。
变体
封闭出站流量和封闭入站流量架构模式可以与其他方法结合使用,以满足不同的设计要求,同时仍顾及该模式的通信要求。这些模式提供以下选项:
分布式 API 网关
在类似基于分区多云模式的场景中,您可以在不同的云环境中构建应用(或应用组件),包括私有本地环境。共同要求是将发送到应用前端的客户端请求直接路由到托管应用(或前端组件)的环境。这种通信需要本地负载均衡器或 API 网关。这些应用及其组件可能还需要特定的 API 平台功能才能集成。
下图说明了如何设计 Apigee 和 Apigee Hybrid 以在每个环境中使用本地化的 API 网关来满足此类要求。API 平台管理集中在 Google Cloud中。这种设计有助于强制执行严格的访问权限控制措施,即只有预先批准的 IP 地址(目标和目的地 API 或 Private Service Connect 端点 IP 地址)才能在 Google Cloud 和其他环境之间进行通信。
以下列表介绍了上图中使用 Apigee API 网关的两条不同的通信路径:
- 客户端请求直接在托管应用(或前端组件)的环境中到达应用前端。
- 每个环境中的 API 网关和代理处理多个环境中不同方向的客户端和应用 API 请求。
- Google Cloud(Apigee) 中的 API 网关功能公开托管在 Google Cloud中的应用(前端或后端)组件。
- 另一个环境 (Hybrid) 中的 API 网关功能公开托管在该环境中的应用前端(或后端)组件。
您可以选择使用中转 VPC。中转 VPC 可以灵活地分离关注点,并在单独的 VPC 网络中执行安全检查和混合连接。从 IP 地址可达性角度来看,中转 VPC(连接了混合连接)可满足以下要求,以维持端到端可达性:
- 目标 API 的 IP 地址需要通告到托管客户端/请求方的其他环境。
- 需要与目标 API 通信的主机的 IP 地址必须通告到目标 API 所在的环境,例如 API 请求方(客户端)的 IP 地址。通过负载均衡器、代理、Private Service Connect 端点或 NAT 实例进行的通信是例外。
为了将连接扩展到远程环境,此设计使用具有使用方路由交换功能的直接 VPC 对等互连。此设计可让源自 Google Cloud 应用 VPC 中托管的工作负载的特定 API 请求通过中转 VPC 进行路由。或者,您也可以在应用 VPC 中使用 Private Service Connect 端点,该端点与中转 VPC 中具有混合网络端点组后端的负载均衡器相关联。下一部分(使用 Private Service Connect 进行双向 API 通信)介绍了该设置。
使用 Private Service Connect 进行双向 API 通信
有时,企业可能不需要立即使用 API 网关(例如 Apigee),或者可能想稍后再添加。但是,某些业务可能要求在不同环境中的某些应用之间进行通信和集成。例如,如果您的公司收购了另一家公司,您可能需要向该公司公开某些应用。他们可能需要向您的公司公开应用。两家公司可能在不同的环境(Google Cloud、本地或其他云)中托管各自的工作负载,并且必须避免 IP 地址重叠。在这种情况下,您可以使用 Private Service Connect 来协助进行有效通信。
对于作为 API 使用的应用,您还可以使用 Private Service Connect 为已发布的应用提供专用地址,以便跨区域和通过混合连接在专用网络中实现安全访问。这种抽象化有助于通过混合云和多云连接模型来集成来自各种云和本地环境的资源。它还支持跨多云环境和本地环境组合应用。这可以满足不同的通信要求,例如集成未使用或不计划使用 API 网关的安全应用。
通过将 Private Service Connect 与 Cloud Load Balancing 搭配使用(如下图所示),您可以实现两条不同的通信路径。每条路径从不同方向发起,用于不同的连接目的,最好是通过 API 调用。
- 本指南中讨论的所有 Private Service Connect 设计考虑事项和建议都适用于此设计。
- 如果需要额外的第 7 层检查,您可以在此设计中集成 NVA(在中转 VPC 中)。
- 此设计可在有或没有 API 网关的情况下使用。
上图中所示的两条连接路径表示独立的连接,并不是单个连接或流的双向通信。
使用 Private Service Connect 端点和接口进行双向通信
如封闭入站流量模式中所述,启用客户端-服务通信的一种方法是使用 Private Service Connect 端点将提供方 VPC 中的服务公开给使用方 VPC。该连接可以通过混合连接扩展到本地环境,甚至是其他云服务提供商环境。不过,在某些情况下,托管服务也可能需要专用通信。
为了访问特定服务(例如从可以托管在使用方 VPC 内部或外部的数据源中检索数据),这种专用通信可以在应用(提供方)VPC 与远程环境(例如本地环境)之间进行。
在这种情况下,Private Service Connect 接口可让服务提供方虚拟机实例访问使用方的网络。它通过共享网络接口来实现这一点,同时仍保持提供方与使用方角色的分离。借助使用方 VPC 中的这个网络接口,应用虚拟机可以访问使用方资源,就像它们本地位于提供方 VPC 中一样。
Private Service Connect 接口是连接到使用方(中转)VPC 的网络接口。可以访问可从连接了 Private Service Connect 接口的使用方(中转)VPC 访问的外部目的地。因此,此连接可以通过混合连接扩展到外部环境(例如本地环境),如下图所示:
如果使用方 VPC 是外部组织或实体(例如第三方组织),通常您无法保护与使用方 VPC 中 Private Service Connect 接口的通信。在这种情况下,您可以在 Private Service Connect 接口虚拟机的客户机操作系统中定义安全政策。如需了解详情,请参阅为 Private Service Connect 接口配置安全性。或者,如果该方法不符合您的组织的安全合规性或标准,您可以考虑采用其他方法。
最佳做法
如果需要由托管在私有本地环境或其他云环境中的前端在本地接收来自互联网的客户端请求,请考虑使用 Hybrid 作为 API 网关解决方案。
- 此方法还有助于将解决方案迁移到完全由 Google Cloud托管的环境,同时保持 API 平台 (Apigee) 的一致性。
当这些环境属于长期或永久的混合或多云设置时,如需最大限度地减少延迟并优化将大量数据出站转移到其他环境的费用,请考虑以下事项:
- 使用 Cloud Interconnect 或 Cross-Cloud Interconnect。
- 如需在适当的环境中在目标前端终结用户连接,请使用 Hybrid。
在适用于您的要求和架构的情况下,请将 Apigee Adapter for Envoy 与使用 Kubernetes 的 Hybrid 部署搭配使用。
在设计连接和路由路径之前,首先需要确定需要将哪些流量或 API 请求定向到本地或远程 API 网关,以及来源和目标环境。
在项目或 VPC 网络级别指定服务边界,以使用 VPC Service Controls 保护项目中的 Google Cloud 服务并降低数据渗漏的风险。
- 您可以通过授权 VPN 或 Cloud Interconnect 将服务边界扩展到混合环境。如需详细了解服务边界的优势,请参阅 VPC Service Controls 概览。
使用 Virtual Private Cloud (VPC) 防火墙规则或防火墙政策来控制通过 Private Service Connect 端点对 Private Service Connect 资源的网络级访问。例如,应用(使用方)VPC 中的出站防火墙规则可以限制从虚拟机实例到端点的 IP 地址或子网的访问。
使用 Private Service Connect 接口时,您必须为 Private Service Connect 接口配置安全性,以保护与该接口的通信。
如果专用子网中的某个工作负载需要访问互联网,请使用 Cloud NAT 来避免为该工作负载分配外部 IP 地址以及暴露给公共互联网。
查看混合云和多云网络模式的一般最佳实践。
切换模式
采用切换模式时,架构基于使用Google Cloud提供的存储服务将私有计算环境连接到 Google Cloud中的项目。此模式主要适用于遵循分析混合多云架构模式的设置,其中:
- 在私有计算环境或其他云中运行的工作负载会将数据上传到共享存储位置。根据使用场景,可能以批量或小型增量上传。
- Google Cloud托管的工作负载或其他 Google 服务(例如数据分析和人工智能服务)会从共享存储位置使用数据,并以流式或批处理方式对其进行处理。
架构
下图展示了切换模式的参考架构。
上图架构图展示了以下工作流:
- 在 Google Cloud 端,将工作负载部署到应用 VPC 中。这些工作负载可包括数据处理、分析以及与分析相关的前端应用。
- 如需将前端应用安全地公开给用户,您可以使用 Cloud Load Balancing 或 API Gateway。
- 一组 Cloud Storage 存储分区或 Pub/Sub 队列会从私有计算环境上传数据,并使其可供 Google Cloud中部署的工作负载做进一步处理。您可以使用 Identity and Access Management (IAM) 政策限制对可信工作负载的访问。
- 使用 VPC Service Controls 可以限制对服务的访问,并最大限度地降低 Google Cloud 服务中发生不必要的数据渗漏的风险。
- 在此架构中,是通过公共网络或使用 VPN、Cloud Interconnect 或跨云互连的专用连接与 Cloud Storage 存储桶或 Pub/Sub 通信的。通常,连接方式取决于多种因素,例如:
- 预计的流量
- 是临时设置还是永久设置
- 安全和合规性要求
变体
受控入站模式中列出的设计选项(使用 Google API 的 Private Service Connect 端点)也可以应用于此模式。具体而言,它可提供对 Cloud Storage、BigQuery 和其他 Google 服务 API 的访问权限。此方法需要通过混合和多云网络连接(例如 VPN、Cloud Interconnect 和跨云互连)使用专用 IP 地址。
最佳做法
- 锁定对 Cloud Storage 存储桶和 Pub/Sub 主题的访问。
- 在适用的情况下,使用云优先的集成数据迁移解决方案,例如 Google Cloud 解决方案套件。为了满足您的用例需求,这些解决方案旨在高效地移动、集成和转换数据。
评估影响数据传输选项的不同因素,例如费用、预计传输时间和安全性。如需了解详情,请参阅评估转移选项。
为了尽可能缩短延迟时间并防止通过公共互联网传输和移动大量数据,请考虑使用 Cloud Interconnect 或跨云互连,包括在虚拟私有云中访问 Google API 的 Private Service Connect 端点。
如需保护项目中的 Google Cloud 服务并降低数据渗漏风险,请使用 VPC Service Controls。这些服务控制功能可在项目或 VPC 网络级指定服务边界。
- 您可以通过授权 VPN 或 Cloud Interconnect 将服务边界扩展到混合环境。如需详细了解服务边界的优势,请参阅 VPC Service Controls 概览。
通过 API 网关、负载均衡器或虚拟网络设备与在虚拟机实例上托管的公开发布的数据分析工作负载进行通信。请使用其中一种通信方法来增强安全性,并避免这些实例可直接从互联网访问。
如果需要访问互联网,可以在同一 VPC 中使用 Cloud NAT 来处理从实例到公共互联网的出站流量。
查看混合云和多云网络拓扑的一般最佳实践。
一般最佳实践
在设计和引入云身份、资源层次结构和着陆区网络时,请考虑 Google Cloud中的着陆区设计以及企业基础架构蓝图中介绍的 Google Cloud 安全最佳实践。请根据以下文档验证您选择的设计:
此外,请考虑以下一般最佳实践:
选择混合或多云网络连接选项时,请考虑业务和应用要求,例如服务等级协议 (SLA)、性能、安全性、费用、可靠性和带宽。如需了解详情,请参阅选择 Network Connectivity 产品和其他云服务提供商与 Google Cloud的连接模式。
在 Google Cloud 上使用共享 VPC(如果适用且符合您的资源层次结构设计要求),而不是多个 VPC。如需了解详情,请参阅决定是否创建多个 VPC 网络。
遵循规划账号和组织的最佳实践。
在适用的情况下,在环境之间建立通用标识,以便系统能够跨环境边界安全地进行身份验证。
如需在混合设置中安全地向企业用户公开应用,并选择最符合您需求的方法,您应按照建议的方式将 Google Cloud 与您的身份管理系统集成。
- 另请参阅在混合环境中对员工用户进行身份验证的模式。
在设计本地环境和云环境时,请尽早考虑 IPv6 地址,并考虑哪些服务支持 IPv6。如需了解详情,请参阅 Google Cloud上的 IPv6 简介。 该文档总结了撰写博文时支持的服务。
在设计、部署和管理 VPC 防火墙规则时,您可以:
- 如果您需要严格控制防火墙规则应用于虚拟机的方式,请使用基于服务账号的过滤而非基于网络标记的过滤。
- 对多条防火墙规则进行分组时,请使用防火墙政策,以便一次性更新所有这些规则。您还可以将政策设置为分层。如需了解分层防火墙政策规范和详细信息,请参阅分层防火墙政策。
- 当您需要根据特定地理位置或区域过滤外部 IPv4 和外部 IPv6 流量时,请在防火墙政策中使用地理位置对象。
- 如果您需要根据威胁情报数据(例如已知恶意 IP 地址)或公有云 IP 地址范围允许或阻止流量,从而保护您的网络,请使用适用于防火墙政策规则的威胁情报 。例如,如果您的服务只需要与特定公有云进行通信,您可以允许来自特定公有云 IP 地址范围的流量。如需了解详情,请参阅防火墙规则的最佳实践。
您应始终采用多层安全方法来设计云和网络安全,即考虑额外的安全层,例如:
这些额外的层可以帮助您在网络层和应用层过滤、检查和监控各种威胁,以便进行分析和防范。
在确定混合设置中应在何处执行 DNS 解析时,我们建议为您的专用Google Cloud 环境以及由本地环境中的现有 DNS 服务器托管的本地资源使用两个权威 DNS 系统。如需了解详情,请参阅选择执行 DNS 解析的位置。
请尽可能使用 API 网关或负载均衡器通过 API 公开应用。我们建议您考虑使用 Apigee 等 API 平台。Apigee 可用作后端服务 API 的抽象或 Facade,并提供安全功能、速率限制、配额和分析。
API 平台(网关或代理)和应用负载平衡器并不互斥。有时,将 API 网关和负载平衡器搭配使用,可以提供更强大且安全的解决方案,以便大规模管理和分发 API 流量。使用 Cloud Load Balancing API 网关,您可以实现以下目标:
使用 Apigee 和 Cloud CDN 提供高性能 API,以便:
- 缩短延迟时间
- 在全球范围内托管 API
在流量高峰季节增加空房数
如需了解详情,请观看 YouTube 上的使用 Apigee 和 Cloud CDN 提供高性能 API。
实现高级流量管理。
将 Google Cloud Armor 用作 DDoS 攻击防护、WAF 和网络安全服务来保护您的 API。
在多个区域的网关之间高效管理负载均衡。如需了解详情,请观看使用 PSC 和 Apigee 保护 API 并实现多区域故障切换。
如需确定要使用的 Cloud Load Balancing 产品,您必须先确定负载均衡器必须处理的流量类型。如需了解详情,请参阅选择负载均衡器。
使用 Cloud Load Balancing 时,您应在适用的情况下使用其应用容量优化功能。这样做可帮助您应对全球分布式应用中可能出现的一些容量挑战。
- 如需深入了解延迟,请参阅通过负载均衡优化应用延迟。
虽然 Cloud VPN 会对环境之间的流量进行加密,但对于 Cloud Interconnect,您需要使用 MACsec 或通过 Cloud Interconnect 实现的高可用性 VPN 在连接层对传输流量进行加密。如需了解详情,请参阅如何加密通过 Cloud Interconnect 传输的流量。
- 您还可以考虑使用 TLS 进行服务层加密。如需了解详情,请参阅确定如何满足传输加密的合规性要求。
如果您需要通过 VPN 混合连接传输的流量量超过单个 VPN 隧道支持的流量,可以考虑使用主动/主动高可用性 VPN 路由选项。
- 对于出站数据传输量较大的长期混合或多云设置,请考虑使用 Cloud Interconnect 或跨云互连。这些连接选项有助于优化连接性能,并可能降低满足特定条件的流量的出站数据传输费用。如需了解详情,请参阅 Cloud Interconnect 价格。
在连接到 Google Cloud 资源时,如果您尝试在 Cloud Interconnect、直接对等互连或运营商对等互连之间进行选择,除非您需要访问 Google Workspace 应用,否则我们建议您使用 Cloud Interconnect。如需了解详情,您可以比较直接对等互连与 Cloud Interconnect 和通过 Cloud Interconnect 建立运营商对等互连的功能。
在现有 RFC 1918 IP 地址空间中留出足够的 IP 地址空间,用于容纳您的云托管系统。
如果您因技术限制而需要保留 IP 地址范围,可以执行以下操作:
使用混合子网为您的本地工作负载使用相同的内部 IP 地址,同时将其迁移到 Google Cloud。
使用自备 IP (BYOIP) 向 Google 提供Google Cloud 资源,为这些资源预配和使用您自己的公共 IPv4 地址。
如果解决方案的设计需要将基于Google Cloud的应用公开给公共互联网,请考虑适用于面向互联网的应用交付的网络中讨论的设计建议。
在适用的情况下,使用 Private Service Connect 端点,让 Google Cloud中的工作负载、本地工作负载或具有混合连接的其他云环境中的工作负载能够以精细的方式使用内部 IP 地址私下访问 Google API 或已发布的服务。
使用 Private Service Connect 时,您必须控制以下各项:
- 哪些人可以部署 Private Service Connect 资源。
- 是否可以在使用方和提供方之间建立连接。
- 哪些网络流量可以访问这些连接。
如需了解详情,请参阅 Private Service Connect 安全。
如需在混合云和多云架构中实现强大的云端设置,请执行以下操作:
- 全面评估不同环境中不同应用所需的可靠性级别。这样做有助于您实现可用性和弹性目标。
- 了解云服务提供商的可靠性功能和设计原则。如需了解详情,请参阅 Google Cloud 基础架构可靠性。
为了保持可靠的通信,云网络可见性和监控至关重要。Network Intelligence Center 提供了一个控制台,用于管理网络可见性、监控和问题排查。
混合云和多云安全网络架构模式:后续步骤
- 详细了解可通过使用本文档中介绍的网络模式实现的常见架构模式。
- 了解如何实现混合云和多云架构模式以及如何选择合适的工作负载。
- 详细了解 Google Cloud Cross-Cloud Network,这是一个开放、安全且针对本地和其他云中的应用和用户进行优化的全球网络平台。
- 在 Google Cloud中为您的工作负载设计可靠的基础设施:设计指南,帮助您在资源、可用区和区域级保护应用免受故障影响。
- 如需详细了解如何在Google Cloud中设计高可用性架构,请参阅构建可伸缩且弹性佳的应用时应遵循的模式。
- 详细了解可能的连接选项,用于将在本地/边缘环境中运行的 GKE Enterprise 集群连接到 Google Cloud 网络,并了解与 Google Cloud 临时断开连接的影响。