我尝试使用“~〉7.3”版本的terraform-google-modules/kubernetes-engine/google//modules/beta-private-cluster
模块在europe-west2
区域创建一个集群,但我一直收到错误:
Error: googleapi: Error 403: Google Compute Engine: Required 'compute.regions.get'
permission for 'projects/***/regions/europe-west2'., forbidden
奇怪的是,我尝试使用Editor
角色的用户来做这件事。所以,它应该有读取区域的权限。我尝试为用户添加更多的角色(使其成为所有类型的管理员),但结果仍然是一样的。你能给我建议吗,我的错误在哪里?
3条答案
按热度按时间h4cxqtbf1#
请检查您的
[id]@cloudservices.gserviceaccount.com
服务帐户是否具有编辑者角色。使用
gcloud projects get-iam-policy [project-id]
命令列出所有服务帐户并查找该帐户。它应类似于以下内容:从顶部数第二个是您要查找的帐户,底部一行显示“角色/编辑器”,这是正确的情况。
如果此帐户没有此角色,您可以使用命令授予它:
文档里都有描述。
在StackOverflow here和here上讨论了非常相似的问题。
gzszwxb42#
我设法解决了这个问题。看起来我的供应者丢弃了一些角色,这些角色是GKE正常工作所必需的。特别是,
serviceAccount:service-${project-number}@compute-system.iam.gserviceaccount.com
必须是roles/compute.serviceAgent
。serviceAccount:service-${project-number}@container-engine-robot.iam.gserviceaccount.com
必须是roles/compute.serviceAgent
。发现我禁用了Kubernetes引擎服务,并启用它回来,谷歌云自动恢复该服务帐户所需的角色.
ojsjcaue3#
我在
gcloud
中切换帐户后遇到了同样的问题。我通过运行
它设置Packer/Terraform调用Google API的应用程序默认凭据。
来源:https://cloud.google.com/sdk/gcloud/reference/auth/application-default