我正在使用terraform在google云平台(GCP)中通过Cloud SQL建立一个简单的应用程序。我使用本指南为我的postgresql数据库设置了一个GCP云SQL认证代理。我将代理设置为主kubernetes应用程序的副车。我还在云代理中设置了一个GCP服务账号用于认证。换句话说,我将地形文件中kubernetes_deployment
资源中的service_account_name
设置为具有连接数据库所需角色的gcp服务帐户。
现在,我想使用python和sql炼金术连接到这个postgresql数据库通过云sql代理。我在网上找到的一切(如本文档)都建议我需要添加这样的用户名和密码来连接到云代理:mysql+pymysql://<db_user>:<db_pass>@<db_host>:<db_port>/<db_name>
。但是,我的google服务帐户没有用户名和密码。
我的问题:有没有办法连接到谷歌云认证代理没有密码使用我的gcp服务帐户?
The Cloud SQL Python Connector是一个Python包,可以从任何地方(本地机器,Cloud Run, App Engine, Cloud Functions等)轻松安全地连接到所有三种支持的数据库引擎(Postgres, MySQL和SQL Server)。(来源:GCP博客)
该连接器使用IAM权限和TLS证书连接到云sql实例。此源代码可在github中获得,也有java和go语言的版本。