В разделе собраны готовые примеры решения типовых задач со Stronghold. Каждый пример построен одинаково: задача, что понадобится, пошаговая настройка, проверка результата и ссылки на справочные страницы с описанием всех параметров.
Команды приведены для Stronghold в Deckhouse Platform (d8 stronghold ...). Для Stronghold в Linux используйте команду stronghold с теми же аргументами. Функции, доступные только в Stronghold EE, отмечены в каталоге и на страницах примеров. Сравнение редакций приведено в разделе «Редакции».
Доступ и вход
Примеры в этом разделе:
| Пример | Что показывает |
|---|---|
| Интеграция с ALD Pro | Вход в Stronghold под учётными записями домена ALD Pro: метод LDAP с LDAPS и сопоставлением групп с политиками, единый вход по Kerberos, ротация паролей служебных учётных записей через механизм секретов LDAP и типовые ошибки. |
| Интеграция с Active Directory | Вход в Stronghold под учётными записями Active Directory через метод LDAP с LDAPS, вложенными группами и UPN, а также ротация паролей служебных учётных записей AD механизмом секретов LDAP со схемой ad. |
| Единый вход через корпоративный IdP (OIDC) | Как организовать единый вход в Stronghold через корпоративного провайдера идентификации по OIDC: общая схема, полный пример с Keycloak и сопоставлением групп с политиками, вход через Dex в DP и ссылки на руководства по провайдерам. |
| MFA для администраторов | Обязательный второй фактор TOTP при входе администраторов в Stronghold: метод TOTP, правило login enforcement для группы администраторов, регистрация по QR-коду, вход в CLI и веб-интерфейсе, восстановление при утере устройства и контроль по журналу аудита. |
| Аварийный доступ (break-glass) | Подготовка аварийного доступа к Stronghold на случай недоступности провайдера идентификации: резервная учётная запись в запечатанном конверте, процедура generate-root, аудит использования и ротация после применения. |
Секреты в приложения
Примеры в этом разделе:
| Пример | Что показывает |
|---|---|
| Доставка секретов в поды Kubernetes | Сравнение способов доставки секретов Stronghold в поды Kubernetes: CSI, env-injector, Stronghold Agent, External Secrets Operator и прямой вызов API. |
| Приложение на виртуальной машине со Stronghold Agent | Доставка секретов в приложение на виртуальной машине: Stronghold Agent под systemd, аутентификация AppRole с обёрнутым secret_id, рендеринг шаблонов и перезагрузка приложения. |
| CI/CD | Получение секретов Stronghold в GitLab CI, GitHub Actions и Jenkins без статических токенов: JWT/OIDC и AppRole. |
| GitOps | Как не хранить секреты в Git при работе с Argo CD и Flux: External Secrets Operator, argocd-vault-plugin, SOPS и механизм секретов GitOps. |
| Terraform и Ansible | Управление конфигурацией Stronghold как кодом через Terraform-провайдер hashicorp/vault и получение секретов в Ansible через коллекцию community.hashi_vault. |
| TLS-сертификат для веб-сервера на ВМ из PKI Stronghold | Автоматический выпуск и обновление TLS-сертификата Nginx на виртуальной машине: роль PKI, политика, шаблон Stronghold Agent с pki/issue и перезагрузка Nginx после обновления; замечания для Apache. |
| Клиенты приложений | Работа со Stronghold из кода приложения: переменные окружения, Go, Python, Java (Spring Cloud Vault), Node.js, чтение KV, динамические учётные данные и продление токенов и аренд. |
| Локальный Stronghold для разработки | Запуск Stronghold в Docker на рабочей станции разработчика: режим разработки server -dev и одноузловая конфигурация с Raft в Docker Compose. |
| AppRole для приложения и скриптов | Вход приложения без пользователя через AppRole: роль с ограничением по сетям, сроку жизни токена и числу использований secret_id, получение токена и чтение секрета. |
Динамические учётные данные
Примеры в этом разделе:
| Пример | Что показывает |
|---|---|
| Динамические учётные данные PostgreSQL для приложения в DP | Выдача приложению в Deckhouse Platform временных учётных данных PostgreSQL через механизм секретов database и метод аутентификации Kubernetes. |
| Динамические учётные данные MySQL и MariaDB для приложения | Выдача приложению временных пользователей MySQL или MariaDB с ограниченными правами через механизм секретов database: подключение, роль с GRANT, политика, продление, отзыв и проверка клиентом mysql. |
| Динамические учётные данные ClickHouse для приложения | Выдача приложению временных пользователей ClickHouse с заранее подготовленной ролью через механизм секретов database: подключение, роль, политика, продление, отзыв и проверка клиентом clickhouse-client. |
| Динамические пользователи RabbitMQ для сервиса | Выдача сервису временных пользователей RabbitMQ с правами только на свой виртуальный хост и очереди через механизм секретов rabbitmq: подключение, аренда, роль, политика и проверка через rabbitmqctl. |
| Временный доступ к Kubernetes через токены ServiceAccount | Выдача CI-заданиям и инженерам короткоживущих токенов ServiceAccount через механизм секретов kubernetes: роли с разрешёнными неймспейсами, генерируемые правила RBAC, получение токена и проверка через d8 k auth can-i. |
| Ротация паролей служебных учётных записей | Автоматическая смена паролей существующих служебных учётных записей в базах данных и LDAP через статические роли и библиотеки учётных записей. |
| Одноразовые коды TOTP для приложения | Механизм секретов TOTP: ключ для пользователя приложения, получение и проверка кода, минимальная политика и защита от повторного использования кода. |
Сертификаты
Примеры в этом разделе:
| Пример | Что показывает |
|---|---|
| Внутренний PKI на Stronghold | Построение двухуровневого PKI: корневой CA вне Stronghold или в отдельном mount, промежуточный CA в Stronghold, роли, выпуск сертификатов, CRL, OCSP, cert-manager и ACME. |
| cert-manager | Выпуск TLS-сертификатов в Kubernetes через cert-manager с Issuer типа vault, механизмом секретов PKI Stronghold и аутентификацией Kubernetes. |
| Автоматические сертификаты через ACME | Автоматический выпуск и продление TLS-сертификатов для внутренних серверов через ACME-сервер механизма PKI Stronghold: config/cluster, config/acme, EAB, certbot, lego и Caddy. |
| Доступ по SSH с подписанными сертификатами | Настройка доступа к серверам по SSH-сертификатам с коротким сроком жизни, которые пользователь получает в Stronghold после входа через OIDC. |
| Service mesh | Использование PKI Stronghold как внешнего центра сертификации для Istio через cert-manager и istio-csr. |
Шифрование и ключи
Примеры в этом разделе:
| Пример | Что показывает |
|---|---|
| Шифрование полей в базе данных с помощью Transit | Шифрование отдельных полей в базе данных приложения механизмом Transit, конвертное шифрование через datakey, ротация ключа, rewrap и min_decryption_version. |
| Автоматическое распечатывание через Yandex Cloud KMS (Stronghold EE) | Standalone-сервер Stronghold с автоматическим распечатыванием через Yandex Cloud KMS: ключ и сервисный аккаунт в yc CLI, блок seal yandexcloudkms, инициализация с ключами восстановления, миграция с Shamir и проверка после перезапуска. |
| Автоматическое распечатывание и seal wrap через HSM (Stronghold EE) | Защита root-ключа Stronghold EE аппаратным модулем через PKCS #11: блок seal pkcs11, лабораторный стенд на SoftHSM2, инициализация с ключами восстановления, двойное шифрование и рекомендации для production-HSM. |
Эксплуатация
Примеры в этом разделе:
| Пример | Что показывает |
|---|---|
| Миграция с HashiCorp Vault | Перенос секретов, политик, методов аутентификации, PKI и динамических секретов из HashiCorp Vault в Stronghold с планом переключения клиентов и отката. |
| Мультиарендность на основе пространств имён (Stronghold EE) | Выделение каждой команде отдельного пространства имён с делегированным администрированием, собственными методами аутентификации и шаблонными политиками. |
| Отправка журналов аудита в SIEM | Передача журналов аудита Stronghold в SIEM-системы: аудит-устройства, сбор через log-shipper, Vector и Fluent Bit, сопоставление полей для ELK, OpenSearch, Splunk, MaxPatrol SIEM и KUMA. |
| Одноразовая передача секрета через обёртывание ответа | Безопасная одноразовая передача пароля или ключа другому человеку с помощью обёртывания ответа: -wrap-ttl, проверка токена и unwrap. |
| Версии секретов в KV v2 | Жизненный цикл секрета в KV версии 2: новые версии, patch, откат, ограничение истории, check-and-set, удаление, восстановление и уничтожение версий. |
| Ограничение частоты запросов (rate limit) | Квота rate limit на путь: защита от перегрузки одним клиентом, проверка ответа 429, просмотр, изменение и удаление квоты. |
| Приватное хранилище токена (cubbyhole) | Изоляция данных в cubbyhole: у каждого токена своё хранилище, недоступное другим токенам, которое удаляется вместе с токеном. |
| Регулярные учения по аварийному восстановлению | Проведение регулярных учений: восстановление снимка в изолированном кластере, тестовое повышение DR secondary, чек-лист и периодичность. |
Stronghold как IdP
Примеры в этом разделе:
| Пример | Что показывает |
|---|---|
| Stronghold как OIDC-провайдер для внутренних приложений | Настройка единого входа во внутренние приложения через OIDC-провайдер Stronghold: ключ подписи, назначения, области действия с шаблонами, клиент и провайдер. |
Как добавить пример
Если вы не нашли нужный сценарий, задайте вопрос в Telegram-канале «Deckhouse | RU-сообщество». Чтобы предложить свой пример, создайте страницу в подходящем подразделе и соблюдайте структуру:
- Цель — какую задачу решает пример.
- Что понадобится — редакция, среда (DP или Standalone), доступы и внешние системы.
- Шаги — команды и конфигурации, которые можно выполнить по порядку.
- Проверка — как убедиться, что всё работает.
- Устранение неполадок и очистка тестовых ресурсов.
- Ссылки на справочные страницы в
params.relatedLinks.
Добавьте строку о новом примере в таблицу выше и ссылку на пример в params.relatedLinks справочных страниц, которые он использует.