HashiCorp Vault через Bank-Vaults Operator. Папка: infra/k8s/vault/.
Описание
Bank-Vaults Vault Operator разворачивает HA Vault с Kubernetes auto-unseal. Секреты инжектятся в поды через Vault Agent.
Что разворачивается
- Operator + webhook в
tech-vault-operator. - Vault HA instance (
vault-tech) вtech-vault-instances. - Raft storage + auto-unseal через Kubernetes Secret.
- Инжекция секретов в workload-ы через аннотации и label namespace.
Базовый порядок установки
1 2 3 4 5 | |
Команды
| Команда | Описание |
|---|---|
make vault-install-operator |
Установить Bank-Vaults operator |
make vault-create-instance |
Создать HA instance |
make vault-status |
Проверить operator, pods, CR |
make vault-unseal-keys |
Получить root token и unseal keys |
make vault-label-namespace NS=<name> |
Включить namespace для инжекции |
make vault-configure |
Применить базовые политики/auth |
make vault-sync-envs |
Синхронизировать секреты из env JSON |
make vault-raft-peers |
Проверить состояние Raft |
Auto-unseal
Vault использует Kubernetes auto-unseal — ручной unseal не требуется.
Инжекция секретов
Для инжекции секретов в namespace:
1 | |
Путь в Vault: secret/aiops/services/<env>/<release>/<component>
Плейсхолдеры в environment JSON
Файлы окружений (infra/k8s/vault/envs/services/*/) поддерживают специальные префиксы-плейсхолдеры:
| Префикс | Поведение | Применение |
|---|---|---|
vault:auto_generate[:тип] |
Автогенерирует случайный секрет, если ключа нет в Vault. Никогда не перезаписывает существующие значения. Типы: hex64 (по умолчанию), hex32, base64, alphanumeric, uuid |
HMAC-ключи, peppers, криптографические секреты |
vault:fill_me |
Оставляет существующее значение из Vault, или ставит плейсхолдер "fill_me" если отсутствует |
Ручные секреты (OAuth client secrets, API keys) |
k8s:namespace/secret/key |
Читает значение из Kubernetes-секрета во время синхронизации | Кросс-кластерные секреты, общие конфиги |
Типы секретов для vault:auto_generate:
hex64(по умолчанию): 64 hex символа, 32 байта энтропии - HMAC-ключи, peppershex32: 32 hex символа, 16 байт энтропии - менее критичные секретыbase64: 44 base64 символа, 32 байта энтропии - системы требующие base64alphanumeric: 43 алфавитно-цифровых символа, 32 байта энтропии - без спецсимволовuuid: UUID v4 формат - уникальные идентификаторы
Пример:
1 2 3 4 5 6 7 8 | |
При запуске make vault-sync-envs:
- vault:auto_generate[:тип] → генерирует новый секрет (только при первой синхронизации)
- vault:fill_me → сохраняет существующее значение или ставит "fill_me" (заполняете вручную)
- k8s:... → читает из K8s-секрета сразу
Быстрая диагностика
- Vault sealed или недоступен:
make vault-statusиmake vault-raft-peers. - Нет инжекции секретов: проверить label namespace и webhook.
- Проблемы с auth/policies: повторить
make vault-configure.
Связанные страницы
- Kubernetes
- Deploy — использование Vault в base-service
- infra/k8s/vault/README.md
- infra/k8s/vault/Makefile