From 726714ced14b1e14b6dd99fc82f20f14f1d3cfb1 Mon Sep 17 00:00:00 2001 From: Jeff Mitchell Date: Wed, 6 Jul 2016 10:14:25 -0400 Subject: [PATCH] Initial addition of Vault docs --- vault/README-short.txt | 1 + vault/content.md | 97 +++++++++++++++++++++++++++++++++++++++++ vault/github-repo | 1 + vault/license.md | 1 + vault/logo.png | Bin 0 -> 28178 bytes 5 files changed, 100 insertions(+) create mode 100644 vault/README-short.txt create mode 100644 vault/content.md create mode 100644 vault/github-repo create mode 100644 vault/license.md create mode 100644 vault/logo.png diff --git a/vault/README-short.txt b/vault/README-short.txt new file mode 100644 index 000000000..62cc26492 --- /dev/null +++ b/vault/README-short.txt @@ -0,0 +1 @@ +Vault is a tool for securely accessing secrets via a unified interface and tight access control. diff --git a/vault/content.md b/vault/content.md new file mode 100644 index 000000000..c4f073c74 --- /dev/null +++ b/vault/content.md @@ -0,0 +1,97 @@ +# Vault + +Vault is a tool for securely accessing secrets. A secret is anything that you +want to tightly control access to, such as API keys, passwords, certificates, +and more. Vault provides a unified interface to any secret, while providing +tight access control and recording a detailed audit log. For more information, +please see: + + * [Vault documentation](https://www.vaultproject.io/) + * [Vault on GitHub](https://github.com/hashicorp/vault) + +%%LOGO%% + +# Using the Container + +We chose Alpine as a lightweight base with a reasonably small surface area for +security concerns, but with enough functionality for development and +interactive debugging. + +Vault always runs under [dumb-init](https://github.com/Yelp/dumb-init), which +handles reaping zombie processes and forwards signals on to all processes +running in the container. This binary is built by HashiCorp and signed with our +[GPG key](https://www.hashicorp.com/security.html), so you can verify the +signed package used to build a given base image. + +Running the Vault container with no arguments will give you a Vault server in +[development mode](https://www.vaultproject.io/docs/concepts/dev-server.html). +The provided entry point script will also look for Vault subcommands and run +`vault` with that subcommand. For example, you can execute `docker run vault +status` and it will run the `vault status` command inside the container. The +entry point also adds some special configuration options as detailed in the +sections below when running the `server` subcommand. Any other command gets +`exec`-ed inside the container under `dumb-init`. + +The container exposes two optional `VOLUME`s: + + * `/vault/logs`, to use for writing persistent audit logs. By default nothing + is written here; the `file` audit backend must be enabled with a path under + this directory. + * `/vault/file`, to use for writing persistent storage data when using the + `file` data storage plugin. By default nothing is written here (a `dev` + server uses an in-memory data store); the `file` data storage backend must + be enabled in Vault's configuration before the container is started. + +The container has a Vault configuration directory set up at `/vault/config` and +the server will load any HCL or JSON configuration files placed here by binding +a volume or by composing a new image and adding files. Alternatively, +configuration can be added by passing the configuration JSON via environment +variable `VAULT_LOCAL_CONFIG`. Please note that due to a bug in the current +release of Vault (0.6.0), you should _not_ use the name `local.json` for any +configuration file in this directory. + +## Running Vault for Development + +```console +$ docker run -d --name=dev-vault vault +``` + +This runs a completely in-memory Vault server, which is useful for development +but should not be used in production. + +When running in development mode, two additional options can be set via +environment variables: + + * `VAULT_DEV_ROOT_TOKEN_ID`: This sets the ID of the initial generated root + token to the given value + * `VAULT_DEV_LISTEN_ADDRESS`: This sets the IP:port of the development server + listener + +As an example: + +```console +$ docker run -e 'VAULT_DEV_ROOT_TOKEN_ID=myroot' -e 'VAULT_DEV_LISTEN_ADDRESS=127.0.0.1:1234' vault +``` + +## Running Vault in Server Mode + +```console +$ docker run --cap-add=IPC_LOCK -e 'VAULT_LOCAL_CONFIG={"backend": {"file": {"path": "/vault/file"}}, "default_lease_ttl": "168h", "max_lease_ttl": "720h"}' vault server +``` + +This runs a Vault server using the `file` storage backend at path +`/vault/file`, with a default secret lease duration of one week and a maximum +of 30 days. + +Note the `--cap-add=IPC_LOCK`: this is required in order for Vault to lock +memory, which prevents it from being swapped to disk. This is highly +recommended. In a non-development environment, if you do not wish to use this +functionality, you must add `"disable_mlock: true"` to the configuration +information. + +At startup, the server will read configuration HCL and JSON files from +`/vault/config` (any information passed into `VAULT_LOCAL_CONFIG` is written +into `local.json` in this directory and read as part of reading the directory +for configuration files). Please see Vault's [configuration +documentation](https://www.vaultproject.io/docs/config/index.html) for a full +list of options. diff --git a/vault/github-repo b/vault/github-repo new file mode 100644 index 000000000..a4a1b4c45 --- /dev/null +++ b/vault/github-repo @@ -0,0 +1 @@ +https://github.com/hashicorp/docker-vault diff --git a/vault/license.md b/vault/license.md new file mode 100644 index 000000000..2111daccf --- /dev/null +++ b/vault/license.md @@ -0,0 +1 @@ +View [license information](https://raw.githubusercontent.com/hashicorp/vault/master/LICENSE) for the software contained in this image. diff --git a/vault/logo.png b/vault/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..c1c86c17b7a4d20ef169fc21fae2f8490d312e13 GIT binary patch literal 28178 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 literal 0 HcmV?d00001