Cloud SQL 中的专用服务访问通道概览

本文档介绍了专用服务访问通道如何为 Cloud SQL 提供专用 IP 连接,并涵盖了 IP 地址分配、网络和安全注意事项以及多 VPC 连接。

专用服务访问通道 是作为 VPC 网络对等互连连接来实现的,该连接位于 VPC 网络 与 Cloud SQL 实例所在的 服务提供商 VPC 网络之间。通过此专用网络连接 ,您的 VPC 网络中的虚拟机实例和您访问的 Google Cloud 服务可以使用专用 IP 地址 与 Cloud SQL 实例进行单独通信。虚拟机实例不需要访问互联网或具备外部 IP 地址,即可访问通过专用服务访问通道提供的服务。

IP 地址

如需在 VPC 网络中使用专用服务访问通道,您需要为 VPC 提供一个或多个 IP 地址范围 (如需详细了解 IP 地址,请参阅 IP 地址)。 这些范围必须足够大,以满足 Cloud SQL 和您计划使用的任何其他 Google Cloud 托管式服务的需求。Cloud SQL and other Google Cloud 服务都需要分配的范围内的专用 IP 地址块。 此类地址块的最小大小为 256 个地址(前缀长度 /24),但建议大小为 65,536 个地址(前缀长度 /16)。

如果您要在多个区域中或针对不同的数据库类型创建实例,则您必须至少有 /24 范围的 IP 地址可供每个区域或数据库类型使用。这包括其他应用,例如 Filestore 或 Memorystore。

设置专用服务访问通道时,您可以选择现有范围或分配新范围。如果您让 Google Cloud 为您分配范围(如 下一部分所述),则 Google Cloud 会分配一个前缀长度为 /24 的范围,名称为 default-ip-range。

何时使用单独的 CIDR 范围

由于 Cloud SQL 使用 /24 CIDR 范围作为 IP 范围单位,因此在多种情况下需要单独的 /24 范围。

  • 区域隔离:如果您在 两个单独的区域中创建两个 Cloud SQL 实例,则必须分配至少两个 单独的 /24 CIDR 范围。每个 IP 范围单元只能用于单个区域内的 Cloud SQL 实例。
  • 强制执行网络架构分离: 使用 --enforce-new-sql-network-architecture 标志(或等效的 API 字段)创建的实例无法与同一项目中采用旧网络架构的实例共享同一 IP 范围单元。 采用新网络架构创建的实例需要 在每个区域中拥有自己的专用 /24 范围。

专用服务访问通道示例

在此示例中,VPC 网络为 Google Cloud 服务分配了地址 范围 10.240.0.0/16,并使用该范围建立了专用 连接。每项 Google Cloud 服务(例如, Cloud SQL)都会在分配的地址块中创建一个子网,以在给定区域中预配新 资源(例如 Cloud SQL 实例)。

专用 IP 配置概览图。

该图说明了专用服务访问通道配置的以下方面:

  • 分配给专用连接的分配范围是 10.240.0.0/16。通过 此分配, Google Cloud 服务可以创建子网来预配新资源 。
  • 在专用连接的 Google Cloud 服务端, Google Cloud 会为客户创建一个项目。该项目是独立的,这意味着没有其他客户共享该项目,并且客户只需要为客户预配的资源付费。
  • 每项 Google Cloud 服务都会创建一个子网,用于在其中预配资源。 子网的 IP 地址范围通常是该服务选择的 /24 无类别域间路由 (CIDR) 地址块,来自分配的 IP 地址范围。您无法修改服务提供方的子网。 服务在现有区域子网(以前由该服务创建)中预配新资源。如果子网已满,则服务会在同一区域中创建一个新子网。
  • 如果服务支持,客户网络中的虚拟机实例可以访问任何区域中的服务资源。一些服务可能不支持跨区域通信。如需了解详情,请参阅相关服务的文档。
  • 跨区域流量(在这种情况下,虚拟机实例会与 不同区域的资源进行通信)的出站数据传输费用仍然需要支付。
  • 为 Cloud SQL 实例分配的 IP 地址是 10.240.0.2。在客户 VPC 网络中,目的地为 10.240.0.2 的请求会路由到专用连接,再路由到服务提供方的网络。请求到达服务网络后,服务网络会包含将请求定向到正确资源的路由。
  • VPC 网络之间的流量在 Google Cloud 网络内部传输,而不是通过公共互联网传输。

网络注意事项

Cloud SQL 会为每个区域分配专用服务访问通道 IP 范围内的一个 /24 子网。例如,将 SQL Server 实例置于两个区域需要分配的 IP 地址范围至少包含两个大小为 /24 的可用子网。

使用专用 IP 地址连接到 Cloud SQL 实例时会自动获得授权来使用 RFC 1918 地址范围。这样一来,所有专用客户端都可以在不经过 Cloud SQL Auth 代理的情况下访问数据库。

默认情况下,Cloud SQL 不会从 VPC 中获知非 RFC 1918 子网路由。您需要将网络对等互连更新到 Cloud SQL,以导出所有非 RFC 1918 路由。

安全注意事项

通过专用服务访问通道传输的流量会经过特定级别的加密。如需了解详情,请参阅 Google Cloud 虚拟网络加密和身份验证。

Cloud SQL Auth 代理可配置为使用专用服务访问通道进行连接, 它使用 IAM 凭据提供身份验证,并使用轮替 SSL/TLS 证书进行端到端加密。

如果您的安全要求强制您使用自行管理的 SSL/TLS 证书,请参阅 配置 SSL/TLS中的说明。

与将所有实例置于“默认”VPC 网络中相比,为每个具有专用 IP 地址的实例创建一个 VPC 网络可实现更好的网络隔离。

多 VPC 连接

Cloud SQL 通过 专用服务访问通道支持专用 IP 地址。 当您创建 Cloud SQL 实例时,Cloud SQL 会在它自己的 VPC 网络(称为 Cloud SQL VPC)中创建该实例。如果启用专用 IP,则需要 在 Cloud SQL VPC 和 VPC 网络之间 设置对等互连连接。这样使 VPC 网络中的资源能够访问 Cloud SQL VPC 网络中的 Cloud SQL 资源的内部 IP 地址。

通过 VPC 网络对等互连, Cloud SQL 可以在内部实现专用服务访问, 从而使内部 IP 地址可在两个 VPC 网络之间连接, 无论它们是否属于同一个项目或组织。 但是,由于 VPC 网络对等互连不具有传递性,因此它仅会在两个直接对等互连的 VPC 之间广播路由。如果您有额外的 VPC,则无法使用通过原始 VPC 设置的连接访问您的 Cloud SQL 资源。

如需缓解此限制并使用专用 IP 地址将 Cloud SQL 实例连接到多个 VPC,您可以使用以下连接选项:

  • 使用自定义通告路由连接
  • 使用中间代理 (SOCKS5) 连接
  • 使用 Cloud SQL Auth 代理即服务连接

如需详细了解如何连接多个 VPC,请参阅 将实例连接到多个 VPC 网络。

接下来怎么做?