Cloud SQL Auth Proxy

你的 Cloud SQL 实例没有公网 IP。
按名字够到它,不用堡垒机 VM。

打开连接时,AgentsRoom 会启动 Cloud SQL Auth Proxy,并让自己的数据库客户端从中穿过。你只需给出实例连接名 project:region:instance,或者从你自己的 gcloud 登录能看到的列表里挑一个。

代理由你的 Application Default Credentials(应用默认凭据)授权,所以 AgentsRoom 不保存任何服务账号密钥。启用 IAM 数据库身份验证后,连数据库密码也不需要。而且 AI 编程智能体也能以只读方式查询同一个实例。

Cloud SQL Auth Proxy
无公网 IP
AgentsRoom
127.0.0.1:由操作系统挑选的端口
cloud-sql-proxy
--private-ip --auto-iam-authn
你的 gcloud 登录TLS 1.3, IAM
Cloud SQL 实例
acme-prod:europe-west1:orders
预留一个空闲的回环端口
仅限回环,绝不落到局域网上不存密钥,不用堡垒机 VM

AgentsRoom 如何经由 Cloud SQL Auth Proxy 访问私有 IP 上的 Cloud SQL 实例,而应用这一侧什么都不保存。

只有私有 IP 的 Cloud SQL 实例,是正确的配置,也是别扭的配置。数据库待在你的 VPC 里,公网 IP 是关着的,能够到它的只有那张网络内部的机器。然后,为了一个 bug,你需要在笔记本上看三行数据。

Google 早就给出了答案:Cloud SQL Auth Proxy。它向实例打开一条加密连接,授权靠的是你的 Google 身份,而不是 IP 白名单,并把它暴露成一个本地端口。真正的麻烦在它周围的一切:要安装它,要记住实例连接名,要在打开客户端之前先在终端里启动它,用完之后还常常忘了关。

这一部分由 AgentsRoom 来做。在数据库连接的“经由”字段里选 Google Cloud SQL,填上实例,需要的话勾选“私有 IP”或“IAM 数据库身份验证”,从此打开那个数据库就是一次点击的事。代理随连接启动,也随连接停止。

绕开它的那些常规办法,每一种都要你付出代价

同一个问题的三种答案,以及它们各自向你收取的费用。

专为此事而设的堡垒机 VM

一台开着 SSH 端口的 Compute Engine VM,只为了偶尔有人要隧道连到数据库,就一直留在 VPC 里。它要打补丁,每小时都在花钱,它的 SSH 密钥和防火墙规则还会随着团队人员变动而逐渐失真。

公网 IP 加白名单

打开公网 IP,再把你家的地址加进授权网络,在地址变掉之前都管用,而这期间数据库一直在互联网上监听。这种例外,从来没人真的去撤销。

放在笔记本上的服务账号密钥

为了跑代理而下载一份 JSON 密钥,是人人事后都后悔的捷径:一份长期有效的凭据躺在下载文件夹里,被复制进脚本和提示词,没人轮换,也没人能追踪。

从一个私有 Cloud SQL 实例到一份结果集

四个步骤,做一次就够,之后就是一次点击的事。

01

用 gcloud 登录一次

在你的机器上运行 gcloud auth application-default login。它创建的 Application Default Credentials(应用默认凭据)就是代理访问实例时使用的凭据。AgentsRoom 既不读取其中任何内容,也不保存。

02

在“经由”里选好实例

新建一个 MySQL 或 PostgreSQL 连接,在“经由”里选 Google Cloud SQL。输入实例连接名 project:region:instance,或者点“列出我的实例”,从你的 gcloud 登录能看到的实例里挑一个。主机和端口字段会消失:实例本身就是地址。

03

选好私有 IP 和 IAM 身份验证

实例没有公网地址、而你的机器通过 VPN 或 Interconnect 能到达它的 VPC 时,勾选“私有 IP”。想用你的 Google 身份登录,就勾选“IAM 数据库身份验证”:密码字段会消失,用户就是你的 IAM 数据库用户。

04

自己查,或者让智能体去查

打开连接时,会预留一个空闲的回环端口,在其上启动 cloud-sql-proxy,并一直等到它接受 TCP 连接。控制台像连接其他任何连接一样连到 127.0.0.1,AI 智能体也可以经由 MCP 以只读方式查询它。关闭连接时,代理也随之停止。

实际跑起来的是什么

AgentsRoom 启动的那条命令

这里没有重新实现任何东西。AgentsRoom 把 Google 自己的 cloud-sql-proxy 二进制文件(2 版)作为子进程运行,参数直接传入而不经过 shell。如果你曾经手动启动过代理,这就是你早已认得的那一行。

