2

我正在尝试使用projects.list资源管理器 API 中的方法列出我在 GCP 中拥有的所有项目,但我无法确定要使用的访问令牌。

假设我有三个项目:

  • My Project 44572
  • Testing
  • My First Project

当我使用该projects.list方法时,它应该给我这样的输出:

{
  "projects": [
    {
      "name": "My Project 44572", 
      "parent": {
        "type": "organization", 
        "id": "ORG_ID"
      }, 
      "projectId": "PROJECT_ID", 
      "projectNumber": "PROJECT_NUMBER", 
      "lifecycleState": "ACTIVE", 
      "createTime": "2020-06-15T08:38:04.712Z"
    }, 
    {
      "name": "Testing ", 
      "parent": {
        "type": "organization", 
        "id": "ORG_ID"
      }, 
      "projectId": "PROJECT_ID", 
      "projectNumber": "PROJECT_NUMBER", 
      "lifecycleState": "ACTIVE", 
      "createTime": "2020-06-15T08:35:59.480Z"
    }, 
    {
      "name": "My First Project", 
      "parent": {
        "type": "organization", 
        "id": "ORG_ID"
      }, 
      "projectId": "PROJECT_ID", 
      "projectNumber": "PROJECT_NUMBER", 
      "lifecycleState": "ACTIVE", 
      "createTime": "2020-06-15T08:33:23.859Z"
    }
  ]
}

但是,如果我使用通过使用服务帐户获得的访问令牌,我将My Project 44572得到以下输出:

{
  "projects": [
    {
      "name": "My Project 44572", 
      "parent": {
        "type": "organization", 
        "id": "ORG_ID"
      }, 
      "projectId": "PROJECT_ID", 
      "projectNumber": "PROJECT_NUMBER", 
      "lifecycleState": "ACTIVE", 
      "createTime": "2020-06-15T08:38:04.712Z"
    }
]
}

那么,我应该使用什么访问令牌才能获得组织下的所有项目?

邮递员控制台

4

2 回答 2

1

projects.list 方法需要权限resourcemanager.projects.get。您可以授予帐户任何包含组织级别权限的角色以实现您的目标,例如 -

  • 角色/观众
  • 角色/编辑
  • 角色/所有者

或者,您可以使用需要cloudasset.assets.searchAllResources权限的 resources.searchAll 方法。您可以在组织级别授予帐户具有此权限的任何角色:

  • 角色/cloudasset.viewer
  • 角色/cloudasset.owner
  • 角色/观众
  • 角色/编辑
  • 角色/所有者

列出组织内的所有项目 456:

gcloud asset search-all-resources \
--asset-types="cloudresourcemanager.googleapis.com/Project"
--scope=organizations/456

文档:

相关帖子:

于 2020-06-27T00:34:44.543 回答
1

我通过在组织级别分配“我的项目 44572”所有者角色的服务帐户解决了这个问题,现在当我使用此服务帐户生成的访问令牌时,它会列出我组织中的所有项目

于 2020-06-17T07:55:32.967 回答