专用 IP

本页面介绍如何将专用 IP 地址与 Cloud SQL 配合使用。如需了解将 Cloud SQL 实例配置为使用专用 IP 的分步说明,请参阅配置专用 IP

概览

将 Cloud SQL 实例配置为使用专用 IP 时,您需要使用专用服务访问通道。专用服务访问通道是作为您的 VPC 网络与 Cloud SQL 实例所在的底层 Google 服务 VPC 网络之间的 VPC 对等互连连接实现的。虽然可以分配多个 IP 范围,但是用于专用 IP 的 IP 范围始终由 Google 分配。使用专用服务访问通道的 IP 流量绝对不会在公共互联网上公开。因此攻击途径受到限制。另外,专用 IP 的网络延迟时间比公共 IP 短。

您可以通过专用服务访问通道连接到:

  • 可访问 VPC 网络的 Cloud SQL 资源。

  • 通过 VPN 隧道Cloud Interconnect 连接到您 VPC 网络的来自外部来源的 Cloud SQL 资源。

您可以从任何区域通过专用 IP 建立连接。您还可以在项目间通过共享 VPC 建立连接。

下图展示了与使用专用 IP(DB1 和 DB2)配置的 Cloud SQL 实例位于同一 GCP 项目中的 Compute Engine 实例 (VM1)。Cloud SQL 实例的 IP 地址在专用服务访问通道分配的范围内,并通过专用服务连接与 VPC 网络进行对等互连。

专用 IP 配置概览图。如上文所述。

专用 IP 的要求

如需使用专用 IP,您的网络和应用环境必须满足以下要求。此外,首次设置专用 IP 时,还需要一些额外的 IAM 权限。

网络要求

创建新的 VPC 网络时,您需要为网络定义分配的 IP 地址范围,并创建专用服务连接。此地址范围包含您的 Cloud SQL 实例的 IP 地址,且不能与项目的 VPC 网络中的任何其他范围重叠。

分配的 IP 地址范围可确保 VPC 网络中自定义路由的子网 IP 范围和目的地不会与专用服务访问通道连接使用的地址范围重叠。您可以手动创建分配的 IP 地址范围(如果要控制 CIDR 块),也可以让 Google Cloud 为您创建一个范围。

Cloud SQL 会为区域和数据库类型的每个组合分配专用服务访问 IP 范围内的 /24 子网。例如,将 MySQL 实例置于两个区域需要分配的 IP 地址范围至少包含两个大小为 /24 的可用子网,而在两个区域中部署 MySQL 和 PostgreSQL 需要四个大小为 /24 的可用子网。在一个区域中,SQL Server 实例可以与 MySQL 实例共用同一个子网。

使用专用 IP 地址连接到 Cloud SQL 实例时会自动获得授权来使用 RFC 1918 地址范围。因此,所有专用客户端都可以在不经过代理的情况下访问数据库。非 RFC 1918 地址范围必须配置为已获授权的网络

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

应用环境要求

  • 如果您是从 GKE 连接,则必须在 VPC 原生集群上运行 GKE 1.8 或更高版本。

API 和 IAM 要求

  • 您必须为您的项目启用 Service Networking API

    如果您使用的是共享 VPC 网络,还需要为宿主项目启用此 API。

  • 建立专用服务访问通道需要有 compute.networkAdmin IAM 角色。

    如果您使用的是共享 VPC 网络,还需要在宿主项目上将 compute.networkAdmin 角色分配给用户。

    为您的网络建立专用服务访问通道后,您不再需要 compute.networkAdmin IAM 角色就能将实例配置为使用专用 IP。

安全

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

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

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

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

为您的网络设置专用服务访问通道概览

首次在特定 VPC 网络上配置专用 IP 连接时,您需要执行一次性过程为 Cloud SQL 设置专用服务访问通道

建立专用服务访问通道后,您可以创建一个 Cloud SQL 实例并将其配置为使用专用 IP 地址,或为现有 Cloud SQL 实例配置专用 IP 地址。如需查看分步说明,请参阅配置专用 IP

专用 IP 主题快速参考

如果您需要管理使用专用 IP 的 Cloud SQL 实例,您可能希望了解以下某些主题:

主题 讨论
共享 VPC 网络 您可以在共享 VPC 网络中创建使用专用 IP 地址的 Cloud SQL 实例。但是,您无法将共享 VPC 网络中的专用 IP 地址分配给现有 Cloud SQL 实例。
区域 您可以跨区域通过专用 IP 建立连接。
旧版网络 您无法从旧版网络连接到 Cloud SQL 实例的专用 IP。 旧版网络不支持 VPC 网络对等互连或专用服务访问通道。
移除专用 IP 将 Cloud SQL 实例配置为使用专用 IP 后,您将无法从该实例中移除专用 IP 功能。
公共 IP 和专用 IP 您可以同时使用公共 IP 和专用 IP 连接到同一个 Cloud SQL 实例。两种连接方法不会相互影响。
现有 Cloud SQL 实例 您可以在创建实例时将实例配置为使用专用 IP。您也可以将现有实例配置为使用专用 IP。 将现有实例配置为使用专用 IP 或更改其连接的网络会导致实例重启,进而出现几分钟的停机时间。
静态 IP 地址 Cloud SQL 实例的专用 IP 地址是静态的,它不会改变。
副本 副本继承其主实例的专用 IP 状态。您无法直接在副本上配置专用 IP。
Cloud Run 您无法将专用 IP 与 Cloud Run 结合使用。
Cloud SQL 代理 如需连接到使用专用 IP 地址的 Cloud SQL 实例,代理必须位于可以访问实例所在 VPC 网络的资源中。如果实例同时启用了这两种 IP 类型,则代理将默认使用公共 IP。为确保实例使用专用 IP,用户需要将 -ip_address_types=PRIVATE 标志传递给代理。了解详情
VPC 网络对等互连 使用专用服务访问通道的连接依赖于 VPC 网络对等互连。但是,您不能显式创建 VPC 网络对等互连,因为要对等互连的网络是 Google Cloud 内部的网络。创建专用服务访问通道连接后,您可以在 Cloud Console 的 VPC 网络对等互连页面看到其底层 VPC 网络对等互连,除非您想移除专用连接,否则不要删除它。

详细了解 VPC 网络对等互连。

VPC Service Controls VPC Service Controls 可提高您降低数据渗漏风险的能力。借助 VPC Service Controls,您可以为 Cloud SQL 实例创建边界。VPC Service Controls 限制了外部对边界内资源的访问权限。只有边界内的客户端和资源才能彼此互动。如需了解详情,请参阅 VPC Service Controls 概览。此外,还请查看使用 VPC Service Controls 时的 Cloud SQL 限制。如需将 VPC Service Controls 与 Cloud SQL 搭配使用,请参阅配置 VPC Service Controls
传递性对等互连 只有直接对等互连的网络才能进行通信。不支持传递性对等互连。换句话说,如果 VPC 网络 N1 与 N2 和 N3 对等互连,但是 N2 和 N3 未直接连接,则 VPC 网络 N2 不能与 VPC 网络 N3 通过 VPC 网络对等互连进行通信。

不同 Google Cloud 项目中的 Cloud SQL 实例可以使用共享 VPC 网络相互连接。

移动 Cloud SQL 实例 Cloud SQL 实例只能在其所属项目拥有的网络之间移动。此外,Cloud SQL 实例既不能在项目之间移动,也不能在由不同项目托管的网络之间移动。

后续步骤