【问题标题】:Requesting 2 secrets from AWS Secrets Manager in One API Call with JavaScript使用 JavaScript 在一次 API 调用中从 AWS Secrets Manager 请求 2 个密钥
【发布时间】:2019-03-23 18:36:18
【问题描述】:

背景

我正在使用 AWS Secrets Manager 在 AWS 中存储几个不同的密码和密钥值。第一个条目专门用于 AWS RDS 信息。

要在 Secrets Manager 中输入任意机密数据,您必须选择与 RDS 不同的条目。

我这样做了,然后创建了几个键值对来存储。现在我已经这样做了,我有 2 组 SecretId。 SecretIds 用于从 Secrets Manager 返回正确的密钥。我有 2 个不同的 SecretId,需要返回 2 组不同的秘密。我希望我可以做到这一点,而不必进行 2 次单独的 API 调用。

示例

最初这是用于返回 RDS 用户名和密码的 secretId。

const secretRds = 'some/thing/something';

我能够像这样返回这些数据,

client.getSecretValue({ SecretId: secretRds }, {...}

问题

现在我有了第二个 secretId,我有 2 套看起来像这样,

const secretRds = 'some/thing/something';
const secretConfigs = 'some/thing/sopmethingElse';

由于原始 secretId 已作为 getSecretValue 参数中的值传递到 SecretId 键中,我如何传递第二个 secretId

查看文档here,我似乎找不到任何解释。

这样的事情是我想要完成的,

显然这不起作用,因为键被命名了两次。 我需要了解如何将 2 个 secretId 传递给同一个 secretId。

const secretRds = 'some/thing/something';
const secretConfigs = 'some/thing/sopmethingElse';

client.getSecretValue({ SecretId: secretRds: SecretId: secretConfigs }, {...}

【问题讨论】:

    标签: javascript node.js amazon-web-services aws-secrets-manager


    【解决方案1】:

    不幸的是,Secrets Manager API 不支持在单个 GetSecretValue 调用中传递多个 SecretId。

    似乎没有任何方法可以在单个 API 调用中检索超过 1 个秘密值。您必须向 GetSecretValue 发出 2 个不同的 API 调用。

    【讨论】:

    • 嗯...这真是太不幸了。感谢您的帮助。
    【解决方案2】:

    您存储的这些值是什么?如果它们是相关的,例如数据库用户名、密码和连接字符串,您可以将它们全部存储在密钥中的同一个 JSON blob 中。您可以返回控制台并编辑密钥以组合所有内容。

    如果它们不是全部相关,您可能希望将它们保存在单独的秘密中,以便您可以单独管理对它们的权限。

    【讨论】:

      猜你喜欢
      • 2019-12-01
      • 2020-10-26
      • 2020-09-29
      • 2020-07-23
      • 2021-10-29
      • 2019-02-15
      • 2021-06-25
      • 2020-08-14
      • 2020-02-27
      相关资源
      最近更新 更多