如何通过Cloud SQL Proxy结合IAM身份模拟连接Google Cloud SQL数据库?
结合IAM身份模拟使用Cloud SQL Proxy连接Cloud SQL数据库
可以通过IAM身份模拟结合Cloud SQL Proxy实现数据库连接,以下是具体实现步骤:
前提条件
- 已启用Cloud SQL Admin API
- 当前操作账号需具备以下权限:
iam.serviceAccounts.getAccessToken(用于生成模拟账号的访问令牌)cloudsql.instances.connect(连接Cloud SQL实例的基础权限)
- 目标模拟服务账号需拥有
cloudsql.client角色(或对应数据库访问的具体权限)
实现步骤
生成模拟服务账号的访问令牌
使用gcloud命令生成临时访问令牌,替换[模拟服务账号邮箱]和[项目ID]为实际值:gcloud auth print-access-token --impersonate-service-account=[模拟服务账号邮箱]@[项目ID].iam.gserviceaccount.com执行后会返回一个短期有效的访问令牌。
启动Cloud SQL Proxy并传入模拟令牌
启动Proxy时通过--token参数指定刚才生成的令牌,替换[实例连接名](格式:项目ID:区域:实例名):./cloud-sql-proxy [实例连接名] --token=[生成的访问令牌]Windows环境请替换为对应的可执行文件名称(如
cloud-sql-proxy.exe)。连接数据库
直接使用数据库客户端(如mysql、psql)连接本地Proxy端口(MySQL默认3306,PostgreSQL默认5432),无需输入数据库密码,身份验证将通过模拟的IAM账号完成。
注意事项
- 访问令牌默认有效期为1小时,过期后需重新生成并重启Proxy
- 若需长期使用,可编写脚本自动刷新令牌并重启Proxy进程
- 确保模拟服务账号已被添加到Cloud SQL实例的IAM权限列表中,具备对应的访问权限
内容的提问来源于stack exchange,提问作者user23265885
相关产品推荐
相关产品推荐

