Как хранить конфиденциальные данные в Linux с помощью Vault

HashiCorp Vault хранит статические секреты в механизме хранения секретов типа ключ/значение (KV) и позволяет авторизованным пользователям получать к ним доступ через веб-интерфейс или командную строку. В этом руководстве показан рабочий процесс на локальной машине Linux. Используется механизм хранения секретов KV v2 и режим разработки Vault, который намеренно небезопасен, хранит данные только в памяти и удаляет их при остановке. Используйте здесь значение-заполнитель; не вводите реальный пароль, ключ API или личные учетные данные. Для постоянного хранения конфиденциальных данных разверните Vault в режиме, отличном от режима разработки, с надежным хранилищем и надлежащим контролем доступа.

Установите Vault на Debian или Ubuntu.

Используйте официальный репозиторий пакетов HashiCorp вместо старой, привязанной к версии ссылки для скачивания. Приведенные ниже команды добавят ключ подписи и репозиторий apt, а затем установят Vault. Если вы используете RHEL, Fedora или Amazon Linux, выберите соответствующие инструкции по установке пакетов на официальной странице установки Vault .

sudo apt update && sudo apt install -y wget gpg
wget -O - https://apt.releases.hashicorp.com/gpg | sudo gpg --dearmor -o /usr/share/keyrings/hashicorp-archive-keyring.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/hashicorp-archive-keyring.gpg] https://apt.releases.hashicorp.com $(grep -oP '(?<=UBUNTU_CODENAME=).*' /etc/os-release || lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/hashicorp.list
sudo apt update && sudo apt install vault
В терминале Ubuntu отображается установленный Vault из официального репозитория apt компании HashiCorp.

Убедитесь, что CLI находится в вашем пути:

vault --version
В терминале Ubuntu готова команда `vault --version` для проверки установленного Vault CLI.

Запустите локальный демонстрационный сервер

Продолжайте выполнение инструкций в окне терминала. Привяжите процесс к локальному адресу (loopback), чтобы он был доступен только с вашего компьютера:

vault server -dev -dev-listen-address=127.0.0.1:8200
Сервер разработки Vault, привязанный к IP-адресу 127.0.0.1:8200, использует хранилище в оперативной памяти.

Vault автоматически инициализирует и разблокирует этот сервер разработки. В результате запуска выдается корневой токен; он понадобится вам для входа в пользовательский интерфейс. Этот токен предоставляет широкие административные права, поэтому храните его на локальном компьютере и никогда не делитесь им с другими. В режиме разработки также используются небезопасные настройки по умолчанию и хранилище в оперативной памяти. HashiCorp прямо заявляет, что он предназначен для экспериментов, а не для производственной среды. Пользовательский интерфейс доступен по адресу [ссылка]. http://127.0.0.1:8200/uiДемонстрация использует обычный HTTP на локальном порту; никогда не открывайте этот порт для сети.

Для воспроизведения примера создайте отдельный монтирование KV v2 с именем linux-kv. Во втором терминале задайте адрес сервера и активируйте монтирование один раз, пока активен этот демонстрационный пример:

export VAULT_ADDR='http://127.0.0.1:8200'
vault secrets enable -path=linux-kv kv-v2

Это позволяет избежать зависимости от имени монтирования по умолчанию, которое может различаться в зависимости от примера конфигурации. Секретная запись версий монтирования KV v2 выполняется. В документации Vault по настройке KV v2 описаны команда монтирования и рабочий процесс пользовательского интерфейса.

Страница локального входа в хранилище Vault по адресу 127.0.0.1:8200/ui с полем для ввода токена и кнопкой «Войти».

Сохраните тестовый секрет в веб-интерфейсе Vault.

  1. Откройте http://127.0.0.1:8200/uiв браузере. Введите корневой токен, отображаемый в терминале сервера, и войдите в систему. Пользовательский интерфейс Vault включен по умолчанию в режиме разработки; см. официальную документацию по пользовательскому интерфейсу .
  2. Выберите «Секреты» , откройте linux-kv/монтирование и выберите опцию создания секрета. На странице движка это монтирование должно быть обозначено как «Ключ/Значение версии 2».
На странице механизма сохранения секретов Vault показана точка монтирования linux-kv/Key/Value версии 2.
  1. В поле "Секретный путь" введите linux-demo. В полях "Ключ/Значение" введите api_keyв качестве ключа и test-valueв качестве значения. Нажмите "Сохранить" . Это примеры строк, а не учетные данные.
Vault создает форму для создания секрета в каталоге linux-kv/ по пути linux-demo, ключу api_key и образцу значения test-value.

Совместное указание пути и точки монтирования идентифицирует эту запись как linux-kv/linux-demo. Используйте нейтральные имена путей и ключей: имена могут встречаться в списках или метаданных, поэтому не указывайте в них пароль или другую конфиденциальную информацию. Для обычных многократно используемых записей типа ключ/значение используйте KV. Механизм Cubbyhole в Vault привязан к отдельному токену и уничтожается по истечении срока действия этого токена.

Запись и получение секретного ключа с помощью командной строки.

Сервер разработки автоматически аутентифицирует локальный CLI Vault. В другом терминале при необходимости укажите его адрес, затем используйте приведенный ниже синтаксис явного монтирования:

export VAULT_ADDR='http://127.0.0.1:8200'
vault kv put -mount=linux-kv linux-demo api_key=test-value
vault kv get -mount=linux-kv linux-demo
В терминале Ubuntu используется синтаксис -mount=linux-kv для записи и получения образца секрета KV v2.

