如何从谷歌秘密管理器访问多个秘密?

时间:2021-07-16 08:01:44

标签: node.js google-secret-manager

我有一个应用程序只想访问该应用程序的机密。无论如何访问多个秘密而不是每次访问单个秘密?

1 个答案:

答案 0 :(得分:0)

每个秘密都必须通过单独的 API 调用单独访问。您可以使用标签对机密进行逻辑分组,然后“列出 + 访问”based on a label

目前,这只能通过使用查询字符串 filter 参数的 API 获得。在接下来的两周内,SDK 将更新,您可以执行以下操作:

const [secrets] = await client.listSecrets({
  parent: "projects/my-project",
  filter: "labels.app=my-app",
});

const versions = secrets.map((secret) => async {
  return await client.accessSecretVersion({
    name: `${secret.name}/versions/latest`,
  });
});

同时,您可以在客户端执行此过滤。除非你有成千上万的秘密,否则性能将可以忽略不计:

const [secrets] = await client.listSecrets({
  parent: "projects/my-project",
});

const versions = await secrets
  .filter((secret) => {
    return secret.labels.app === "my-app";
  })
  .map((secret) => async {
    return await client.accessSecretVersion({
      name: `${secret.name}/versions/latest`,
    });
  });