我正在Alpine Linux中访问AWS Secrets Manager,尽管如果不在Linux中安装jq
资源,我看不到只从secret字符串中获取值的方法。
我知道下面的命令会解决问题,但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参数存储,这是可能的,但我不喜欢像在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
}