1
0
Fork 0
mirror of https://github.com/Luzifer/vault2env.git synced 2024-11-08 16:20:07 +00:00
Small utility to transfer fields of a key in Vault into the environment
Find a file
Knut Ahlers 4fdf6791f4
Update dependencies
fixes CVE-2023-48795

Signed-off-by: Knut Ahlers <knut@ahlers.me>
2023-12-19 13:29:07 +01:00
.github/workflows Replace build tooling 2023-04-08 18:57:59 +02:00
.gitignore First version 2016-05-29 01:35:17 +02:00
go.mod Update dependencies 2023-12-19 13:29:07 +01:00
go.sum Update dependencies 2023-12-19 13:29:07 +01:00
History.md prepare release v2.3.0 2023-12-01 00:38:24 +01:00
LICENSE Fix license file 2018-11-28 20:31:10 +01:00
main.go Rewrite obfuscator logic not to work line-based 2023-12-01 00:32:07 +01:00
Makefile Add github publishing 2016-11-21 20:13:41 +01:00
obfuscator.go Rewrite obfuscator logic not to work line-based 2023-12-01 00:32:07 +01:00
obfuscator_writer.go Rewrite obfuscator logic not to work line-based 2023-12-01 00:32:07 +01:00
obfuscator_writer_test.go Rewrite obfuscator logic not to work line-based 2023-12-01 00:32:07 +01:00
README.md Update README 2020-10-18 15:03:12 +02:00
transform_sets.go Update dependencies, fix linter errors 2023-11-30 11:48:41 +01:00

Go Report Card

Luzifer / vault2env

vault2env is a really small utility to transfer fields of a key in Vault into the environment. It uses the app-role or simple token authentication to identify itself with the Vault server, fetches all fields in the specified keys and returns export directives for bash / zsh. That way you can do eval stuff and pull those fields into your ENV. If you don't want to use export directives you also can pass commands to vault2env to be executed using those environment variables.

Usage

In general this program can either output your ENV variables to use with eval or similar or it can run a program with populated environment.

$ vault2env --key=<secret path> <command>
<program is started, you see its output>

$ vault2env --export --key=<secret path>
export ...

For further examples and "special cases" see the Wiki: Usage Examples

Using evironment variables

# export VAULT_ADDR="https://127.0.0.1:8200"
# export VAULT_ROLE_ID="29c8febe-49f5-4620-a177-20dff0fda2da"
# export VAULT_SECRET_ID="54d24f66-6ecb-4dcc-bdb7-0241a955f1df"
# vault2env --export --key=secret/my/path/with/keys
export FIRST_KEY="firstvalue"
export SECOND_KEY="secondvalue"

# eval $(vault2env --export --key=secret/my/path/with/keys)
# echo "${FIRST_KEY}"
firstvalue

Using CLI parameters

The command does differ only with its parameters specified for the different authentication mechanisms:

  • When using AppRole you need to specify --vault-role-id and optionally --vault-secret-id if you're using the bind_secret_id flag for your AppRole
  • When using Token auth only specify --vault-token
# vault2env --vault-addr="..." --vault-app-id="..." --vault-user-id="..." --key=secret/my/path/with/keys
export FIRST_KEY="firstvalue"
export SECOND_KEY="secondvalue"

Though it's possible to use CLI parameters I strongly recommend to stick to the ENV variant as it's possible under certain conditions to read CLI parameters on a shared system using for example ps aux.