cloud-sql-proxy acme-prod:europe-west1:orders \
  --address 127.0.0.1 --port 54321 \
  --private-ip \
  --auto-iam-authn

实例和两个选项都来自你保存的连接。本地端口则在打开时由操作系统挑选。

代理会先接受本地连接,再去检查别的,出了问题就断开它并把原因写进日志。AgentsRoom 会读取这份日志,告诉你真正的原因:代理没有安装,你的 gcloud 登录已经过期(并附上该运行的命令),你的账号缺少 Cloud SQL Client 角色,实例没有私有 IP,或者实例名写错了。

前置条件

它跑起来之前,有哪些条件必须成立

AgentsRoom 驱动你既有的 Google Cloud 配置,而不是取代它。这些条件,和代理单独使用时所需要的完全一样。

  • 你机器上的 cloud-sql-proxy

    Cloud SQL Auth Proxy 的 2 版,位于你的 PATH 中。最快的办法是 gcloud components install cloud-sql-proxy;Google 也提供独立下载。如果找不到它,AgentsRoom 会明说,并给出该运行的命令。

  • Application Default Credentials

    运行一次 gcloud auth application-default login 即可。这个登录过期时,错误信息会告诉你重新运行它,而不是只给你看一个关闭的套接字。

  • Cloud SQL Client 角色

    你的 Google 账号需要在实例所属项目里拥有 Cloud SQL Client 角色,并且该项目里要启用 Cloud SQL Admin API。IAM 数据库身份验证还需要 Cloud SQL Instance User 角色,以及实例上的一个 IAM 用户。

  • 用于下拉列表的 gcloud

    “列出我的实例”会在你当前激活的项目里,或者你刚开始输入的那个项目里运行 gcloud sql instances list。没有 gcloud 也行,手动输入连接名即可。

  • 通往 VPC 的路径,供私有 IP 使用

    使用私有 IP,意味着你的机器本身必须能到达实例所在的 VPC,途径可以是 VPN、Interconnect,或者网络内部的某台机器。没有这条路径时,请关掉“私有 IP”,改用公网 IP,并依靠代理的加密。

代理做什么,又拒绝做什么

这些性质决定了:把它配置好留在笔记本上,是否安全。

仅限回环

代理只监听 127.0.0.1,别的都不听。数据库绝不会被重新发布到局域网上,所以咖啡馆的 Wi-Fi 不会变成通往生产环境的路。

由操作系统挑选的端口

AgentsRoom 向操作系统要一个空闲端口,并把它交给代理。不用记固定端口,也不会和你手动启动的另一个代理冲突。

就绪就是真就绪

只有在本地端口接受 TCP 之后,连接才会打开,而一启动就退出的代理,会如实报告它打印出的原因。没有随便的 sleep,也不会有客户端连得太早。

不存密钥

代理由你的 Application Default Credentials 授权。AgentsRoom 保存的是实例连接名和两个选项,其中没有任何一项是凭据,服务账号密钥也从不接触应用。

数据库保持只读

数据库连接在创建时是只读的。要写入,必须先把该连接设为可写并明确确认,而在标记为生产环境的连接上,这个确认会更醒目。

每次调用一条语句

每次调用只携带一条语句,所以分号后面藏不了任何东西;结果集也有上限,宽泛的查询不会把窗口或智能体的上下文撑爆。

为什么这意味着更少的访问,而不是更多

实例这一侧什么都不用开。公网 IP 可以继续关着,不用往授权网络里加任何网络,也不用为了偶尔一次查询,让一台开着 SSH 端口的 VM 一直活着。代理对到实例的连接做端到端加密。

授权仍然留在你的组织管理它的地方:你的 Google 身份及其 IAM 角色。授予该身份的访问,会和其他任何 Cloud SQL 连接一样被记录,并且在角色被移除的那天结束。AgentsRoom 保存的是实例名、“私有 IP”的选择和 IAM 的选择,仅此而已,没有任何东西能被读到它们的人拿去重放。

数据库一侧的防护栏,和每一个 AgentsRoom 连接得到的一样:默认只读,每次调用一条语句,结果集有上限,以及一个会让写入确认更严格的生产环境标记。经由 MCP 查询的 AI 智能体拿到的是结果集,而不是凭据;除非你把该连接设为可写,并为它打开“允许智能体写入”,否则它无法写入。

不支持的内容

支持 MySQL 和 PostgreSQL,暂不支持 SQL Server

Cloud SQL 可以运行 MySQL、PostgreSQL 和 SQL Server。AgentsRoom 能经由代理访问前两种,目前还没有 SQL Server 客户端。自带专用代理的 AlloyDB 同样不在支持范围内。

