替换 AWS cli 中的变量以更新秘密管理器密码

时间:2021-03-23 18:22:52

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

我是 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"}

任何想法如何传递变量?

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

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

这将允许变量正确扩展。