专用 IP

此页面介绍如何使用专用 IP 连接到您的 Cloud SQL 实例。如需了解将实例配置为使用专用 IP 的分步说明,请参阅配置专用 IP 连接

概览

将 Cloud SQL 实例配置为使用专用 IP 时,您需要使用专用服务访问连接。要实现专用服务访问连接,需要在您的 VPC 网络与 Cloud SQL 实例所在的 Google 服务 VPC 网络之间建立 VPC 网络对等连接。使用专用服务访问权限的 IP 流量绝对不会在公共互联网上公开。

下图展示了一个配置为使用专用 IP 的 Cloud SQL 实例,以及一个对等互连客户 VPC 网络上的 Compute Engine 实例,该 VPC 网络使用专用服务访问权限连接到 Cloud SQL 实例。

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

您可以使用专用服务访问权限,从 Compute Engine 或 Google Kubernetes Engine 实例连接到 Cloud SQL 实例。

优势

与使用公共 IP 地址相比,使用专用 IP 连接到 Cloud SQL 有若干优势,其中包括:

  • 减少网络延迟时间

    专用 IP 的延迟时间比公共 IP 短。

  • 提高网络安全性

    专用服务访问流量绝对不会在公共互联网上公开。

环境要求

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

网络要求

  • 能否连接使用专用 IP 地址的 Cloud SQL 实例取决于专用服务访问连接,该连接会使用 VPC 网络对等互连将您的 VPC 网络连接到由 Google 管理的 VPC 网络。Cloud SQL 实例则使用由 Google 管理的 VPC 网络中的子网。

    • 您只能通过单个 VPC 网络访问使用专用 IP 地址的 Cloud SQL 实例。每个专用服务访问连接都要求通过单个 VPC 网络对等互连与一个 VPC 网络相连。

    • 如果某个使用专用 IP 地址的 Cloud SQL 实例与一个 VPC 网络 (A) 建立了专用服务连接,而该 VPC 网络使用 VPC 网络对等互连连接到另一个 VPC 网络 (B),则无法通过 VPC 网络 B 访问该 Cloud SQL 实例。

    • 您无法通过另一个使用 Cloud VPN 隧道、基于实例的 VPN 或 Cloud Interconnect 的网络访问使用专用 IP 地址的 Cloud SQL 实例。此限制适用于本地网络和其他 VPC 网络。

    • 您无法从旧版网络连接到 Cloud SQL 实例的专用 IP。旧版网络不支持 VPC 网络对等互连或专用服务访问。

  • 要访问使用专用 IP 地址的 Cloud SQL 实例,您必须使用同一区域中的 GCP 资源。

  • 您必须为 VPC 网络中的 Cloud SQL 实例定义分配的 IP 地址范围。此范围为 IP 地址的 CIDR 块,供专用服务访问连接(以及生成的 VPC 网络对等互连)使用。您无法在您的 VPC 网络中使用这些 IP 地址。分配的 IP 地址范围可确保 VPC 网络中自定义路由的子网 IP 地址范围和目的地不会与专用服务访问连接使用的 IP 地址范围和目的地重叠。您可以手动创建分配的 IP 地址范围(如果要控制 CIDR 块),也可以让 GCP 为您创建一个范围。

  • 您可以在共享 VPC 网络中创建使用专用 IP 地址的 Cloud SQL 实例;但是,GCP 不允许您将现有 Cloud SQL 实例的专用 IP 地址分配给共享 VPC 网络中的地址。

应用环境要求

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

  • 如果您是从 App Engine 连接,则必须使用柔性环境。您无法使用专用 IP 从标准环境连接。

API 和 IAM 要求

  • 您必须为项目启用 Service Networking API。如果您使用的是共享 VPC,则还需要为宿主项目启用此 API。

    要启用 API,您需要具有 servicemanagement.services.bind IAM 权限。

  • 要建立专用服务访问权限,您需要 Network Administrator IAM 角色。

    为您的网络建立专用服务访问权限后,您无需 Network Administrator 角色即可将实例配置为使用专用 IP。

