首页 > 解决方案 > PERMISSION_DENIED:调用者没有权限

问题描述

我正在尝试使用服务帐户和密钥文件调用预算 API,但出现此错误:

PERMISSION_DENIED:调用者没有权限

我的代码

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

他们的文档中提到的环境变量:

钥匙 价值
GOOGLE_APPLICATION_CREDENTIALS 路径\to\gcp-credentials.json
GCP_PROJECT 我的项目 ID

服务帐户设置

当我转到https://console.cloud.google.com/iam-admin/iam?project=my-project-id时,它会在表中显示服务帐户:

成员 姓名 角色 遗产
owner-75@my-project-id.iam.gserviceaccount.com 所有者 所有者 我的项目 ID

我不知道下一步该做什么。

标签: google-cloud-platformgoogle-cloud-billing

解决方案


项目owner角色不会授予您查看计费帐户信息所需的权限。

根据API文档描述getBillingAccount操作时:

获取有关计费帐户的信息。当前经过身份验证的用户必须是计费帐户的查看者。

您可以在组织或计费帐户级别授予计费帐户查看者权限。请参阅相关文档


推荐阅读