Об этом проекте
Vault — это инструмент управления секретами от HashiCorp. Секрет — это любые данные, доступ к которым нужно строго контролировать: API-ключи, пароли, сертификаты и подобные учётные данные. Vault предоставляет единый интерфейс для любых секретов, обеспечивая при этом строгий контроль доступа и подробный аудит-лог.
Ключевые возможности, описанные в README:
- Безопасное хранение секретов: Vault хранит произвольные пары ключ/значение и шифрует данные перед записью в постоянное хранилище, поэтому доступа к сырому хранилищу недостаточно для чтения секретов. Запись может выполняться на диск, в Consul и другие бэкенды.
- Динамические секреты: Vault может генерировать секреты по требованию для таких систем, как AWS или SQL-базы данных. Например, приложение может запросить учётные данные для S3-бакета, и Vault сгенерирует пару ключей AWS с нужными правами, а затем автоматически отзовёт её по истечении срока аренды.
- Шифрование данных: Vault умеет шифровать и расшифровывать данные без их хранения, что позволяет командам безопасности задавать параметры шифрования, а разработчикам — хранить зашифрованные данные, например в SQL-базе, не разрабатывая собственное шифрование.
- Аренда и продление: каждый секрет связан с арендой; по окончании аренды Vault автоматически отзывает секрет, а клиенты могут продлевать аренду через встроенные API продления.
- Отзыв: Vault поддерживает отзыв отдельных секретов или целых деревьев секретов, например всех секретов, прочитанных конкретным пользователем, или всех секретов определённого типа. Это помогает при ротации ключей и ограничении доступа после инцидента.
В README даны ссылки на документацию, руководства для начинающих, обучающие материалы и сертификационный экзамен на обучающей платформе HashiCorp, а также примеры репозиториев для взаимодействия с Vault из приложений на разных языках и пример приложения.
Для разработки Vault написан на Go. В README описана установка Go, настройка GOPATH/GOBIN, клонирование репозитория вне GOPATH и начальная настройка с помощью `make bootstrap`. Сборочные версии для разработки создаются командами `make` или `make dev`, сборка UI — `make static-dist dev-ui`. Тесты запускаются через `make test` (требуется Docker); тесты для конкретных пакетов можно запустить с переменной TEST. Приёмочные тесты запускаются через `make testacc`; они могут создавать, изменять или уничтожать реальные ресурсы, поэтому запускать их нужно осторожно. В репозитории также описан экспериментальный механизм тестирования на основе Docker с использованием пакета `sdk/helper/testcluster/docker`, включая опции для пользовательских бинарников и лицензий Enterprise.
Репозиторий публикует две импортируемые библиотеки: `github.com/hashicorp/vault/api` и `github.com/hashicorp/vault/sdk`. В README отмечается, что импорт основного продукта Vault как зависимости не поддерживается. О проблемах безопасности следует сообщать ответственно на security@hashicorp.com.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.