【发布时间】:2022-11-17 11:24:44
【问题描述】:
我正在尝试通过 Terraform 创建 GKE 集群。面临 w.r.t 服务帐户问题。在我们的企业中,Terraform 要使用的服务帐户是在一个项目中创建的svc 帐户它位于名为 prod 的文件夹中。
我正在尝试在不同的 Dev 文件夹中创建 GKE 集群,项目名称是接口.通过 Terraform,当我使用具有必要权限的服务帐户驻留在项目 apigw 中时,它工作正常。
但是当我尝试使用具有相同权限的服务帐户时,服务帐户位于不同的文件夹中,出现此错误
Error: googleapi: Error 403: Kubernetes Engine API has not been used in project 8075178406 before or it is disabled. Enable it by visiting https://console.developers.google.com/apis/api/container.googleapis.com/overview?project=8075178406 then retry. If you enabled this API recently, wait a few minutes for the action to propagate to our systems and retry.
其中 8075178406 是项目编号svc 帐户
为什么它会尝试启用 APIsvc 帐户当 GKE 集群创建于接口.服务帐户不应该跨文件夹使用吗?
谢谢。
【问题讨论】:
-
是的,服务帐户由一个项目拥有,但可以由任何项目使用。这发生在每个使用 Google 管理的服务帐户的项目中。但是,服务帐户必须通过资源的 IAM 绑定显式添加到其他项目或资源。
-
由于服务帐户位于 prod 文件夹下的项目 - “svc-accnts”,并且具有角色的服务帐户应用于子项目为“apigw”的 DEV 文件夹,因此具有权限的服务帐户会自动应用通过继承在“apigw”项目上。所以我想这满足了要求。
标签: google-cloud-platform terraform terraform-provider-gcp