gpt4 book ai didi

go - 您如何在本地环境中从 GCP Secret Manager 获取 secret ?

转载 作者:行者123 更新时间:2023-12-05 07:10:14 28 4
gpt4 key购买 nike

我在 Secrets Manager 控制台上创建了一个 key 。然后我尝试使用 Go 代码 quickstart guide喜欢

ctx := context.Background()
client, err := secretmanager.NewClient(ctx)
if err != nil {
log.Println(err)
}

// Build the request.
req := &secretmanagerpb.AccessSecretVersionRequest{
Name: "projects/my-project/secrets/API_KEY/versions/latest",
}

// Call the API.
result, err := client.AccessSecretVersion(ctx, req)
if err != nil {
log.Println(err)
}

但后来我明白了

rpc 错误:code = PermissionDenied desc = Permission 'secretmanager.versions.access' 对于资源 'projects/my-project/secrets/API_KEY/versions/latest' 被拒绝(或者它可能不存在)

这是有道理的,因为 secrets manager api 如何知道我的代码具有管理员权限?

最佳答案

按照@sethvargo 的建议,按照以下身份验证设置说明解决错误:

  1. 安装客户端库。

  2. 要运行客户端库,您必须先设置身份验证。

    2.a 创建服务帐户。将 NAME 替换为服务的名称帐户。

     gcloud iam service-accounts create NAME

    2.b 向服务帐户授予角色。运行以下命令一次对于以下每个 IAM 角色:角色/所有者

    将 PROJECT_ID 替换为您的项目 ID。

    将 ROLE 替换为每个单独的角色。

     gcloud projects add-iam-policy-binding PROJECT_ID --member="serviceAccount:NAME@PROJECT_ID.iam.gserviceaccount.com" --role=ROLE

    2.c 生成 key 文件。将 FILE_NAME 替换为 key 文件的名称。

    gcloud iam service-accounts keys create FILE_NAME.json --iam-account=NAME@PROJECT_ID.iam.gserviceaccount.com
  3. 通过设置环境变量 GOOGLE_APPLICATION_CREDENTIALS 为您的应用程序代码提供身份验证凭据。

运行以下命令:

export GOOGLE_APPLICATION_CREDENTIALS="KEY_PATH"
  1. 使用客户端库。

引用documentation了解更多信息

关于go - 您如何在本地环境中从 GCP Secret Manager 获取 secret ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61301133/

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