下一个支持哪种引擎或服务,取决于大家提出的需求。如果你用的那个不在其中,请在公开待办里说一声是哪一个,我们会把它计入。

申请你的数据库引擎
AI 智能体 + Cloud SQL

智能体也能查询它,只读

db_listdb_schemadb_querydb_connection_newdb_connection_save

连接建好之后,AI 编程智能体经由 AgentsRoom MCP 只需说出连接名即可使用:db_list,db_schema 用来遍历表和列,db_query 用来执行一条行数有上限的语句。智能体也可以自己注册一个 Cloud SQL 连接,用 db_connection_new 或 db_connection_save,给出实例连接名即可。

智能体提出请求时,由 AgentsRoom 自己启动代理进程,所以智能体永远不用接触 Google 凭据、数据库密码或端口号。传回去的只有结果集。写入需要一个可写的连接,以及默认关闭的“允许智能体写入”设置。

一个针对生产环境副本做调试的智能体,读到的是能解释这个 bug 的那几行数据:没有会泄漏进它上下文的凭据,应用一关闭,也没有任何通往数据库的路径。

常见问题

怎样连接一个只有私有 IP 的 Cloud SQL 实例?

新建一个 MySQL 或 PostgreSQL 连接,在“经由”里选 Google Cloud SQL,填上实例连接名并勾选“私有 IP”。AgentsRoom 会带上 --private-ip,在一个回环端口上启动 Cloud SQL Auth Proxy,并让客户端连到它。你的机器必须能到达实例所在的 VPC,例如通过 VPN 或 Interconnect。

AgentsRoom 会保存服务账号密钥吗?

不会。代理由 gcloud auth application-default login 在你的机器上创建的 Application Default Credentials 授权。AgentsRoom 保存的是实例连接名和两个选项,其中没有任何一项是凭据。

可以不用数据库密码来连接吗?

可以,使用 IAM 数据库身份验证。在连接里勾选它,代理就会带着 --auto-iam-authn 运行,用你的 Google 身份登录,密码字段随之消失,用户就是你的 IAM 数据库用户。实例必须已启用 IAM 身份验证,并且已创建该用户。

需要安装什么?

Cloud SQL Auth Proxy 2 版(gcloud components install cloud-sql-proxy,或 Google 的独立下载),以及用于 Application Default Credentials 的 gcloud 登录。gcloud 本身只有“列出我的实例”按钮才需要。

gcloud 登录过期会怎样?

代理会拒绝连接并把原因写进日志。AgentsRoom 读取这份日志,显示一条通俗的提示,告诉你运行 gcloud auth application-default login,而不是丢给你一个干巴巴的连接错误。然后重试即可。

用的是哪个本地端口,谁能访问到它?

连接打开时由操作系统挑一个空闲端口,而代理只监听 127.0.0.1。局域网里的任何设备都够不到它,连接关闭或应用退出时,代理也随之停止。

支持哪些 Cloud SQL 引擎?

Cloud SQL for MySQL 和 Cloud SQL for PostgreSQL。Cloud SQL for SQL Server 暂不支持,因为 AgentsRoom 还没有 SQL Server 客户端;请在公开待办里提出,我们会把它计入。

能在 Windows 和 Linux 上用吗?

能。cloud-sql-proxy 在 macOS、Windows 和 Linux 上都是原生二进制文件,AgentsRoom 在这三个系统上以同样的方式启动它。手机应用会列出同样的连接,并经由你的桌面端以只读方式查询它们。

AI 智能体可以经由代理进程查询数据库吗?

可以,默认只读。智能体经由 AgentsRoom MCP 按名字指定一个已保存的连接,由应用启动代理进程并自己执行语句,传回去的只有结果集。AI 智能体从不会拿到 Google 凭据或数据库密码,而且除非该连接可写、并且你为它打开了“允许智能体写入”,否则 db_query 会拒绝任何非读取的操作。

你可能还喜欢

查询你的私有 Cloud SQL 实例

下载 AgentsRoom,选好你的 Cloud SQL 实例,用你自己的 gcloud 登录,经由 Cloud SQL Auth Proxy 查询它:不用堡垒机 VM,没有公网 IP,磁盘上也没有密钥。

免费下载

配套应用:随时随地监控你的 Agent

使用 Claude、Codex、Antigravity CLI 或其他 AI 提供商。

获取扩展程序
Chrome Web Store

把 Bug 和需求直接发送到您的公开待办清单。

多项目管理
多供应商
多代理运行
实时状态
文件差异与提交
移动应用
实时预览
代理团队
浏览器自动化
Backlog 驱动开发
提示词库
技能库
查看所有功能