(gcloud.projects.list)PERMISSION_DENIED

时间:2018-09-04 13:44:51

标签: google-cloud-platform google-compute-engine credentials gcloud

我有一台需要运行以下gcloud命令的机器: gcloud projects list --format=json

给出我的输出错误: ERROR: (gcloud.projects.list) PERMISSION_DENIED: Request had insufficient authentication scopes.

很明显,该计算机的当前配置和帐户集没有该权限。

有趣的是,当我使用gcloud compute instances list --project=<project_ID> --format=json

它给了我指定项目中列出的计算机的列表。

我启用了Google Resource Manager API

我什至创建了一些服务帐户凭据,并在计算机中激活了它们。还是一样的错误。

SDK documentation中,没有有关如何启用凭据以查看其他项目的参考

有人以前有过这个问题吗?我看到了过时的问题,这些问题的解决方案对我来说不可行。

修改

我应该提到,所涉及的机器是GCE实例,并且没有办法(除非我手动安装SDK,否则我将不予理mess)来更新SDK。

Cloud API访问范围是手动设置的,没有提及“资源管理器”,我似乎无法添加或删除任何新的API访问权限

1 个答案:

答案 0 :(得分:1)

根据this documentgcloud projects list显示该帐户具有所有者,编辑者或查看者项目级别角色的所有活动项目。只要您在实例中激活的服务帐户在gcp项目中具有这些角色之一,您就应该能够运行该命令。

例如,从您的云外壳将查看者角色授予您的服务帐户:

gcloud projects add-iam-policy-binding <your_project_id> \
--member serviceAccount:<your_service_account> --role roles/viewer

使用json key file激活您实例中的服务帐户:

gcloud auth activate-service-account --key-file=/path/key.json

运行项目列表命令:

gcloud projects list --format=json