GCP - 用户...无权访问项目实例

问题描述 投票:0回答:2

当我遇到另一个问题时,我正在将

gcloud
与服务帐户一起使用,试图找出为什么我的 API 网关端点不起作用。首先我运行了这个
export GOOGLE_APPLICATION_CREDENTIALS=/path/to/credential/fils/PROJECTNAME-hash.json
。然后我运行
gcloud services list --available
,我在终端中得到了这个:

ERROR: (gcloud.services.list) User [<SERVICE ACCOUNT NAME>@<MY PROJECT NAME>.iam.gserviceaccount.com] does not have permission to access projects instance [<MY PROJECT NAME>] (or it may not exist): Permission denied to list services for consumer container [projects/<MY PROJECT ID>]
Help Token: <WHAT LOOKS LIKE AN API KEY>
- '@type': type.googleapis.com/google.rpc.PreconditionFailure
  violations:
  - subject: ?error_code=110002&service=cloudresourcemanager.googleapis.com&permission=serviceusage.services.list&resource=projects/<MY PROJECT NAME>
    type: googleapis.com
- '@type': type.googleapis.com/google.rpc.ErrorInfo
  domain: serviceusage.googleapis.com
  metadata:
    permission: serviceusage.services.list
    resource: projects/<MY PROJECT NAME>
    service: cloudresourcemanager.googleapis.com
  reason: AUTH_PERMISSION_DENIED

我相信我的服务帐户中启用了正确的权限:
enter image description here

那么为什么我会收到此错误以及如何让

gcloud services list --available
使用选定的服务帐户?

google-cloud-platform gcloud service-accounts google-iam
2个回答
5
投票

这个问题似乎源于我需要将服务帐户设置为具有

serviceusage.serviceUsageViewer
的角色。为此,我需要运行
add-iam-policy-binding
命令,但该命令需要使用具有帐户所有者/编辑者权限的帐户运行。

第 1 步是将 gcloud 中的帐户切换到我注册 GCP 服务的主 gmail 帐户。

我使用

gcloud config set account <MASTER GMAIL ACCOUNT>
将我的 gcloud“帐户”设置为我的主 Gmail 帐户。然后我就跑了:

gcloud projects add-iam-policy-binding <PROJECT ID> \
    --member "serviceAccount:<SERVICE ACCOUNT>@<PROJECT ID>.iam.gserviceaccount.com" \
    --role "roles/serviceusage.serviceUsageViewer"

该命令成功了。我使用

gcloud config set account <SERVICE ACCOUNT EMAIL>
将 gcloud 帐户设置回服务帐户,然后运行
gcloud services list --available
。这次这个命令起作用了。


0
投票

对我来说,我必须创建一个计费帐户并将其与新项目关联。

© www.soinside.com 2019 - 2024. All rights reserved.