gcloud:用户无权访问服务帐户“默认”
Posted
技术标签:
【中文标题】gcloud:用户无权访问服务帐户“默认”【英文标题】:gcloud: The user does not have access to service account "default" 【发布时间】:2017-03-15 01:15:24 【问题描述】:我尝试使用已激活的服务帐户来创建和删除 gcloud 容器集群(k8s 集群),使用以下命令:
gcloud config configurations create my-svc-account \
--no-activate \
--project myProject
gcloud auth activate-service-account my-svc-account@my-project.iam.gserviceaccount.com \
--key-file=/path/to/keyfile.json \
--configuration my-svc-account
gcloud container clusters create a-new-cluster \
--configuration my-svc-account \
--project= my-project
--zone "my-zone"
我总是收到错误:
...ERROR: (gcloud.container.clusters.create) ResponseError: code=400, message=The user does not have access to service account "default".
如何授予 my-svc-account 对 GKE 的默认服务帐号的访问权限?
【问题讨论】:
请注意,gcloud config configurations create my-svc-account --no-activate --project myproject
不会在创建的配置中设置项目。事实上 --project 并没有做任何事情。
【参考方案1】:
与 Google 支持人员交谈后,问题是服务帐户没有激活“服务帐户用户”权限。添加“服务帐户用户”可解决此错误。
【讨论】:
干杯。这绝对做到了。唯一需要注意的是,该角色现在称为“服务帐户用户”。 有关上述观点的更多信息,请参阅cloud.google.com/iam/docs/…【参考方案2】:将以下角色添加到进行操作的服务帐户:
Service Account User
另见:
https://cloud.google.com/kubernetes-engine/docs/how-to/iam#service_account_user
https://cloud.google.com/iam/docs/service-accounts#the_service_account_user_role
https://cloud.google.com/iam/docs/understanding-roles
【讨论】:
对我来说很好,我的情况是,我从 Google Cloud Build 调用ssh
到 Google Engine VM Instance【参考方案3】:
对于那些最终在这里尝试使用以下命令执行Import of Firebase Firestore documents 的人:
gcloud beta firestore import --collection-ids='collectionA','collectionB' gs://YOUR_BUCKET
我通过以下操作解决了这个问题:
-
从Google Cloud Console Storage Bucket Browser,将完成操作的服务帐户添加到角色为
Storage Admin
的成员列表中。
重新尝试操作。
为了安全起见,我在操作完成后撤销了角色,但这是可选的。
【讨论】:
【参考方案4】:为服务帐户添加了服务帐户用户角色,它对我有用。
【讨论】:
以上是关于gcloud:用户无权访问服务帐户“默认”的主要内容,如果未能解决你的问题,请参考以下文章
政策报告,用于查看帐户在 GCloud 上可以访问的所有资源的摘要
如何处理“访问被拒绝。您无权阅读活动记录”。使用服务帐户访问 Admin SDK API 时