【问题标题】:Replace variable in AWS cli to update secret manager password替换 AWS cli 中的变量以更新密钥管理器密码
【发布时间】:2021-06-20 10:58:21
【问题描述】:

我是 AWS 世界的新手。我想从 aws cli 更新秘密凭据。 下面的命令非常适合我:

aws secretsmanager update-secret --secret-id mysecret --region us-east-1 \
--secret-string '{"username":"anika","password":"mypwd"}' 

但是如果我传递一个变量$serverPwd 它不会替换变量$serverPwd=mypwd

aws secretsmanager update-secret --secret-id mysecret --region us-east-1 \
--secret-string '{"username":"anika","password":"$serverPwd"} 

任何想法如何传递变量?

【问题讨论】:

  • 问题不在于 aws-cli,而在于解析变量的方式。试试这个:aws secretsmanager update-secret --secret-id mysecret --region us-east-1 --secret-string '{"username":"anika","password":"'"$serverPwd"'"}'
  • 你能接受答案吗?
  • @st_rt_dl_8 是

标签: shell aws-cli aws-secrets-manager


【解决方案1】:

AWS CLI 命令支持使用 --cli-input-json 和 --cli-input-yaml 参数接受来自文件的所有参数输入的能力。如下:

  • 生成 JSON 格式的模板

    aws secretsmanager update-secret --generate-cli-skeleton input > secretsmanage.json

  • 编辑 secretsmanage.json 并为您需要的参数提供值并删除您不需要的参数。

  • 使用 --cli-input-json 参数运行 aws secretsmanager update-secret,如下所示:

    aws secretsmanager update-secret --cli-input-json file://secretsmanage.json

【讨论】:

    【解决方案2】:

    问题不在于 aws-cli,而在于解析变量的方式。尝试这个: aws secretsmanager update-secret --secret-id mysecret --region us-east-1 --secret-string '{"username":"anika","password":"'"$serverPwd"'"}'

    这将允许变量正确扩展。

    【讨论】: