我有一台需要运行以下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访问权限
答案 0 :(得分:1)
根据this document,gcloud 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