From c0713d94a3831d520e7cf1c1b081b1e39634c469 Mon Sep 17 00:00:00 2001 From: igor Date: Tue, 25 Feb 2025 07:39:22 +0500 Subject: [PATCH] + --- HashiCorp_Vault.md | 4 +- HashiCorp_Vault_install.md | 181 +++++++++++++++++++++++++++++++++++++ 2 files changed, 183 insertions(+), 2 deletions(-) create mode 100644 HashiCorp_Vault_install.md diff --git a/HashiCorp_Vault.md b/HashiCorp_Vault.md index 0790022..49184b5 100644 --- a/HashiCorp_Vault.md +++ b/HashiCorp_Vault.md @@ -43,8 +43,8 @@ vault server -dev ``` После запуска он покажет **root-токен** (сохраните его!): ```plaintext -Unseal Key: 9OSMJSPNCs9IT/H5OzLz17jW/vogeCAWQbXy2K7LRPQ= -Root Token: hvs.JDIyKgDMagA0WyIhLFQ4mAjZ +Unseal Key: x1jUXpLJREI6M1+Qm6m/h3NLEhaEmBageqw0v+dSSKo= +Root Token: hvs.V7Rc8uJ8YJ0AASKZfep6oYNe ``` Теперь Vault работает по адресу: diff --git a/HashiCorp_Vault_install.md b/HashiCorp_Vault_install.md new file mode 100644 index 0000000..d63e9df --- /dev/null +++ b/HashiCorp_Vault_install.md @@ -0,0 +1,181 @@ +# Установка 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 установлен и готов к использованию! 🚀