==================================================================================== === Сменить токен Root: ==================================================================================== # vault operator generate-root -init A One-Time-Password has been generated for you and is shown in the OTP field. You will need this value to decode the resulting root token, so keep it safe. Nonce 11111111-0000-0000-2222-333333333333 Started true Progress 0/3 Complete false OTP dfjhGKjrebk354ukyGVShmg45dqw OTP Length 28 Encoded Token dfjkHGkjh34gvkbHGVghwmvngnNGFsed vault operator generate-root -decode=dfjkHGkjh34gvkbHGVghwmvngnNGFsed -otp=dfjhGKjrebk354ukyGVShmg45dqw ==================================================================================== === Минимальный конфиг сервера: ==================================================================================== # == vi /etc/vault.d/vault.hcl: == ui = true storage "file" { path = "/opt/vault/data" } listener "tcp" { address = "0.0.0.0:8200" tls_cert_file = "/etc/ssl/acme/example.com_ecc/fullchain.cer" tls_key_file = "/etc/ssl/acme/example.com_ecc/example.com.key" } ==================================================================================== === Запуск прод-сервера: ==================================================================================== # vault server -config=/etc/vault.d/vault.hcl ==================================================================================== === Инициализация хранилища: ==================================================================================== # vault operator init ==================================================================================== === unseal хранилища: ==================================================================================== # vault operator unseal key1 vault operator unseal key2 vault operator unseal key3 ==================================================================================== === Включить модуль для хранения key=value секретов с кастомным названием "testkv" (разные версии api для хранилищ): ==================================================================================== # vault secrets enable -path=testkv kv vault secrets enable -path=testkv2 -version=2 kv ==================================================================================== === Запись\чтение секретов в\из хранилища: ==================================================================================== # vault kv put -mount=testkv test1 foo1=world1 vault kv get -mount=testkv test1 ==================================================================================== === Включить возможность аутентификации через логин\пароль: ==================================================================================== # vault auth enable userpass ==================================================================================== === Создать пользователя: ==================================================================================== # vault write auth/userpass/users/user policies=default password=qweqwe ==================================================================================== === Залогиниться пользователем: ==================================================================================== # vault login -method=userpass username=user # set password ==================================================================================== === Как логиниться рутом\пользователем: ==================================================================================== # == Указывается переменная с адресом сервера: == export VAULT_ADDR='https://localhost:8200' == Дальше идет два варианта: токен для рута и пароль для пользователя. И в первом, и во втором случае токен залогиненного пользователя будет сохраняться в ~/.vault-token. == == root: == export VAULT_TOKEN="hvs.dfjhgku3yqsd4mjhJMh34" == username\password: == vault login -method=userpass username=testuser ==================================================================================== === Сменить пароль пользователя: ==================================================================================== # vault write auth/userpass/users/testuser password=testpassword ==================================================================================== === Тестовый policy для записи\чтения: ==================================================================================== # path "testkv/*" { capabilities = ["create", "read", "update", "delete", "list", "sudo"] } ==================================================================================== === Записать policy из предыдущего примера на сервер: ==================================================================================== # vault policy write testkv testkv.hcl ==================================================================================== === Применить policy к пользователю: ==================================================================================== # vault write auth/userpass/users/testuser/policies policies="testkv,policy1,policy2" ==================================================================================== === Просмотреть список хранилищ: ==================================================================================== # vault secrets list