我试图通过使用Resource Manager API中的projects.list
方法列出我在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"
}
]
}
那么,我应该使用什么访问令牌,以便将所有项目纳入我的组织?
答案 0 :(得分:1)
我通过在组织级别分配“我的项目44572”所有者角色的服务帐户解决了该问题,现在当我使用此服务帐户生成的访问令牌时,它将列出我组织中的所有项目
答案 1 :(得分:1)
projects.list方法需要权限resourcemanager.projects.get
。您可以授予帐户任何包含组织级别权限的角色,以实现您的目标,例如-
或者,您可以使用resources.searchAll方法,该方法需要cloudasset.assets.searchAllResources
权限。您可以在组织级别使用此权限授予该帐户任何角色:
要列出组织456中的所有项目,请执行以下操作:
gcloud asset search-all-resources \
--asset-types="cloudresourcemanager.googleapis.com/Project"
--scope=organizations/456
文档:
相关帖子: