Главная
» LINUX
»
Как хранить конфиденциальные данные в Linux с помощью Vault
Как хранить конфиденциальные данные в Linux с помощью Vault
HashiCorp Vault хранит статические секреты в механизме хранения секретов типа ключ/значение (KV) и позволяет авторизованным пользователям получать к ним доступ через веб-интерфейс или командную строку. В этом руководстве показан рабочий процесс на локальной машине Linux. Используется механизм хранения секретов KV v2 и режим разработки Vault, который намеренно небезопасен, хранит данные только в памяти и удаляет их при остановке. Используйте здесь значение-заполнитель; не вводите реальный пароль, ключ API или личные учетные данные. Для постоянного хранения конфиденциальных данных разверните Vault в режиме, отличном от режима разработки, с надежным хранилищем и надлежащим контролем доступа.
Установите Vault на Debian или Ubuntu.
Используйте официальный репозиторий пакетов HashiCorp вместо старой, привязанной к версии ссылки для скачивания. Приведенные ниже команды добавят ключ подписи и репозиторий apt, а затем установят Vault. Если вы используете RHEL, Fedora или Amazon Linux, выберите соответствующие инструкции по установке пакетов на официальной странице установки Vault .
Продолжайте выполнение инструкций в окне терминала. Привяжите процесс к локальному адресу (loopback), чтобы он был доступен только с вашего компьютера:
vault server -dev -dev-listen-address=127.0.0.1:8200
Vault автоматически инициализирует и разблокирует этот сервер разработки. В результате запуска выдается корневой токен; он понадобится вам для входа в пользовательский интерфейс. Этот токен предоставляет широкие административные права, поэтому храните его на локальном компьютере и никогда не делитесь им с другими. В режиме разработки также используются небезопасные настройки по умолчанию и хранилище в оперативной памяти. HashiCorp прямо заявляет, что он предназначен для экспериментов, а не для производственной среды. Пользовательский интерфейс доступен по адресу [ссылка]. http://127.0.0.1:8200/uiДемонстрация использует обычный HTTP на локальном порту; никогда не открывайте этот порт для сети.
Для воспроизведения примера создайте отдельный монтирование KV v2 с именем linux-kv. Во втором терминале задайте адрес сервера и активируйте монтирование один раз, пока активен этот демонстрационный пример:
Это позволяет избежать зависимости от имени монтирования по умолчанию, которое может различаться в зависимости от примера конфигурации. Секретная запись версий монтирования KV v2 выполняется. В документации Vault по настройке KV v2 описаны команда монтирования и рабочий процесс пользовательского интерфейса.
Сохраните тестовый секрет в веб-интерфейсе Vault.
Откройте http://127.0.0.1:8200/uiв браузере. Введите корневой токен, отображаемый в терминале сервера, и войдите в систему. Пользовательский интерфейс Vault включен по умолчанию в режиме разработки; см. официальную документацию по пользовательскому интерфейсу .
Выберите «Секреты» , откройте linux-kv/монтирование и выберите опцию создания секрета. На странице движка это монтирование должно быть обозначено как «Ключ/Значение версии 2».
В поле "Секретный путь" введите 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
Команда getвыводит значение, поэтому в примере используется только заполнитель. KV v2 putзаписывает новую версию и заменяет текущие данные секрета; включите все поля, которые вы хотите сохранить. Избегайте прямого ввода реальных учетных данных в команды оболочки, где они могут остаться в истории оболочки или быть видимыми для локальной проверки процессов. Используйте учетную запись, не являющуюся root, и политику ACL с узкой областью действия для реальных пользователей или приложений.
Остановите демонстрацию и подготовьте Vault к работе с реальными данными.
Вернитесь в терминал, где запущен сервер, и нажмите Ctrl+C . Демонстрация остановится, и хранящиеся в памяти секреты и токен будут потеряны. Повторный запуск создаст новый экземпляр; предыдущие записи не будут восстановлены.
Чтобы сохранить действительно важные секреты, настройте сервер Vault, не предназначенный для разработки, с надежным хранилищем данных. HashiCorp рекомендует интегрированное хранилище для многих развертываний с самостоятельным управлением; в документации к Raft подробно описаны его функции сохранения данных и резервного копирования/восстановления. Файловая система — еще один поддерживаемый вариант для надежного использования на одном сервере, но она не обеспечивает высокой доступности.
Для реального развертывания также необходимы TLS для клиентских подключений, производственная аутентификация, политики минимальных привилегий, защищенная инициализация и расшифровка данных, ограниченный доступ к файловой системе и протестированные резервные копии. Vault шифрует хранимые данные в состоянии покоя, но сервер, его токены и резервные копии по-прежнему нуждаются в защите. Перед сохранением учетных данных, от которых вы зависите, следуйте предупреждениям HashiCorp в режиме разработки и рекомендациям по развертыванию в производственной среде.