gpt4 book ai didi

google-cloud-platform - 无法分配 iam.serviceAccounts.signBlob 权限

转载 作者:行者123 更新时间:2023-12-03 15:02:28 30 4
gpt4 key购买 nike

TLDR;我在为服务帐号分配 IAM 权限时遇到问题。

我正在构建一个测试,涉及使用 firebase Auth 生成自定义 token 。当我打:

  const token = await admin.auth().createCustomToken('test', {
isAdmin: true,
})

抛出以下错误
Permission iam.serviceAccounts.signBlob is required to perform
this operation on service account
projects/-/serviceAccounts/dashboard@appspot.gserviceaccount.com.;
Please refer to
https://firebase.google.com/docs/auth/admin/create-custom-tokens
for more details on how to use and troubleshoot this feature

referenced documentation它说要添加 服务帐户 token 创建者 服务帐户的角色。我已经添加了该角色(以及尝试服务帐户管理员无济于事。
Image verifying permissions

当我运行时,我可以验证我的权限似乎设置正确 gcloud projects get-iam-policy project我可以看到我的服务帐户附加到所需角色
- members:
- serviceAccount:dashboard@appspot.gserviceaccount.com
role: roles/iam.serviceAccountTokenCreator

但是,如果我查看该特定服务帐户,它似乎显示为空,这与我的错误一致:
gcloud iam service-accounts get-iam-policy dashboard@appspot.gserviceaccount.com
etag: ACAB
  • 为什么这两个命令和云控制台会显示不同的信息?

  • 我认为导致我的服务帐户权限显示为空白的原因是罪魁祸首,但我不确定在哪里进一步调试。在我看来,唯一的区别是一个命令被调用,其中包含一个项目,但我使用项目 ID 初始化了我的 firebase 应用程序,并使用 (firebase-admin).apps[0].options 对其进行了验证。所以这似乎是一个死胡同。

    最佳答案

    Firebase 在其文档中提到了这个错误:

    https://firebase.google.com/docs/auth/admin/create-custom-tokens#failed_to_determine_service_account

    您必须通过 JSON 配置文件正确初始化您的应用程序。

    一个简单的解决方法是:

  • 转至 https://console.cloud.google.com/iam-admin/iam?project=PROJECT_NAME
  • 编辑您的默认服务帐户。
  • 添加角色 Service Account Token Creator

  • 几分钟后,您的项目将能够创建签名 token 。

    关于google-cloud-platform - 无法分配 iam.serviceAccounts.signBlob 权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57564505/

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