Search code examples
linuxamazon-web-servicesparsingaws-cliaws-secrets-manager

Accessing AWS Secrets Manager in Alpine Linux


I am accessing AWS Secrets Manager in Alpine Linux, though I can't see a way to get a value only from secret string without installing jq resource in Linux.

I know the below command will solve but jq is not a standard utility:

aws secretsmanager get-secret-value --secret-id secrets| jq --raw-output '.SecretString' | jq -r .<KeyName>

I'm stuck at checking the below command but it would return JSON format with 3 key-value pairs:

aws secretsmanager get-secret-value --secret-id secrets --query SecretString --output text

Also one option is to use Systems Manager Parameter Store which is possible but I don't like to create them 1-by-1 like in Secrets Manager you can store username, password, URL in one secret string.


Solution

  • It looks like are correct using jq, since the AWS CLI cannot interpret that field.

    This is because the SecretString field on a secret is a string, which is not interpreted by the AWS CLI as a JSON object:

    {
        "ARN": "arn:aws:secretsmanager:ap-southeast-2:...:secret:foo-GZPisx",
        "Name": "foo",
        "VersionId": "...",
        "SecretString": "{\"my-key\":\"my-value\"}",      <-- This is a string
        "VersionStages": [
            "AWSCURRENT"
        ],
        "CreatedDate": 1601860373.721
    }