【问题标题】:escaping characters when passing JSON to aws secretsmanager将 JSON 传递给 aws secretsmanager 时转义字符
【发布时间】:2020-01-06 16:27:44
【问题描述】:

我尝试编写一个更新 AWS 机密的脚本。是的,update-secret 命令已经这样做了,但这会覆盖现有的秘密,而不是将它们与新内容合并。

例如,假设 my-environment/my-application/secrets 有以下内容:

{ "db_1_pwd": "secret"}

如果我运行我的脚本,像这样:

>> update_secret my-environment/my-application/secrets '{"db_2_pwd": "secreter"}'

我希望新内容是:

{ "db_1_pwd": "secret", "db_2_pwd": "secreter"}

相反,新内容最终变成了这个(未转义的)字符串:

"{\"db_1_pwd\":\"secret\",\"db_2_pwd\":\"secreter\"}"

这是我的脚本:

#!/bin/sh

SECRET_ID=$1
SECRET_STRING=$2

EXISTING_SECRET=`aws secretsmanager get-secret-value --secret-id $SECRET_ID | jq '.SecretString | fromjson'`
NEW_SECRET=`echo $EXISTING_SECRET $SECRET_STRING | jq  -s 'add tostring'`

echo $NEW_SECRET  # this is printed out for debug purposes

aws secretsmanager put-secret-value --secret-id $SECRET_ID --secret-string $NEW_SECRET

请注意,它确实会在 echo 语句中打印出 "{\"db_1_pwd\":\"secret\",\"db_2_pwd\":\"secreter\"}",如果我在命令行中键入:

>> aws secretsmanager put-secret-value --secret-id my-environment/my-application/secrets --secret-string "{\"db_1_pwd\":\"secret\",\"db_2_pwd\":\"secreter\"}"

它有效。

显然,脚本在转义引号方面存在问题。对于如何解决这个问题,有任何的建议吗?

与 AWS 相比,这可能是使用 bash 来做的事情

【问题讨论】:

  • 您的问题是什么?它看起来像你有什么作品
  • @Inian - 我的脚本不起作用。它将 my-environment/my-application/secrets 设置为 string: "{\"db_1_pwd\":\"secret\",\"db_2_pwd\":\"secreter\"}" 而不是将其设置为 object: {"db_1_pwd": "secret", "db_2_pwd": "secreter"} . @Philippe 的回答如下,将 $NEW_SECRET 用引号括起来。

标签: bash escaping jq aws-cli aws-secrets-manager


【解决方案1】:

以下脚本对我有用:

#!/bin/sh

SECRET_ID=$1
SECRET_STRING=$2
EXISTING_SECRET=`aws secretsmanager get-secret-value --secret-id $SECRET_ID | jq '.SecretString | fromjson'`
NEW_SECRET=`echo "$EXISTING_SECRET $SECRET_STRING" | jq  -s add`
aws secretsmanager put-secret-value --secret-id $SECRET_ID --secret-string "$NEW_SECRET"

【讨论】:

  • @Phiippe - 我尝试了很多不同的东西,但不知何故我一定没有尝试过。你的例子也适用于我。谢谢!
猜你喜欢
  • 1970-01-01
  • 2018-11-25
  • 1970-01-01
  • 2014-09-04
  • 2020-05-13
  • 1970-01-01
  • 1970-01-01
  • 2017-12-14
  • 2011-02-12
相关资源
最近更新 更多