问题描述
我正在尝试使用服务帐户和密钥文件调用预算 API,但出现此错误:
我的代码
async function listBillingAccounts() {
const [account] = await client.getBillingAccount({ name: `billingAccounts/${BILLING_ACCOUNT_ID}` });
console.info({ account });
}
listBillingAccounts();
我的 CLI 设置
gcloud config set project my-project-id
Their Docs 中提到的环境变量:
键 | 价值 |
---|---|
GOOGLE_APPLICATION_CREDENTIALS | path\to\gcp-credentials.json |
GCP_PROJECT | 我的项目编号 |
服务帐号设置
当我转到 https://console.cloud.google.com/iam-admin/iam?project=my-project-id 时,它会在表中显示服务帐户:
会员 | 姓名 | 角色 | 继承 |
---|---|---|---|
[email protected] | 所有者 | 所有者 | 我的项目编号 |
我不知道接下来要做什么。
解决方法
项目的 owner
角色未授予您查看结算帐户信息的必要权限。
根据API documentation描述getBillingAccount
操作时:
获取有关结算帐户的信息。当前经过身份验证的用户必须是结算帐号的查看者。
您可以在组织或结算帐号级别授予结算帐号查看者的权限。请参阅相关的 docs。