选择连接到 Cloud SQL 的方式

本页面简要介绍了可用于连接到 Cloud SQL 实例的方式。

在连接到 Cloud SQL 实例之前,您需要决定如何部署和配置 Cloud SQL 实例以及支持的网络资源。如果您的 Cloud SQL 实例已配置并部署,本页面可帮助您了解将客户端连接到现有实例的不同方式。

IP 地址类型:专用或公共

首次创建 Cloud SQL 实例时,您可以选择为该实例配置公共 IP 地址专用 IP 地址同时配置两者

您可以根据应用要求选择实例的 IP 地址配置。配置实例后,您可以在客户端连接字符串中指定公共 IP 地址、专用 IP 地址或 DNS 名称(在某些情况下)。

专用 IP 地址 公共 IP 地址
说明 仅限 Virtual Private Cloud (VPC) 网络的内部(专用)IP 地址 可通过互联网访问的外部(公共)IP 地址
决策点

您是否需要从 VPC 网络中托管的客户端进行连接 Google Cloud ,或者从有权访问这些 VPC 网络的客户端进行连接?

如果选择“是”,请为实例选择一个专用 IP 地址

您是否需要通过公共互联网从 Google CloudVPC 网络外部的客户端进行连接?

如果需要,请为实例选择一个公共 IP 地址

配置选项

支持以下类型的专用网络配置:

当您使用公共 IP 地址直接连接到实例时,必须配置已获授权的网络

另一种更安全的连接到使用公共 IP 的 Cloud SQL 实例的方法是使用 Cloud SQL 连接器(例如 Cloud SQL Auth 代理或某个 Cloud SQL 语言连接器)。

如需了解如何向实例添加公共 IP 地址,请参阅配置公共 IP

如需使用公共 IP 地址连接到 Cloud SQL 实例,您可以使用 psql 客户端或其他可用客户端。

摘要

建议: 为了提高安全性,我们建议您使用专用 IP 地址类型配置实例,除非您有特定的要求,需要使用可从互联网访问的 Cloud SQL 实例,或者您是从不符合 VPC 要求的客户端进行连接。

连接类型:Cloud SQL 连接器或直接连接

连接到 Cloud SQL 实例时,您可以使用 Cloud SQL 连接器,也可以直接连接。

Cloud SQL 连接器可以是 Cloud SQL Auth 代理,也可以是某个 Cloud SQL 语言连接器

Cloud SQL 连接器 直接连接
说明 Cloud SQL Auth 代理(一种客户端代理)和 Cloud SQL 语言连接器(客户端库)可简化并安全地访问 Cloud SQL 实例,尤其是在使用公共 IP 地址连接到实例时。 客户端与 Cloud SQL 实例之间的直接连接可提供延迟时间更短的连接。 可以直接从公共或专用 IP 地址建立连接。
决策点

在以下场景中,Cloud SQL 连接器非常有用:

  • 当您想使用公共 IP 地址连接到 Cloud SQL 实例,但又不想配置已获授权的网络时。
  • 当您希望自动加密进出数据库的流量,并验证服务器和客户端身份,而无需管理 SSL 证书时。
  • 当您使用 IAM 数据库身份验证并希望自动刷新 OAuth 2.0 访问令牌时。
  • 当您从使用动态分配或临时 IP 地址的客户端或应用进行连接时。动态 IP 配置对于平台即服务 (PaaS) 应用来说可能很常见。

使用直接连接具有以下优势:

  • 与使用 Cloud SQL 连接器的连接相比,延迟更低。
  • 与 Cloud SQL 连接器不同,没有额外的软件包或库依赖项。
  • 使用直接连接时,您需要负责配置 SSL/TLS 设置。
配置选项

如需在 Cloud SQL 实例上以及为客户端配置 SSL/TLS 证书,请执行以下操作:

  1. 为实例选择服务器 CA 模式
  2. 将实例配置为对实例上的连接强制执行 SSL/TLS 加密
  3. 创建客户端证书
  4. 下载服务器和客户端证书。
摘要

连接到 Cloud SQL 实例时,您可以使用 Cloud SQL 连接器,也可以直接从客户端进行连接。

一般建议:如果您通过专用 IP 地址 连接到实例,请使用直接连接。我们还建议您强制执行 SSL 并为连接配置 SSL/TLS 证书。

如果您通过公共 IP 地址连接到实例,请使用 Cloud SQL 连接器(Cloud SQL Auth 代理或某个 Cloud SQL 语言连接器)。

数据库身份验证类型:IAM 或内置

连接到实例时,您必须以数据库用户身份进行身份验证。 您可以选择内置身份验证IAM 数据库身份验证

