mirror of
https://github.com/kubernetes-sigs/kubespray.git
synced 2026-05-17 22:37:45 -02:30
Vault security hardening and role isolation
This commit is contained in:
32
roles/vault/templates/docker.service.j2
Normal file
32
roles/vault/templates/docker.service.j2
Normal file
@@ -0,0 +1,32 @@
|
||||
[Unit]
|
||||
Description=hashicorp vault on docker
|
||||
Documentation=https://github.com/hashicorp/vault
|
||||
Wants=docker.socket
|
||||
After=docker.service
|
||||
|
||||
[Service]
|
||||
User=root
|
||||
Restart=always
|
||||
RestartSec=15s
|
||||
TimeoutStartSec=5
|
||||
LimitNOFILE=10000
|
||||
ExecReload={{ docker_bin_dir }}/docker restart {{ vault_container_name }}
|
||||
ExecStop={{ docker_bin_dir }}/docker stop {{ vault_container_name }}
|
||||
ExecStartPre=-{{ docker_bin_dir }}/docker rm -f {{ vault_container_name }}
|
||||
# Container has the following internal mount points:
|
||||
# /vault/file/ # File backend storage location
|
||||
# /vault/logs/ # Log files
|
||||
ExecStart={{ docker_bin_dir }}/docker run \
|
||||
--name {{ vault_container_name }} --net=host \
|
||||
--cap-add=IPC_LOCK \
|
||||
-v {{ vault_cert_dir }}:{{ vault_cert_dir }} \
|
||||
-v {{ vault_config_dir }}:{{ vault_config_dir }} \
|
||||
-v {{ vault_log_dir }}:/vault/logs \
|
||||
-v {{ vault_roles_dir }}:{{ vault_roles_dir }} \
|
||||
-v {{ vault_secrets_dir }}:{{ vault_secrets_dir }} \
|
||||
--entrypoint=vault \
|
||||
{{ vault_image_repo }}:{{ vault_image_tag }} \
|
||||
server --config={{ vault_config_dir }}/config.json
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
15
roles/vault/templates/host.service.j2
Normal file
15
roles/vault/templates/host.service.j2
Normal file
@@ -0,0 +1,15 @@
|
||||
[Unit]
|
||||
Description=vault
|
||||
After=network.target
|
||||
|
||||
[Service]
|
||||
AmbientCapabilities=CAP_IPC_LOCK
|
||||
ExecStart=/usr/bin/vault server --config={{ vault_config_dir }}/config.json
|
||||
LimitNOFILE=40000
|
||||
NotifyAccess=all
|
||||
Restart=always
|
||||
RestartSec=10s
|
||||
User={{ vault_adduser_vars.name }}
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
33
roles/vault/templates/rkt.service.j2
Normal file
33
roles/vault/templates/rkt.service.j2
Normal file
@@ -0,0 +1,33 @@
|
||||
[Unit]
|
||||
Description=hashicorp vault on rkt
|
||||
Documentation=https://github.com/hashicorp/vault
|
||||
Wants=network.target
|
||||
|
||||
[Service]
|
||||
User=root
|
||||
Restart=on-failure
|
||||
RestartSec=10s
|
||||
TimeoutStartSec=5
|
||||
LimitNOFILE=40000
|
||||
# Container has the following internal mount points:
|
||||
# /vault/file/ # File backend storage location
|
||||
# /vault/logs/ # Log files
|
||||
ExecStart=/usr/bin/rkt run \
|
||||
--insecure-options=image \
|
||||
--volume=volume-vault-file,kind=host,source=/var/lib/vault \
|
||||
--volume=volume-vault-logs,kind=host,source={{ vault_log_dir }} \
|
||||
--volume=vault-cert-dir,kind=host,source={{ vault_cert_dir }} \
|
||||
--mount=volume=vault-cert-dir,target={{ vault_cert_dir }} \
|
||||
--volume=vault-conf-dir,kind=host,source={{ vault_config_dir }} \
|
||||
--mount=volume=vault-conf-dir,target={{ vault_config_dir }} \
|
||||
--volume=vault-secrets-dir,kind=host,source={{ vault_secrets_dir }} \
|
||||
--mount=volume=vault-secrets-dir,target={{ vault_secrets_dir }} \
|
||||
--volume=vault-roles-dir,kind=host,source={{ vault_roles_dir }} \
|
||||
--mount=volume=vault-roles-dir,target={{ vault_roles_dir }} \
|
||||
docker://{{ vault_image_repo }}:{{ vault_image_tag }} \
|
||||
--name={{ vault_container_name }} --net=host \
|
||||
--caps-retain=CAP_IPC_LOCK \
|
||||
--exec vault -- server --config={{ vault_config_dir }}/config.json
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
Reference in New Issue
Block a user