gpt4 book ai didi

python - 使用 serviceusage API 和服务帐户启用 API

转载 作者:行者123 更新时间:2023-12-01 07:54:48 26 4
gpt4 key购买 nike

我想为客户创建 GCP 自动部署。

为了做到这一点,我打开了一个页面供他们使用 google 登录,然后启用了 IAM API 和服务使用 API。

然后,我创建了一个服务帐户,我希望从现在开始使用该帐户,以便按需启用其他所需的 API,而不是一次性启用所有 API。

当我尝试启用 cloudkms API 时,我得到

googleapiclient.errors.HttpError: <HttpError 403 when requesting https://serviceusage.googleapis.com/v1/projects/x-y-z/services/cloudkms.googleapis.com?alt=json returned "The caller does not have permission"

我尝试使用根据创建服务帐户的响应创建的服务帐户凭据 (google.auth.jwt.Credentials),并且已添加所有必需的权限。我不想将角色所有者授予服务帐户,因为我希望该帐户拥有尽可能少的权限。

当我尝试使用用户权限获取cloudkms API的状态时,它有效。

我看到一些解决方案解决了我需要为服务帐户创建凭据的问题:https://console.developers.google.com/apis/credentials但我确实也需要以编程方式执行此操作。

我的代码:

credentials = jwt.Credentials.from_service_account_file(service_account_info['email'] + '.json', audience="https://www.googleapis.com/auth/cloud-platform")
# credentials = GoogleCredentials.get_application_default() - it works with this
service_usage = googleapiclient.discovery.build('serviceusage', 'v1', credentials=credentials)
service_usage.services().get(name="projects/<project_id>/services/cloudkms.googleapis.com").execute()

上面提到了错误。

最佳答案

您需要 Cloud IAM 权限 serviceusage.services.enable 才能启用服务。根据您需要的功能(例如列出服务),您需要 serviceusage.services.list

通常,您添加角色roles/serviceusage.serviceUsageAdmin,其中包含以下权限:

  • serviceusage.services.get
  • serviceusage.services.list
  • serviceusage.services.enable
  • serviceusage.services.disable

关于python - 使用 serviceusage API 和服务帐户启用 API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56039142/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com