1
2
mirror of https://github.com/vimagick/dockerfiles synced 2024-06-27 09:18:43 +00:00
dockerfiles/vault/README.md

63 lines
1.6 KiB
Markdown
Raw Normal View History

2015-07-18 07:30:30 +00:00
vault
=====
2015-07-18 07:44:59 +00:00
![](https://badge.imagelayers.io/vimagick/vault:latest.svg)
2015-07-18 07:30:30 +00:00
[`Vault`][1] 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.
2015-07-18 07:44:59 +00:00
## docker-compose.yml
2017-12-12 09:29:22 +00:00
```yaml
2015-07-18 07:44:59 +00:00
vault:
image: vimagick/vault
ports:
- "8200:8200"
2015-07-18 08:24:47 +00:00
volumes:
2017-12-12 09:29:22 +00:00
- ./data/etc:/etc/vault
- ./data/var:/var/lib/vault
- ./data/log:/var/log/vault
2015-07-18 10:12:21 +00:00
cap_add:
- IPC_LOCK
2015-07-18 07:44:59 +00:00
restart: always
```
2015-07-18 08:32:56 +00:00
> Please distribute `vault.crt` to clients.
2015-07-18 08:24:47 +00:00
2015-07-18 07:44:59 +00:00
## server
2017-12-12 09:29:22 +00:00
```bash
2015-07-18 07:44:59 +00:00
$ cd ~/fig/vault
2017-12-12 09:29:22 +00:00
$ mkdir data
$ openssl req -x509 -nodes -days 3650 -newkey rsa:2048 -keyout data/etc/vault.key -out data/etc/vault.crt
2015-07-18 07:44:59 +00:00
$ docker-compose up -d
$ docker cp vault_vault_1:/usr/bin/vault /usr/local/bin/
2015-07-18 09:08:30 +00:00
$ docker exec -it vault_vault_1 sh
>>> cd /etc/vault
2017-12-12 09:29:22 +00:00
>>> vault init -key-shares=5 -key-threshold=3 | tee vault.secret
2015-07-18 09:08:30 +00:00
>>> exit
2017-12-12 09:29:22 +00:00
$ docker run --rm --volumes-from vault_vault_1 -v `pwd`:/backup alpine tar cvzf /backup/vault.tgz /etc/vault /var/lib/vault /var/log/vault
2015-07-18 07:44:59 +00:00
```
2015-07-18 09:08:30 +00:00
> Split `vault.secret`, keep them a secret.
2015-07-18 07:44:59 +00:00
## client
2017-12-12 09:29:22 +00:00
```bash
2015-07-18 09:08:30 +00:00
$ export VAULT_ADDR='https://server:8200'
2017-12-12 09:29:22 +00:00
$ export VAULT_SKIP_VERIFY=0
$ cp ~/fig/vault/data/etc/vault.crt /etc/ssl/certs/vault.pem
2015-07-18 09:08:30 +00:00
$ update-ca-certificates
2015-07-18 07:44:59 +00:00
$ vault status
2015-07-18 09:08:30 +00:00
$ vault unseal && vault unseal && vault unseal
2015-07-18 08:03:34 +00:00
$ vault auth
2017-12-12 09:29:22 +00:00
$ vault audit-enable file file_path=/var/log/vault/audit.log
2015-07-18 08:03:34 +00:00
$ vault write secret/name key=value
$ vault read secret/name
2015-07-18 07:44:59 +00:00
$ vault seal
```
2015-07-18 07:30:30 +00:00
[1]: https://www.vaultproject.io/