云 SQL 代理 - 消息:权限不足
Cloud SQL Proxy - Message: Insufficient Permission
我在使用云 SQL 代理时遇到以下连接问题。我已按照 link https://codelabs.developers.google.com/codelabs/cloud-sql-connectivity-gce-private#0
中的详细步骤操作
正在使用私人 IP 和服务帐户连接 SQL。我确实像这样添加了服务帐户政策,
gcloud projects add-iam-policy-binding <GCP PROJECT ID> --member serviceAccount:<SERVICE_ACCOUNT_NAME>@<GCP PROJECT ID>.iam.gserviceaccount.com --role roles/cloudsql.client
当我使用下面的 cloud_sql_proxy 抓取 cloud_sql_proxy 后通过 SSH 进入虚拟机时,
wget https://dl.google.com/cloudsql/cloud_sql_proxy.linux.amd64 -O cloud_sql_proxy && chmod +x cloud_sql_proxy
开始,
./cloud_sql_proxy -instances=<INSTANCE_CONNECTION_NAME>=tcp:5432 &
导致以下错误,因为服务帐户已经绑定到 VM 权限不应该连接或启动 SQL 连接?
Rlimits for file descriptors set to {&{8500 1048576}}
errors parsing config:
googleapi: Error 403: Request had insufficient authentication scopes.
More details:
Reason: insufficientPermissions, Message: Insufficient Permission
有什么想法吗?
- 如果您是 运行 Compute Engine 实例的代理,请确保该实例使用的服务帐户(通常是 Compute Engine default service account)分配了正确的范围和权限(您我们已经添加了正确的角色,但请确保在创建实例时启用该角色):
- 如果您自己创建了一个单独的服务帐户并添加了相关角色:
gcloud projects add-iam-policy-binding <GCP PROJECT ID> --member serviceAccount:<SERVICE_ACCOUNT_NAME>@<GCP PROJECT ID>.iam.gserviceaccount.com --role roles/cloudsql.client
确保将与您的服务帐户对应的 .json 文件下载到您的 Compute Engine 实例,并使用以下命令启动代理:
./cloud_sql_proxy -instances=<INSTANCE_CONNECTION_NAME>=tcp:5432 -credential_file=[PATH-TO-CREDENTIALS.JSON-FILE] &
另外确保所有与 Cloud SQL 和 Compute Engine 相关的 API 都已启用,并且您设置了防火墙规则以允许流量流向数据库使用的特定端口(Postgres 为 5432 ).
以下 docs 可以为您提供有关如何解决代理连接问题的进一步建议。
我在使用云 SQL 代理时遇到以下连接问题。我已按照 link https://codelabs.developers.google.com/codelabs/cloud-sql-connectivity-gce-private#0
中的详细步骤操作正在使用私人 IP 和服务帐户连接 SQL。我确实像这样添加了服务帐户政策,
gcloud projects add-iam-policy-binding <GCP PROJECT ID> --member serviceAccount:<SERVICE_ACCOUNT_NAME>@<GCP PROJECT ID>.iam.gserviceaccount.com --role roles/cloudsql.client
当我使用下面的 cloud_sql_proxy 抓取 cloud_sql_proxy 后通过 SSH 进入虚拟机时,
wget https://dl.google.com/cloudsql/cloud_sql_proxy.linux.amd64 -O cloud_sql_proxy && chmod +x cloud_sql_proxy
开始,
./cloud_sql_proxy -instances=<INSTANCE_CONNECTION_NAME>=tcp:5432 &
导致以下错误,因为服务帐户已经绑定到 VM 权限不应该连接或启动 SQL 连接?
Rlimits for file descriptors set to {&{8500 1048576}}
errors parsing config:
googleapi: Error 403: Request had insufficient authentication scopes.
More details:
Reason: insufficientPermissions, Message: Insufficient Permission
有什么想法吗?
- 如果您是 运行 Compute Engine 实例的代理,请确保该实例使用的服务帐户(通常是 Compute Engine default service account)分配了正确的范围和权限(您我们已经添加了正确的角色,但请确保在创建实例时启用该角色):
- 如果您自己创建了一个单独的服务帐户并添加了相关角色:
gcloud projects add-iam-policy-binding <GCP PROJECT ID> --member serviceAccount:<SERVICE_ACCOUNT_NAME>@<GCP PROJECT ID>.iam.gserviceaccount.com --role roles/cloudsql.client
确保将与您的服务帐户对应的 .json 文件下载到您的 Compute Engine 实例,并使用以下命令启动代理:
./cloud_sql_proxy -instances=<INSTANCE_CONNECTION_NAME>=tcp:5432 -credential_file=[PATH-TO-CREDENTIALS.JSON-FILE] &
另外确保所有与 Cloud SQL 和 Compute Engine 相关的 API 都已启用,并且您设置了防火墙规则以允许流量流向数据库使用的特定端口(Postgres 为 5432 ).
以下 docs 可以为您提供有关如何解决代理连接问题的进一步建议。