使用 Auth Proxy 从 Cloud Shell 连接到 AlloyDB

了解如何使用 AlloyDB Auth Proxy 从 Cloud Shell 终端与 AlloyDB for PostgreSQL 实例建立安全连接。本快速入门非常适合希望使用简单、预配置的环境连接到实例并测试基本 SQL 查询的新用户。

准备工作

  1. 在 Google Cloud 控制台的项目选择器页面上,选择或创建一个 Google Cloud 项目。

    转到“项目选择器”

  2. 确保您的 Google Cloud 项目已启用结算功能。 验证结算功能可确保启用所有必需的服务。

  3. 确保您的 AlloyDB 实例已配置公共 IP。Cloud Shell 无法连接到专用 IP 地址。

所需的角色

如需使用 Auth Proxy,您的用户账号必须具有以下 Identity and Access Management (IAM) 角色:

如果您没有所需角色,请让管理员授予这些角色,或按照以下步骤将这些角色授予您的用户账号。

  1. 在 Google Cloud 控制台中,前往 IAM 页面。

    转到 IAM

  2. 在主账号列表中找到您的用户账号。

  3. 点击修改主账号

  4. 点击添加其他角色

  5. 搜索并选择 AlloyDB Client 角色。

  6. 点击应用

  7. 点击添加其他角色

  8. 搜索并选择 Service Usage Consumer 角色。

  9. 点击应用

  10. 点击保存

连接到 AlloyDB 实例

Cloud Shell 环境包含 Auth Proxy (alloydb-auth-proxy) 和 psql(PostgreSQL 交互式终端)。

  1. 激活 Cloud Shell。

    激活 Cloud Shell

  2. 点击为 Cloud Shell 提供授权。您只需在首次使用 Cloud Shell 时执行此操作。

  3. 在 Cloud Shell 编辑器中确认您的用户身份。验证您已使用具有所需 IAM 角色的用户账号登录。

    gcloud config list
    
  4. 获取实例的连接 URI。

    1. 在 Google Cloud 控制台中,前往集群页面。

      转到集群

    2. 选择集群,然后找到主实例。

    3. 点击查看连接配置

    4. 复制连接 URI

  5. 启动 Auth Proxy。在 Cloud Shell 终端中,使用复制的 URI 并指定 --public-ip 标志。

    alloydb-auth-proxy CONNECTION_URI --public-ip
    

    替换以下内容:

    • CONNECTION_URI:您从 Google Cloud 控制台复制的连接 URI

    Auth Proxy 会启动并显示一条消息,确认它正在监听 127.0.0.1:5432

  6. 打开新的 Cloud Shell 标签页,然后使用 psql 连接到数据库。

    psql "host=localhost user=POSTGRES_USERNAME dbname=POSTGRES_DATABASE port=5432"
    

    如需在现有的 Cloud Shell 窗口中打开新的终端窗格,请按 Control+b+" 或点击 添加。这样,您就可以在一个窗格中保持 Auth Proxy 运行,同时在第二个窗格中运行连接命令。

    如需在窗格之间切换,请按 Ctrl+b+keyboard_arrow_upCtrl+b+keyboard_arrow_down

    替换以下内容:

    • POSTGRES_USERNAME:您的 AlloyDB 用户,通常为 postgres
    • POSTGRES_DATABASE:您的 AlloyDB 数据库名称,通常为 postgres
  7. 出现提示时,输入 PostgreSQL 用户的密码。

  8. 通过运行 SQL 查询来验证连接。

    SELECT now();
    
  9. 如需停止 psql,请输入 \q

  10. 如需停止 Cloud Shell,请输入 exit

  11. 如需停止 Auth Proxy,请输入 Control+c

清理

为避免因本页中使用的资源导致您的 Google Cloud 账号产生费用,请按照以下步骤操作。

  1. 在 Google Cloud 控制台中,前往集群页面。

    转到集群

  2. 点击您创建的集群。

  3. 点击删除集群

  4. 在确认对话框中,输入集群的 ID,然后点击删除以删除集群及其实例。

后续步骤