首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >google云资源管理列表项目403调用者没有权限。

google云资源管理列表项目403调用者没有权限。
EN

Stack Overflow用户
提问于 2022-04-17 21:19:58
回答 1查看 451关注 0票数 1

我创建了一个GCP服务帐户,并为列出组织内的项目分配了所需的权限。当我使用gcloud cli时,一切都正常:

代码语言:javascript
复制
gcloud auth activate-service-account --key-file=./key.json
gcloud projects list

# -> List of all projects

但是,当我对用于Google资源管理器的Python客户端尝试“相同”时,我会收到一条403 The caller does not have permission错误消息。

代码语言:javascript
复制
# pip install google-cloud-resource-manager==1.4.1
from google.oauth2 import service_account
from google.cloud import resourcemanager_v3

# Load gcp credentials
credentials = service_account.Credentials.from_service_account_file('./key.json')

# Create resourcemanager_v3 ProjectsClient
resourcemanager_v3_projects_client = resourcemanager_v3.ProjectsClient(credentials=credentials)

# Initialize request argument(s)
list_projects_request = resourcemanager_v3.ListProjectsRequest(show_deleted=False, parent='')

# Make the request
page_result = resourcemanager_v3_projects_client.list_projects(request=list_projects_request)


# -> Error...
# -> grpc_helpers.py", line 68, in error_remapped_callable
# -> raise exceptions.from_grpc_error(exc) from exc
# -> google.api_core.exceptions.PermissionDenied: 403 The caller does not have permission

Python Client for Google Cloud Resource Manager是否需要gcloud cli以外的其他权限,还是在gcloud cli代码中遗漏了什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-04-25 06:52:35

好像我错过了parent 参数..。

下面的片段应该列出特定文件夹或组织的项目。

代码语言:javascript
复制
# pip install google-cloud-resource-manager==1.4.1
from google.oauth2 import service_account
from google.cloud import resourcemanager_v3

# Load gcp credentials
credentials = service_account.Credentials.from_service_account_file('./key.json')

# Create resourcemanager_v3 ProjectsClient
resourcemanager_v3_projects_client = resourcemanager_v3.ProjectsClient(credentials=credentials)

# Initialize request argument(s)
list_projects_request = resourcemanager_v3.ListProjectsRequest(show_deleted=False, parent='folders/%folder-id%') # for organization: 'organizations/%organization-id%'

# Make the request
page_result = resourcemanager_v3_projects_client.list_projects(request=list_projects_request)

# Handle the response
for response in page_result:
    print(response)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71905531

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档