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

Replace variable in AWS cli to update secret manager password

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

知道如何传递变量吗?

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

  • 生成格式为JSON

    的模板

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

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

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

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

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

这将允许变量正确扩展。