云SQL代理无法使用具有相同权限的第二个服务帐户连接到数据库



在学习了Kubernetes Engine的连接[Postgres]教程后,我可以让我的应用服务器通过云SQL代理和授予"SQL客户端"、"SQL编辑器"one_answers"SQL管理员"权限的服务帐户连接到我的Postgres数据库。

但是,在第二次遵循本教程(创建第二个数据库,供另一个集群使用(,并因此创建了具有相同权限的第二个服务帐户后,我意识到我只能使用我的第一个服务帐户连接我的第二云SQL数据库!

每次我尝试使用第二个服务帐户(再次授予完全相同的3个权限!(时,我都会收到couldn't connect to "project:region:instance"错误。。。

上下文:我知道Cloud SQL还不支持基于实例的权限,但如果可能的话,我希望为我的2个数据库中的每个数据库都有专用的服务帐户,我不明白为什么第二个具有相同权限的服务帐户不起作用。

首先,您的云SQL代理只需要云SQL客户端角色。不需要其他角色。

其次,您是否使用来自同一个kubernetes集群的应用程序服务器。您是否试图将kubernetes相同的secretcloudsql实例凭据用于两个服务帐户。

如果是,那就是问题所在。您需要使用第二个服务帐户的新凭据json更新cloudsql实例凭据secret。

或者,您可以保留两个秘密对象,分别为cloudsql-instance-credentials-service-account-1cloudsql-ininstance-credentals-service-account-2。并且,更新配置yml以装载所需的机密,如下所示,

- name: cloudsql-proxy
image: gcr.io/cloudsql-docker/gce-proxy:1.09
command: ["/cloud_sql_proxy", "--dir=/cloudsql",
"-instances=<instance_connection_name>=tcp:5432",
"-credential_file=/secrets/cloudsql/credentials.json"]
volumeMounts:
- name: cloudsql-instance-credentials
mountPath: /secrets/cloudsql
readOnly: true
volumes:
- name: cloudsql-instance-credentials
secret:
secretName: cloudsql-instance-credentials-service-account-2

相关内容

  • 没有找到相关文章

最新更新