必须为服务帐户项目启用 API

Cha*_*gan 5 google-cloud-platform google-iam

在创建资源之前启用 API 时,我们遇到了服务帐户“默认”到创建它的项目的问题。

SA 是在项目 A 下创建的,但它拥有Owner项目 B 的权利。

我们正在尝试在项目 B中创建资源(GKE 集群),但它抱怨我们需要首先在项目 A上启用 Kubernetes API (我们传递--project给 cluster create 命令以避免我们尝试创建的位置出现任何歧义)集群。get-credentials 命令也是如此)。

ERROR: (gcloud.container.clusters.create) ResponseError: code=403, message=Kubernetes Engine API has not been used in project PROJECT_NUMBER before or it is disabled. Enable it by visiting https://console.developers.google.com/apis/api/container.googleapis.com/overview?project=PROJECT_NUMBER then retry. If you enabled this API recently, wait a few minutes for the action to propagate to our systems and retry.
Run Code Online (Sandbox Code Playgroud)

PROJECT_NUMBER这里是项目 A 的编号,而不是 B。所需的 API 已在项目 B 上启用。

我们使用服务帐户的方法是否存在缺陷?

小智 2

即使您在项目 B 中创建集群,API 的调用者也是项目 A(因为服务帐户归项目 A 所有);因此,必须在项目 A 上启用该 API。