GKE Spring 容器 - CloudSQL 失败 - 403 Forbidden

时间:2021-07-14 07:21:46

标签: google-cloud-platform google-kubernetes-engine google-cloud-sql

我有一个无法在 GKE 引擎中启动的 Spring Boot 应用

enter image description here

运行代理后,我可以从本地 SQL 开发人员连接到 Cloud SQL

cloud_sql_proxy -instances=psomemy:europe-west2:pmydb=tcp:3306

我没有从 Kubectl 创建秘密,因为我的连接字符串是

spring.datasource.url=jdbc:mysql:///schema?cloudSqlInstance=myapp:europe-west2:mydbonly&socketFactory=com.google.cloud.sql.mysql.SocketFactory

所以我认为以下不是我的情况(?) enter image description here

如何测试本地邮递员或其他人的访问权限?

1 个答案:

答案 0 :(得分:2)

当您使用默认选项创建虚拟机时(如果您没有做任何特殊的事情,默认情况下,这与带有节点池的集群相同),您的 Compute Engine 将使用具有默认范围的默认服务帐户。

enter image description here

当然,默认情况下不会设置 Cloud SQL 范围

enter image description here

因此,我建议您创建一个新的节点池:

  • 默认服务帐户和授予的正确范围
  • 或自定义服务帐户(更好的解决方案)

但是,最好的解决方案是使用 Workload identity。您可以通过重新创建池来激活集群上的附加组件,并且可以为每个 Pod 设置一个服务帐户,从而克服当前的范围限制。

enter image description here