首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法从Google Cloud Function访问Secrets Manager中存储的密钥

无法从Google Cloud Function访问Secrets Manager中存储的密钥
EN

Stack Overflow用户
提问于 2020-07-21 01:37:50
回答 1查看 3.2K关注 0票数 3

在测试我编写的一个Google Cloud函数,该函数试图访问存储在secret Manager中的密钥时,我得到了这个错误:Error: 7 PERMISSION_DENIED: Permission 'secretmanager.versions.access' denied for resource '<resource-name>' (or it may not exist).

我的代码:

代码语言:javascript
复制
const {SecretManagerServiceClient} = require('@google-cloud/secret-manager');
const secretClient = new SecretManagerServiceClient();

...

const [version] = await secretClient.accessSecretVersion({
  name: secretName
});
const secret = version.payload.data.toString();

我遵循了文档中的步骤,在对服务的调用中指定了密钥的全名(projects/<project-id>/secrets/<secret-name>/versions/latest,所以Can't access secret in GCP Secret Manager中的问题在这里不适用),并为运行我的云函数的服务帐户提供了"Secret Manager secret Accessor“角色(这应该可以排除Why isn't my Firebase app connecting to Google Secret Manager?中的根本问题)。

我在尝试使用curl本地触发函数和在UI (GCF > function details > Testing)中测试函数时都遇到过这个问题。

我是不是漏掉了什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-07-21 11:53:45

事实证明,我将"Secret Manager Secret Accessor“角色分配给了错误的服务帐户--我将其分配给了用于创建/更新/删除函数(service-<project-id>@gcf-admin-robot.iam.gserviceaccount.com)的GCF administrative service account,而不是实际用于运行函数(<project-id>@appspot.gserviceaccount.com)的runtime service account

一旦我将上面的角色(以及其他所需的功能)添加到运行时服务帐户,该功能就成功完成了。

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63000973

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档