# Установка HashiCorp Vault на Ubuntu Vault — это инструмент от HashiCorp для безопасного хранения секретов и управления ими. ## 1. Установка Vault Открываю нужный сервер ```sh wsl ``` ### 1.1. Добавление репозитория HashiCorp 1. Установите необходимые пакеты: ```sh sudo apt update && sudo apt install -y gnupg software-properties-common curl ``` 2. Добавьте официальный GPG-ключ HashiCorp: ```sh curl -fsSL https://apt.releases.hashicorp.com/gpg | sudo gpg --dearmor -o /usr/share/keyrings/hashicorp-archive-keyring.gpg ``` 3. Добавьте репозиторий HashiCorp в систему: ```sh sudo mcedit /etc/apt/sources.list.d/hashicorp.list ``` Заменяем на: ```text deb [signed-by=/usr/share/keyrings/hashicorp-archive-keyring.gpg] https://apt.releases.hashicorp.com $(lsb_release -cs) main ``` 4. Обновите списки пакетов: ```sh sudo apt update ``` 5. Установите Vault: ```ыр sudo apt install -y vault ``` 6. Проверьте, что Vault установлен правильно: ```sh vault --version ``` ## 2. Запуск Vault ### 2.1. Запуск в Dev-режиме (только для тестирования) ```sh vault server -dev ``` - По умолчанию Vault запустится на `http://127.0.0.1:8200/` - В терминале появится root-токен, который нужно сохранить. ### 2.2. Настройка Vault в режиме сервера 1. Создайте конфигурационный файл: ```sh sudo mkdir -p /etc/vault && sudo mcedit /etc/vault/config.hcl ``` 2. Добавьте следующий конфиг: ```text storage "file" { path = "/opt/vault/data" } listener "tcp" { address = "0.0.0.0:8200" tls_disable = 1 } disable_mlock = true ui = true ``` 3. Создайте папку для хранения данных: ```sh sudo mkdir -p /opt/vault/data && sudo chown vault:vault /opt/vault/data ``` 4. Создайте systemd-сервис для Vault: ```sh sudo mcedit /etc/systemd/system/vault.service ``` 5. Вставьте следующее содержимое: ```ini [Unit] Description=HashiCorp Vault After=network-online.target Requires=network-online.target [Service] User=vault Group=vault ExecStart=/usr/bin/vault server -config=/etc/vault/config.hcl ExecReload=/bin/kill --signal HUP $MAINPID KillSignal=SIGTERM Restart=on-failure LimitMEMLOCK=infinity ProtectSystem=full CapabilityBoundingSet=CAP_IPC_LOCK CAP_SETGID CAP_SETUID CAP_SYSLOG CAP_CHOWN NoNewPrivileges=yes [Install] WantedBy=multi-user.target ``` 6. Перезапустите systemd и включите Vault: ```sh sudo systemctl daemon-reload && sudo systemctl enable vault && sudo systemctl start vault ``` 7. Проверьте статус: ```sh sudo systemctl status vault ``` --- ## 3. Инициализация и разлочка Vault 1. Экспортируйте переменную окружения: ```sh export VAULT_ADDR='http://127.0.0.1:8200' ``` 2. Инициализируйте хранилище (сохраните ключи!): ```sh vault operator init ``` Выдало: ```text Unseal Key 1: dOVID4QUfFtSHF+dvdB8iwVrWidJ7BXavH15oA+m5a0Q Unseal Key 2: eoEhrDr6W1zZhBc30TX0tDAhfc6zo73poOw4cq7KmFRZ Unseal Key 3: N1XxH08BZEf3Sl9w+qMm36eirXjhh8EKTW7MyXoO475b Unseal Key 4: QboxCTXGqC2yJQRg7qcjQvoJBElT9A4o4x+mUr9/j5ti Unseal Key 5: lhRJsXwg9QIgs7J02DMOtCBmOOuZUJBSazT+oggo7Rhh Initial Root Token: hvs.5nuYVp8rWJwFgQ7f16XNoDC7 Vault initialized with 5 key shares and a key threshold of 3. Please securely distribute the key shares printed above. When the Vault is re-sealed, restarted, or stopped, you must supply at least 3 of these keys to unseal it before it can start servicing requests. Vault does not store the generated root key. Without at least 3 keys to reconstruct the root key, Vault will remain permanently sealed! It is possible to generate new unseal keys, provided you have a quorum of existing unseal keys shares. See "vault operator rekey" for more information. ``` 3. Разблокируйте Vault, используя один из ключей (потом ещё 3 раза): ```sh vault operator unseal ``` 4. Повторите `vault operator unseal` три раза с разными ключами. 5. Авторизуйтесь с root-токеном: ```sh vault login hvs.5nuYVp8rWJwFgQ7f16XNoDC7 ``` --- Теперь HashiCorp Vault установлен и готов к использованию! 🚀