IAM 数据库身份验证 内置身份验证
说明 借助 IAM 数据库身份验证,您可以使用短期有效的访问令牌(而非密码)通过 Google Cloud IAM 用户和服务账号对数据库进行身份验证。 您可以使用 IAM 主账号(例如用户、服务账号和群组)来管理数据库权限。 内置身份验证使用数据库本地用户名和密码对数据库用户进行身份验证。
决策点 您是否希望在 Google Cloud中使用 IAM 集中管理 Google Cloud服务中的用户?如果是,请使用 IAM 数据库身份验证。 您是否有依赖于内置数据库身份验证的应用或工作流?如果可以,请使用内置身份验证。
配置选项

您可以针对单个 IAM 用户、单个服务账号和群组使用 IAM 数据库身份验证。如需了解详情,请参阅使用 IAM 数据库身份验证管理用户

如果您使用 Cloud SQL 连接器,则该连接器会处理 IAM 访问令牌的自动刷新。 如需了解详情,请参阅自动 IAM 数据库身份验证

您可以使用内置数据库身份验证,并在实例和用户级别配置密码政策。 如需了解详情,请参阅内置身份验证
摘要 建议:除非您的应用或工作流依赖于内置数据库身份验证,否则请尽可能使用 IAM 数据库身份验证。

使用专用 IP 地址时的专用网络选项

将实例配置为使用专用 IP 地址时,您可以选择以下专用网络选项:专用服务访问通道、Private Service Connect 或两者都选择。

支持的功能

下表列出了在连接到配置了一个或两个专用网络选项的实例时,Cloud SQL 支持的功能。

功能 仅启用了专用服务访问通道的实例 仅启用了 Private Service Connect 的实例 启用了专用服务访问通道和 Private Service Connect 的实例
多个 VPC 连接 不受支持。 受支持。 使用 Private Service Connect 端点时支持。
pglogicalPL/Proxydblinkpostgres_fdw 扩展 受支持。 不受支持。 对于专用服务访问通道,使用出站连接时支持。
外部副本 受支持。 不受支持。 对于专用服务访问通道,使用出站连接时支持。
写入端点 受支持。 不受支持。 专用服务访问通道支持。
更改专用服务访问通道的关联 VPC 网络 受支持。 不适用。 专用服务访问通道不支持,因为实例已启用 Private Service Connect。不适用于 Private Service Connect。
客户端 IP 地址对 Cloud SQL 的可见性 受支持。 不受支持。 使用专用服务访问通道 IP 地址时支持。使用 Private Service Connect 端点时不支持。

从实例中移除网络选项

Cloud SQL 支持从实例中移除以下网络选项:

  • 启用了专用服务访问通道和公共 IP 的实例上的公共 IP
  • 启用了公共 IP、专用服务访问通道和 Private Service Connect 的实例上的公共 IP
  • 同时启用了 Private Service Connect 和专用服务访问通道的实例上的 Private Service Connect
  • 启用了 Private Service Connect、专用服务访问通道和公共 IP 的实例上的 Private Service Connect

为实例启用联网选项

您可以启用 Cloud SQL 支持为实例启用以下连接选项:

  • 仅启用了公共 IP 的实例上的专用服务访问通道
  • 仅启用了专用服务访问通道的实例上的 Private Service Connect
  • 启用了专用服务访问通道和公共 IP 的实例上的 Private Service Connect
  • 仅启用了专用服务访问通道的实例上的公共 IP

限制

  • 您无法创建同时具有公共 IP 地址和 Private Service Connect 的实例。
  • 您无法从同时启用了专用服务访问通道和 Private Service Connect 的实例中移除专用服务访问通道。
  • 您无法从同时启用了专用服务访问通道和公共 IP 的实例中移除专用服务访问通道。
  • 如果实例仅使用公共 IP,则无法同时启用专用服务访问通道和 Private Service Connect。请先启用专用服务访问通道,然后再启用 Private Service Connect。
  • 您无法使用已获授权的网络为 Private Service Connect 实例执行基于 IP 地址的许可名单操作。

用于连接到 Cloud SQL 的工具

下表包含一些连接到 Cloud SQL 的选项:

连接选项 更多信息
Cloud SQL Auth 代理
gcloud CLI
Cloud SQL 语言连接器
Cloud Shell
Cloud Code
使用第三方数据库管理工具连接
pgAdmin
Toad Edge
Blendo

问题排查

如果您在连接时遇到问题,请查看以下页面,以获取有关调试或查找已知问题的解决方案的相关帮助:

后续步骤