本页面介绍了如何使用 AlloyDB Auth Proxy 通过公共 IP 地址从笔记本电脑或本地机器与 AlloyDB for PostgreSQL 实例建立安全连接。
当您探索 AlloyDB 或想要设置开发环境时,从笔记本电脑进行连接非常有用。
准备工作
在通过笔记本电脑进行连接之前,请确保您已执行以下操作:
- 安装并初始化 gcloud CLI。使用 gcloud CLI 对命令进行身份验证并检索实例详细信息。
- 安装
psql命令行工具。使用psql客户端工具作为 PostgreSQL 终端数据库客户端。 - 下载 Auth Proxy 客户端。 使用 Auth Proxy 客户端创建连接到 AlloyDB 实例的安全隧道。
- 配置所需角色。
所需的角色
如需从笔记本电脑进行连接,请确保您的 Identity and Access Management (IAM) 主账号(用户账号或服务账号)具有所需的预定义角色:
- AlloyDB Client (
roles/alloydb.client) - Service Usage Consumer (
roles/serviceusage.serviceUsageConsumer)
在 AlloyDB 实例上启用公共 IP
从笔记本电脑进行连接的最直接方法是在 AlloyDB 实例上启用公共 IP。您可以在创建实例时启用公共 IP,也可以更新现有实例以启用公共 IP。
控制台
前往 Google Cloud 控制台中的集群页面。
如需查看集群详细信息,请点击资源名称中的集群。
在集群中的实例中,找到要连接的实例。
点击 实例操作,然后点击修改。
在连接中,选择启用公共 IP。
如需保存更改,请点击更新实例。
gcloud
使用 gcloud alloydb instances
update 命令在实例上启用公共 IP:
gcloud alloydb instances update INSTANCE_ID \
--cluster=CLUSTER_ID \
--region=REGION_ID \
--assign-inbound-public-ip=ASSIGN_IPV4
替换以下内容:
INSTANCE_ID:AlloyDB 实例的 ID。CLUSTER_ID:集群的 ID。REGION_ID:集群所在的区域。
检索实例连接 URI
启动 Auth Proxy 客户端时,您必须使用实例的唯一连接 URI 来标识实例。在笔记本电脑终端上使用 gcloud CLI alloydb instances describe 命令检索连接 URI。
gcloud alloydb instances describe INSTANCE_ID \
--cluster=CLUSTER_ID \
--region=REGION_ID \
--format="value(name)"
该命令会返回连接 URI,其格式类似于以下内容:
projects/myproject/locations/us-central1/clusters/mycluster/instances/myprimary
使用公共 IP 启动 AlloyDB Auth Proxy
现在您已获得实例连接 URI,接下来请使用笔记本电脑终端启动 Auth Proxy 客户端。使用 --public-ip 标志指示 AlloyDB Auth 代理通过公共 IP 网络路径进行连接。
./alloydb-auth-proxy CONNECTION_URI --public-ip
将 CONNECTION_URI 替换为您在检索实例连接 URI 中获得的实例连接 URI。
AlloyDB Auth 代理成功启动后,终端会显示 AlloyDB Auth 代理正在端口 5432 上监听本地 TCP 连接:
Authorizing with Application Default Credentials
Listening on 127.0.0.1:5432
The proxy has started successfully and is ready for new connections!
使用 psql 连接到数据库
在 AlloyDB Auth Proxy 运行期间,在笔记本电脑上打开一个单独的终端窗口,以连接到数据库。
运行 psql 客户端工具,以本地监听器地址 127.0.0.1 和端口 5432 为目标:
psql -h 127.0.0.1 -U postgres -d postgres
出现提示时,输入 postgres 数据库用户的密码。
psql 命令会连接到 Auth Proxy 客户端,该客户端会通过安全隧道将您的连接转发到 AlloyDB 实例。psql 命令会显示一个提示,确认笔记本电脑已安全连接到 AlloyDB 实例:
psql (18.2 (Debian 18.2-1), server 16.11)
Type "help" for help.
postgres=>