Thank you for reading this post, don't forget to subscribe!
Оригинал статьи:
Vault — это утилита командной строки, которая отвечает за управление секретами — логинами, паролями, ключами, сертификатами. «Управление» включает в себя как хранение, так и выдачу секретов конкретным приложениям с пометкой у себя в журнале, кому и когда это произошло.
Настройки PostgreSQL
Создаем базу и пользователя. Для этого переключимся на пользователя postgres
1 |
$ sudo su - postgres |
Создаем пользователя БД
1 |
$ createuser vltusr |
Переключаемся в PostgreSQL shell
1 |
$ psql |
Задаем пароль для пользователя БД
1 2 |
=# ALTER USER vltusr WITH ENCRYPTED password 'mypasswddd'; ALTER ROLE |
Создам базу и задаем владельца базы
1 2 |
=# CREATE DATABASE vaultdb WITH ENCODING='UTF8' OWNER=vltusr; CREATE DATABASE |
Переключаемся на базу vaultdb
1 2 |
=# \c vaultdb You are now connected to database "vaultdb" as user "postgres". |
Создаем таблицу
[codesyntax lang="php"]
1 2 3 4 5 6 7 |
CREATE TABLE vault_kv_store ( parent_path TEXT COLLATE "C" NOT NULL, path TEXT COLLATE "C", key TEXT COLLATE "C", value BYTEA, CONSTRAINT pkey PRIMARY KEY (path, key) ); |
[/codesyntax]
Создаем индекс
1 |
=# CREATE INDEX parent_path_idx ON vault_kv_store (parent_path); |
Выходим
1 2 |
=# \q $ exit |
Тестируем подключение
1 2 3 |
$ sudo su - postgres $ psql -U vltusr -h localhost -p 5432 vaultdb Password for user vltusr: mypasswddd =# \q $ exit |
Настройка Vault
Останавливаем Vault
1 |
$ sudo systemctl stop vault |
Редактируем конфиг Vault
1 2 3 4 5 6 7 |
$ sudo nano /etc/vault.d/vault.hcl […] #storage "file" { # path = "/var/lib/vault/data" #} storage "postgresql" { connection_url = "postgres://vltusr:mypasswddd@localhost:5432/vaultdb?sslmode=disable" table = "vault_kv_store" max_parallel = "128" } […] |
Переводим SELinux в режим работы premissive, иначе сервис Vault не будет стартовать
1 2 3 4 |
$ sudo setenforce 0 $ sudo nano /etc/selinux/config […] SELINUX=permissive |
Запускаем Vault
1 |
$ sudo systemctl start vault |
Проверяем статус
1 2 |
$ systemctl status vault $ journalctl -u vault |
Бэкапирование PostgreSQL
Создаем файл с параметрами подключения к базе, для того что бы в дальнейшем создавать дамп PostgreSQL без ввода пароля
1 2 3 |
$ sudo nano /root/.pgpass # hostname:port:database:username:password localhost:5432:vaultdb:vltusr:mypasswddd |
Выставляем права
1 |
$ sudo chmod 600 /root/.pgpass |
Создаем дамп
1 |
$ sudo pg_dump -d "vaultdb" -h localhost -Fc -U vltusr -w -f "/mnt/$(date +%Y%m%d_%H%M%S)_vaultdb.dump" |