【问题标题】:Accessing AWS Secrets Manager in Alpine Linux在 Alpine Linux 中访问 AWS Secrets Manager
【发布时间】:2021-01-19 21:10:35
【问题描述】:

我正在 Alpine Linux 中访问 AWS Secrets Manager,但如果不在 Linux 中安装 jq 资源,我看不到仅从密钥字符串获取值的方法。

我知道下面的命令可以解决,但 jq 不是标准实用程序:

aws secretsmanager get-secret-value --secret-id secrets| jq --raw-output '.SecretString' | jq -r .<KeyName>

我一直在检查以下命令,但它会返回带有 3 个键值对的 JSON 格式:

aws secretsmanager get-secret-value --secret-id secrets --query SecretString --output text

还有一种选择是使用 Systems Manager Parameter Store,这是可能的,但我不喜欢像在 Secrets Manager 中那样一一创建它们,您可以将用户名、密码、URL 存储在一个秘密字符串中。

【问题讨论】:

  • 仅供参考:您也可以使用 python 从命令行解释 json,您使用的是具有 python 的 Alpine 版本吗? Alpine 是非常简单的,所以你没有太多的工作......如果 JSON 结构非常一致,你也可以使用 sed/awk 编写一些东西来提取键值。您的问题并不是真正的秘密管理器问题,而是“如何在不安装任何其他软件包的情况下在 alpine linux 中读取 JSON”。你可能想搜索这个,你会找到一些其他的答案来源
  • 你的答案有我需要的提示。将尝试这些选项。谢谢! @约翰·罗滕斯坦

标签: linux amazon-web-services parsing aws-cli aws-secrets-manager


【解决方案1】:

使用 jq 看起来是正确的,因为 AWS CLI 无法解释该字段。

这是因为密钥上的 SecretString 字段是 string,AWS CLI 不会将其解释为 JSON 对象:

{
    "ARN": "arn:aws:secretsmanager:ap-southeast-2:...:secret:foo-GZPisx",
    "Name": "foo",
    "VersionId": "...",
    "SecretString": "{\"my-key\":\"my-value\"}",      <-- This is a string
    "VersionStages": [
        "AWSCURRENT"
    ],
    "CreatedDate": 1601860373.721
}

【讨论】:

    猜你喜欢
    • 2020-09-28
    • 2023-01-01
    • 2020-04-24
    • 2018-11-20
    • 2020-06-16
    • 2021-10-03
    • 2020-10-26
    • 2022-09-23
    • 2022-12-30
    相关资源
    最近更新 更多