hashicorp-vault

HASHICORP VAULT: How to read multiple items from a file and write them to Vault


I am able to write values to Vault from a json file :

# cat secrets.json 
{ "value": "bGktzwatc" }
{ "value": "AGktzwatB" }

While trying to create a new value by reading from json file, Vault is reading only the first value from the file :

# ./vault write secret/passwd1 @secrets.json
Success! Data written to: secret/passwd1
# ./vault read secret/passwd1
Key                 Value
---                 -----
refresh_interval    768h0m0s
value               bGktzwatc

Is it possible to read multiple values from a file and write to different keys through vault?

My Requirement is adding values to the multiple keys by reading from a file:

Key                 Value
---                 -----
refresh_interval    768h0m0s
value               bGktzwatc

Key                 Value
---                 -----
refresh_interval    768h0m0s
value               AGktzwatB

Solution

  • AFAIK, you cannot do this, as vault write command expects key to be specified as part of the command.

    When trying > vault write @data.json it looks like it doesn't matter what the file contains at all, as instead of wrong file format kind of error there is the general output about available parameters for command.


    Maybe it will be helpful: you can specify more than one value for specific key:

    # cat secrets.json 
    { "value1": "bGktzwatc", "value2": "AGktzwatB" }
    

    then key will contains

    Key                 Value
    ---                 -----
    refresh_interval    768h0m0s
    value1              bGktzwatc
    value2              AGktzwatB