我在GCP中创建了一个特定的服务帐户,用于在我的项目中配置集群:
gcloud iam service-accounts create [sa_name]
gcloud projects add-iam-policy-binding \
[project_id] \
--role=roles/container.admin \
--member=serviceAccount:[sa_name]@[project_id].iam.gserviceaccount.com
gcloud iam service-accounts keys create [keyfile_name] \
--iam-account=[sa_name]@[project_id].iam.gserviceaccount.com
gcloud auth activate-service-account --key-file=[keyfile_name]
当我运行命令gcloud container clusters create [cluster_name]
时
我总是得到这样的信息:
错误:(gcloud.container.clusters.create) ResponseError: code=403,message=Required "container.clusters.create“对"projects/context-platform-staging”的权限。有关详细信息,请参阅https://cloud.google.com/kubernetes-engine/docs/troubleshooting#gke_service_account_deleted。
如您所见,我使用roles/container.admin
,但我甚至尝试将roles/editor
和roles/owner
应用于此服务帐户,行为相同。
到目前为止,这个命令唯一有效的方法是使用我的主google所有者帐户(而不是服务帐户)。
这里我漏掉了什么?
发布于 2018-12-04 20:56:08
从错误消息中,我了解到服务帐户没有"container.clusters.create“权限。
请在用于创建群集的服务帐户上添加"Container Engine Cluster Admin“和"Container Engine Admin”角色:。
要创建集群,您需要拥有项目的两个container.clusters.create权限。您还需要为将使用服务帐户的用户分配角色“roles/iam.serviceAccountUser”。这样,用户就可以访问GKE的服务账号了。
有关更多信息和深入教程,请参阅GCP文档中的this article。
https://stackoverflow.com/questions/53590603
复制相似问题