Google 云 gcloud 为服务帐户电子邮件启用 API 服务

Google cloud gcloud enabling API services for service account email

如何专门为服务帐户而非用户帐户启用 API 服务?

上下文:我正在使用 Python 脚本在本地测试云函数(查询 BQ,将结果转换为 json,放入 GCS 存储桶)。我可以使用我自己的测试帐户来完成这项工作,我可以在其中启用服务,但不确定我将如何为客户的服务帐户执行此操作(或客户将如何执行此操作)。这就是我为自己的服务帐户所做的:

  1. 获取服务帐户凭据作为 json
  2. 安装 gcloud cloud sdk
  3. 问题:gcloud auth activate-service-account --key-file="/path/to/json-todd-credentials.json" --project="json-todd"
  4. 像这样启用API服务:gcloud enable --account="json-todd@json-todd.iam.gserviceaccount.com" cloudfunctions.googleapis.com pubsub.googleapis.com etc.

我有客户的服务帐户 json 我可以 auth activate-service-account 服务帐户,但我无法启用,因为我没有权限 - 但客户如何启用 API它是否专门用于 GCP 上的服务帐户,而无需按上述方式 install/initialise/auth 服务帐户?

我觉得有误会。 API 是为项目启用的,而不是为服务帐户(或用户帐户)启用的。然后,您有权访问您已激活的API。

如果您有一个服务帐户,在一个新项目中,没有启用 API,则可以向此服务帐户授予 roles/serviceusage.serviceUsageAdmin。这样,服务帐户将能够激活项目上的 API,可能是所有 API。 但是 如果服务帐户只有访问 BigQuery 的权限(例如)并且服务帐户激活了计算引擎 API,它将无法访问VM,即使 API 已启用。

相反,如果项目已经启用了API,则服务帐户不需要授予roles/serviceusage.serviceUsageAdmin角色,只需要使用已激活的API.