Команда getвыводит значение, поэтому в примере используется только заполнитель. KV v2 putзаписывает новую версию и заменяет текущие данные секрета; включите все поля, которые вы хотите сохранить. Избегайте прямого ввода реальных учетных данных в команды оболочки, где они могут остаться в истории оболочки или быть видимыми для локальной проверки процессов. Используйте учетную запись, не являющуюся root, и политику ACL с узкой областью действия для реальных пользователей или приложений.

Остановите демонстрацию и подготовьте Vault к работе с реальными данными.

Вернитесь в терминал, где запущен сервер, и нажмите Ctrl+C . Демонстрация остановится, и хранящиеся в памяти секреты и токен будут потеряны. Повторный запуск создаст новый экземпляр; предыдущие записи не будут восстановлены.

В терминале Ubuntu после нажатия Ctrl+C отображается сообщение об остановке сервера разработки Vault и предупреждение о временных данных.

Чтобы сохранить действительно важные секреты, настройте сервер Vault, не предназначенный для разработки, с надежным хранилищем данных. HashiCorp рекомендует интегрированное хранилище для многих развертываний с самостоятельным управлением; в документации к Raft подробно описаны его функции сохранения данных и резервного копирования/восстановления. Файловая система — еще один поддерживаемый вариант для надежного использования на одном сервере, но она не обеспечивает высокой доступности.

Для реального развертывания также необходимы TLS для клиентских подключений, производственная аутентификация, политики минимальных привилегий, защищенная инициализация и расшифровка данных, ограниченный доступ к файловой системе и протестированные резервные копии. Vault шифрует хранимые данные в состоянии покоя, но сервер, его токены и резервные копии по-прежнему нуждаются в защите. Перед сохранением учетных данных, от которых вы зависите, следуйте предупреждениям HashiCorp в режиме разработки и рекомендациям по развертыванию в производственной среде.

Оставить комментарий

Как играть в Dying Light 2: Stay Human на Linux с помощью Proton

Как играть в Dying Light 2: Stay Human на Linux с помощью Proton

Установите Dying Light 2 на Linux через Steam и Proton, используя актуальные настройки совместимости, требования к объему памяти и исправления для проблем с запуском.

Как установить openSUSE Leap 15.4 с USB-накопителя

Как установить openSUSE Leap 15.4 с USB-накопителя

Установите openSUSE Leap 15.4 с архивированного образа DVD ISO, проверьте загрузку, создайте загрузочный USB-накопитель и следуйте инструкциям по установке YaST, учитывая, что поддержка этой версии прекращена.

Как играть в Apex Legends на Linux, транслируя игру с Windows.

Как играть в Apex Legends на Linux, транслируя игру с Windows.

Игра Apex Legends заблокирована на Linux через Proton. Вы можете транслировать её с игрового ПК под управлением Windows с помощью Steam Link или посмотреть поддерживаемые варианты без использования хост-компьютера.

Как смотреть прямые трансляции телеканалов на Linux с помощью Hypnotix

Как смотреть прямые трансляции телеканалов на Linux с помощью Hypnotix

Установите Hypnotix безопасно, просматривайте каналы в прямом эфире по странам, запускайте трансляцию и устраняйте распространенные проблемы воспроизведения в Linux.

Как настроить графический интерфейс Kali Linux в Windows с помощью VirtualBox

Как настроить графический интерфейс Kali Linux в Windows с помощью VirtualBox

Запустите Kali Linux с графическим рабочим столом на Windows в VirtualBox. Загрузите официально созданную виртуальную машину, добавьте её, войдите в систему безопасным способом и обновите её.

Как запускать приложения Windows на Linux Mint с помощью PlayOnLinux

Как запускать приложения Windows на Linux Mint с помощью PlayOnLinux

Установите PlayOnLinux на Linux Mint, создайте виртуальный диск Wine и попробуйте приложение Windows с понятными проверками совместимости и советами по устранению неполадок.

Как слушать TIDAL на компьютере с Linux с помощью TIDAL Hi-Fi

Как слушать TIDAL на компьютере с Linux с помощью TIDAL Hi-Fi

Установите на Linux общедоступный клиент TIDAL Hi-Fi, войдите в свою учетную запись, найдите музыку и выберите низкое, высокое или максимальное качество звука.

Как преобразовать изображения Apple HEIC в Linux в форматы JPG или PNG

Как преобразовать изображения Apple HEIC в Linux в форматы JPG или PNG

Конвертируйте фотографии Apple в формате HEIC на Linux с помощью Converseen. Установите приложение Flathub, выберите JPEG или PNG, укажите папку для сохранения и исправьте отсутствие поддержки HEIC.

Как запустить Safari на Linux: удаленный доступ и параметры WebKit

Как запустить Safari на Linux: удаленный доступ и параметры WebKit

В настоящее время в Linux нет нативной версии Safari. Для тестирования в реальном браузере используйте удаленную сессию Safari в macOS или запустите сборку WebKit от Playwright локально — это будет похожая, но другая альтернатива.

Как проверить состояние батареи ноутбука в Linux из командной строки

Как проверить состояние батареи ноутбука в Linux из командной строки

Используйте UPower или Linux sysfs для проверки уровня заряда, состояния зарядки и приблизительного износа батареи, а также дополнительные команды Battop и средства устранения неполадок.