gpt4 book ai didi

google-cloud-platform - 无法从 Google Cloud Function 访问存储在 Secrets Manager 中的 key

转载 作者:行者123 更新时间:2023-12-04 16:26:22 31 4
gpt4 key购买 nike

在测试我编写的试图访问存储在 Secret Manager 中的 key 的 Google Cloud 函数时,我收到此错误:Error: 7 PERMISSION_DENIED: Permission 'secretmanager.versions.access' denied for resource '<resource-name>' (or it may not exist).我的代码:

const {SecretManagerServiceClient} = require('@google-cloud/secret-manager');
const secretClient = new SecretManagerServiceClient();

...

const [version] = await secretClient.accessSecretVersion({
name: secretName
});
const secret = version.payload.data.toString();
我已按照文档中的步骤操作,在对服务的调用中指定 key 的全名( 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 > 函数详细信息 > 测试)。
有什么我在这里想念的吗?

最佳答案

事实证明,我将“Secret Manager Secret Accessor”角色赋予了错误的服务帐户 - 我将其赋予了 GCF administrative service account , 用于创建/更新/删除函数 ( service-<project-id>@gcf-admin-robot.iam.gserviceaccount.com ) 而不是 runtime service account ,这是实际用于运行函数的内容( <project-id>@appspot.gserviceaccount.com )。
一旦我将上述角色(其中包括所需的功能)添加到运行时服务帐户,该功能便成功完成。

关于google-cloud-platform - 无法从 Google Cloud Function 访问存储在 Secrets Manager 中的 key ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63000973/

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