专用 IP

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

概览

将 Cloud SQL 实例配置为使用专用 IP 时,您需要使用专用服务访问通道。专用服务访问通道是作为您的 VPC 网络与 Cloud SQL 实例所在的 Google 服务 VPC 网络之间的 VPC 网络对等互连连接实现的。使用专用服务访问权限的 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 连接到 Cloud SQL 具有以下优势:

  • 专用 IP 的网络延迟时间比公共 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 实例共用同一个子网。

应用环境要求

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

API 和 IAM 要求

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

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

  • 建立专用服务访问通道需要有 Network Administrator IAM 角色。

    为您的网络建立专用服务访问通道后,您无需具有 Network Administrator IAM 角色就能将实例配置为使用专用 IP。

安全

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

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

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

为您的网络设置专用服务访问权限概述

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

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

专用 IP 主题快速参考

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

主题 讨论
共享 VPC 网络 您可以在共享 VPC 网络中创建使用专用 IP 地址的 Cloud SQL 实例。但是,您不能为共享 VPC 网络中的现有 Cloud SQL 实例分配专用 IP 地址。
区域 您可以跨区域通过专用 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 网络 N1 与 N2 和 N3 对等互连,但是 N2 和 N3 未直接连接,则 VPC 网络 N2 不能与 VPC 网络 N3 通过 VPC 网络对等互连进行通信。

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

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

后续步骤