在 Alpine Linux 中访问 AWS Secrets Manager
Accessing AWS Secrets Manager in Alpine Linux
我正在 Alpine Linux 中访问 AWS Secrets Manager,但我看不到在 Linux 中不安装 jq
资源而只从秘密字符串获取值的方法。
我知道以下命令可以解决问题,但 jq 不是标准实用程序:
aws secretsmanager get-secret-value --secret-id secrets| jq --raw-output '.SecretString' | jq -r .<KeyName>
我一直在检查以下命令,但它会 return JSON 格式为 3 个键值对:
aws secretsmanager get-secret-value --secret-id secrets --query SecretString --output text
还有一种选择是使用 Systems Manager Parameter Store,这是可能的,但我不喜欢像在 Secrets Manager 中那样一对一地创建它们,您可以将用户名、密码、URL 存储在一个秘密字符串。
使用 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
}
我正在 Alpine Linux 中访问 AWS Secrets Manager,但我看不到在 Linux 中不安装 jq
资源而只从秘密字符串获取值的方法。
我知道以下命令可以解决问题,但 jq 不是标准实用程序:
aws secretsmanager get-secret-value --secret-id secrets| jq --raw-output '.SecretString' | jq -r .<KeyName>
我一直在检查以下命令,但它会 return JSON 格式为 3 个键值对:
aws secretsmanager get-secret-value --secret-id secrets --query SecretString --output text
还有一种选择是使用 Systems Manager Parameter Store,这是可能的,但我不喜欢像在 Secrets Manager 中那样一对一地创建它们,您可以将用户名、密码、URL 存储在一个秘密字符串。
使用 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
}