
vault v2.0.4
Инструмент для управления секретами, шифрования как услуги и управления привилегированным доступом
Vault

Пожалуйста, обратите внимание: Мы очень серьезно относимся к безопасности Vault и доверию наших пользователей. Если вы считаете, что нашли уязвимость в Vault, пожалуйста, сообщите о ней ответственно, связавшись с нами по адресу [email protected].
- Сайт: developer.hashicorp.com/vault
- Список объявлений: Google Groups
- Форум для обсуждений: Discuss
- Документация: https://developer.hashicorp.com/vault/docs
- Учебные пособия: https://developer.hashicorp.com/vault/tutorials
- Экзамен на сертификацию: https://developer.hashicorp.com/certifications/security-automation
- Исходный код документации: https://github.com/hashicorp/web-unified-docs
Vault — это инструмент для безопасного доступа к секретам. Секрет — это всё, к чему вы хотите строго контролировать доступ, например, ключи API, пароли, сертификаты и т.д. Vault предоставляет единый интерфейс для любых секретов, обеспечивая при этом строгий контроль доступа и ведя подробный журнал аудита.
Современная система требует доступа к множеству секретов: учетные данные базы данных, ключи API для внешних сервисов, учетные данные для взаимодействия в сервис-ориентированной архитектуре и т.д. Понимание того, кто и к каким секретам получает доступ, уже само по себе очень сложно и зависит от платформы. Добавление ротации ключей, безопасного хранения и подробных журналов аудита практически невозможно без специального решения. Здесь на помощь приходит Vault.
Ключевые особенности Vault:
-
Безопасное хранение секретов: Vault может хранить произвольные пары ключ/значение. Vault шифрует данные перед записью в постоянное хранилище, поэтому доступа к сырому хранилищу недостаточно для получения ваших секретов. Vault может записывать данные на диск, в Consul и т.д.
-
Динамические секреты: Vault может генерировать секреты по требованию для некоторых систем, таких как AWS или базы данных SQL. Например, когда приложению требуется доступ к S3-корзине, оно запрашивает у Vault учетные данные, и Vault генерирует пару ключей AWS с действительными разрешениями по требованию. После создания этих динамических секретов Vault также автоматически отзывает их по истечении срока аренды.
-
Шифрование данных: Vault может шифровать и расшифровывать данные без их хранения. Это позволяет командам безопасности определять параметры шифрования, а разработчикам — хранить зашифрованные данные в таком месте, как база данных SQL, без необходимости разрабатывать собственные методы шифрования.
-
Аренда и продление: Vault связывает с каждым секретом аренду. По окончании аренды Vault автоматически отзывает секрет. Клиенты могут продлевать аренду с помощью встроенных API продления.
-
Отзыв: Vault имеет встроенную поддержку отзыва секретов. Vault может отзывать не только отдельные секреты, но и целые деревья секретов, например, все секреты, прочитанные конкретным пользователем, или все секреты определённого типа. Отзыв помогает как при ротации ключей, так и при блокировке систем в случае вторжения.
Документация, начало работы и сертификационные экзамены
Документация доступна на сайте Vault.
Если вы новичок в Vault и хотите начать работу с автоматизацией безопасности, пожалуйста, ознакомьтесь с нашими руководствами по началу работы на обучающей платформе HashiCorp. Также доступны дополнительные руководства для продолжения обучения.
Примеры взаимодействия с Vault из вашего приложения на разных языках программирования можно найти в репозитории vault-examples. Также доступно готовое примерное приложение.
Продемонстрируйте свои знания Vault, сдав сертификационный экзамен. Посетите страницу сертификации для получения информации об экзаменах и найдите учебные материалы на обучающей платформе HashiCorp.
Разработка Vault
Если вы хотите работать над самим Vault или любой из его встроенных систем, сначала вам понадобится установить Go на вашем компьютере.
Для локальной разработки сначала убедитесь, что Go правильно установлен, включая настройку GOPATH, а затем установите переменную GOBIN в $GOPATH/bin. Убедитесь, что $GOPATH/bin находится в вашем PATH, так как некоторые дистрибутивы поставляются со старой версией инструментов сборки.
Затем клонируйте этот репозиторий. Vault использует Go Modules, поэтому рекомендуется клонировать репозиторий за пределами GOPATH. После этого вы можете загрузить все необходимые инструменты сборки, выполнив начальную настройку окружения:
$ make bootstrap
...
Чтобы скомпилировать версию Vault для разработки, выполните make или make dev. Это поместит бинарный файл Vault в папки bin и $GOPATH/bin:
$ make dev
...
$ bin/vault
...
Чтобы скомпилировать версию Vault для разработки с пользовательским интерфейсом, выполните make static-dist dev-ui. Это поместит бинарный файл Vault в папки bin и $GOPATH/bin:
$ make static-dist dev-ui
...
$ bin/vault
...
Для запуска тестов введите make test. Примечание: для этого требуется установленный Docker. Если команда завершится с кодом выхода 0, значит всё работает!
$ make test
...
Если вы разрабатываете конкретный пакет, вы можете запустить тесты только для этого пакета, указав переменную TEST. Например, ниже будут запущены тесты только для пакета vault:
$ make test TEST=./vault
...
Устранение неполадок
Если вы столкнулись с ошибкой вроде could not read Username for 'https://github.com', вам может потребоваться изменить настройки git следующим образом:
$ git config --global --add url."[email protected]:".insteadOf "https://github.com/"
Импорт Vault
Этот репозиторий публикует две библиотеки, которые могут быть импортированы другими проектами: github.com/hashicorp/vault/api и github.com/hashicorp/vault/sdk.