安全

专用服务访问流量都经过加密和身份验证。如需了解详情,请参阅 Google Cloud 的虚拟网络加密和身份验证。如果您的安全要求强制使用您所管理的 SSL/TLS 认证,则可以按照配置 SSL/TLS 中的说明,将 SSL/TLS 添加到您的实例。

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

如果您是首次将 Cloud SQL 实例配置为在某个特定网络上使用专用 IP,则按照以下常规流程为该网络设置专用服务访问权限。Google Cloud Platform Console 中的 Cloud SQL 实例创建流程将指导您完成这些步骤。

  1. 选择您要通过其建立连接的资源所在的 VPC 网络。

  2. 为您的 VPC 网络和 Cloud SQL 服务建立专用服务访问权限(如果还没有启用此权限的话)。这需要从您的网络中分配 IP 地址范围。

    1. 如果您之前已分配要使用的 IP 范围,则可以选用并继续下一步。

    2. 如果您希望 Cloud SQL 自动为您分配范围,请选择相应选项并继续下一步。

    3. 若想手动选择要为专用连接分配的 IP 范围,则必须使用 gcloud 命令行界面工具创建 IP 范围,然后返回 Cloud SQL 实例创建流程并选择新创建的 IP 范围。如需了解详情,请参阅分配 IP 地址范围

建立专用服务访问权限后,除了 Google Cloud Platform Console 外,您还可以使用 gcloud 命令行工具或 Cloud SQL Admin API,创建配置为使用专用 IP 的 Cloud SQL 实例,或者为现有 Cloud SQL 实例配置专用 IP。如需了解详情,请参阅专用 IP

管理注意事项

管理使用专用 IP 的 Cloud SQL 实例时,您应该注意以下事项:

  • 将 Cloud SQL 实例配置为使用专用 IP 后,将无法从该实例中删除专用 IP 功能。

  • 您可以在创建实例之时或之后,将实例配置为使用专用 IP。

  • 将现有实例配置为使用专用 IP 或更改其连接的网络,将导致实例重新启动。这会造成几分钟的停机时间。

  • Cloud SQL 实例是在生产者的网络(Google 内部的 VPC 网络)中创建的。它们不是在您的 VPC 网络中创建的。

  • Cloud SQL 实例的私有 IP 地址是静态的,它不会改变。

  • 将现有实例配置为使用专用 IP 时,不能同时对该实例进行任何其他更新。

  • 副本将继承其主实例的专用 IP 状态。您无法直接在副本上配置专用 IP。

  • 您可以使用公共 IP 和专用 IP 连接到 Cloud SQL 实例。任意一种连接方法都不会影响另一种方法;无论实例是否配置为使用专用 IP,您都必须保护公共 IP 连接。

  • 您可以使用 Cloud SQL Proxy 连接到也配置为使用专用 IP 的实例。代理可以使用专用 IP 地址或公共 IP 地址进行连接。如果您使用 Cloud SQL 代理连接到同时分配了公共和专用 IP 地址的实例,则代理默认使用公共 IP 地址。 了解详情

  • 专用服务访问权限连接依赖于 VPC 网络对等互连。但是您不能显式创建 VPC 网络对等互连,因为要对等互连的网络是 GCP 内部的网络。建立专用服务访问权限连接后,您可以在 GCP Console 的 VPC 网络对等互连页面看到 VPC 网络对等互连,除非您想移除专用连接,否则您不应删除它。

  • 建立专用服务访问权限连接并创建具有为该连接配置的专用 IP 的 Cloud SQL 实例后,您将无法修改或删除 Cloud SQL 服务使用的相应(内部)子网和范围。即使您删除了对等互联和您的 IP 范围,也是如此。建立内部配置后,在同一区域中创建并为专用 IP 配置的任何 Cloud SQL 实例都使用原始内部配置。

  • 无法将专用 IP 与第一代实例结合使用。

后续步骤

此页内容是否有用?请给出您的反馈和评价:

发送以下问题的反馈:

此网页
Cloud SQL for MySQL