【问题标题】:Service account not assigned to CloudSQL instance服务帐号未分配给 CloudSQL 实例
【发布时间】:2020-06-11 20:28:03
【问题描述】:

我需要使用特定服务帐户创建 CloudSQL 实例。尝试 API 调用instances.insert:

POST https://www.googleapis.com/sql/v1beta4/projects/{project}/instances
{
  "serviceAccountEmailAddress": "<my account>@managed-gcp.iam.gserviceaccount.com",
  "name": "pvtest20200611-3",
  "settings": {
    "tier": "db-n1-standard-1"
  },
  "databaseVersion": "MYSQL_5_7"
}

实例已创建,但它有一个生成的 svc 帐户(例如 p754990076948-kf1bsf@gcp-sa-cloud-sql.iam.gserviceaccount.com)而不是我的。

对于我的 SA,我分配了存储管理员/存储对象管理员角色(这是我需要新创建的实例始终拥有的角色)。我还添加了 cloudsql 管理员角色。当我认为这是一个角色问题时,甚至尝试了项目编辑角色,但这不起作用。

我已经尝试过 MySQL 和 Postgres db 类型。

您知道为什么我的帐户没有被提取,为什么 CloudSQL 引擎总是分配它自己的吗? 自定义 SA 与 CloudSQL 实例一起使用的要求/设置是什么?

【问题讨论】:

  • 如果您认为我的回答对您有所帮助,请考虑支持/接受它。
  • 会的,谢谢。我被 API 文档误导了(这并不是说该字段仅用于输出)。

标签: google-cloud-sql


【解决方案1】:

当您在 Cloud SQL 中创建实例时,它会在创建过程中使用默认实例,因此您将无法在创建过程中设置自定义实例。

但是,您可以在创建服务帐户后授予访问权限和权限。正如官方文档Granting roles to a service account for specific resources 中解释的那样,您可以为您的服务帐户提供特定的权限。您可以尝试使用gcloud 命令如下:

gcloud projects add-iam-policy-binding my-project-123 \
  --member serviceAccount:my-sa-123@my-project-123.iam.gserviceaccount.com \
  --role roles/editor

除此之外,您还可以使用此链接here 检查您所有可用的服务帐户,以验证您的自定义帐户是否存在,甚至通过 UI 添加权限,如果您认为通过这种方式更好。

如果这些信息对您有帮助,请告诉我!

【讨论】:

    猜你喜欢
    • 2019-03-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-25
    • 1970-01-01
    • 2021-05-09
    • 1970-01-01
    • 2018-01-27
    相关资源
    最近更新 更多