我正在检索我使用AWS cli存储在AWS秘密管理器中的秘密:
aws secretsmanager get-secret-value --secret-id secrets
返回
arn:aws:secretsmanager<ID>:secret:my_secrets <number> my_secrets {"API_KEY":"ABCDEFGHI"} <UUID string>
VERSIONSTAGES AWSCURRENT
有谁知道我如何得到秘密(“API_KEY”:“ABCDEFGHI”)? 我需要将这些秘密移到我的register-task-definition环境变量中。最好的方法是将它们存储在一个文件中并在我们之后删除它或将它们存储在变量中。它在linux机器上运行。
感谢
答案 0 :(得分:10)
使用CLI的--query
选项仅提取密码。
aws secretsmanager get-secret-value --secret-id secrets --query SecretString
答案 1 :(得分:5)
aws secretsmanager get-secret-value --secret-id secrets| jq --raw-output '.SecretString' | jq -r .API_KEY
使用jq可以打印。
答案 2 :(得分:2)
如果您的秘密只有一个密钥/对值,并且您只想打印出该值,并且您不想依赖于您的系统先安装了 jq,那么您可以这样做:
aws secretsmanager get-secret-value --secret-id secrets --query SecretString --output text | cut -d: -f2 | tr -d \"}
答案 3 :(得分:1)
helloV回答的小补充。您可以添加输出参数text
来删除引号。
aws secretsmanager get-secret-value --secret-id secrets --query SecretString --output text
答案 4 :(得分:1)
当您有多个秘密并获得json返回值时,可以使用
来获取密码的确切值aws secretsmanager get-secret-value --secret-id <secret_bucket_name> | jq --raw-output '.SecretString' | jq -r .key_for_password
答案 5 :(得分:0)
因此,在提取所需的东西时,我遇到了一些麻烦,这是我存储在SecretsManager中的两个变量的值。所以这对我有用。
注意:这是AWS SecretsManager文档中的一个示例。
aws secretsmanager get-secret-value --secret-id MyTestDatabaseSecret --version-stage AWSPREVIOUS
{
"ARN": "arn:aws:secretsmanager:us-west-2:123456789012:secret:MyTestDatabaseSecret-a1b2c3",
"Name": "MyTestDatabaseSecret",
"VersionId": "EXAMPLE1-90ab-cdef-fedc-ba987EXAMPLE",
"SecretString": "{\n \"username\":\"david\",\n \"password\":\"BnQw&XDWgaEeT9XGTT29\"\n}\n",
"VersionStages": [
"AWSPREVIOUS"
],
"CreatedDate": 1523477145.713
}
aws secretsmanager get-secret-value --secret-id MyTestDatabaseSecret --version-stage AWSPREVIOUS | jq --raw-output .SecretString | jq -r ."password"
BnQw&XDWgaEeT9XGTT29
答案 6 :(得分:0)
没有 Jq 的 PowerShell 解决方案
$a = aws secretsmanager get-secret-value --region <region> --secret-id <secret-name> | ConvertFrom-Json
$a 所有 json 转换为对象类型
输出
ARN : xxxxxx
Name : postgxxx
VersionId : fxxxx-xx-x-xx
SecretString : {"key":"value","key2":"value"}
VersionStages : {xxxxx}
CreatedDate : xxxxx.xx
$b = $a.SecretString | ConvertFrom-Json
输出
key : value
key2 : value
$b.key
**Output**
value
答案 7 :(得分:-1)
使用它仅获取密钥的值。确保填写您的安全ID和密钥:
aws secretsmanager get-secret-value --secret-id <yourSecretID> | jq '.SecretString' | tail -c +2 | head -c -2 | tr -d '\' | jq .<YourSecretKey>