Deckhouse Stronghold: как правильно хранить секреты и не допустить утечки конфиденциальных данных

~ 6 мин

Инфраструктурные секреты — ключевые компоненты безопасности информационных систем и приложений. Это пароли, ключи API, SSH-ключи, токены и другие конфиденциальные данные — они позволяют приложениям и сервисам взаимодействовать друг с другом и функционировать безопасно. Неправильное управление этими данными может привести к серьёзным последствиям — от утечек и взломов до полной компрометации бизнес-процессов. 

Согласно исследованиям, прямые экономические издержки от одной утечки в российских компаниях составляют в среднем 5,5 млн рублей. Вдобавок бизнес терпит ощутимый репутационный ущерб.

Чтобы снизить подобные риски, необходимы комплексный подход и внедрение передовых технологий и методов защиты. В частности, могут помочь специальные инструменты, такие как Deckhouse Stronghold — решение для безопасного управления секретами. В этой статье расскажем о его функциональности, принципе работы и сценариях применения.

Что такое Deckhouse Stronghold и в чём его особенности

Deckhouse Stronghold — Cloud Native-решение, разработанное с учётом облачной инфраструктуры и интегрированное в Deckhouse Kubernetes Platform. Продукт предназначен для централизованного управления секретами, их хранения и контролируемого распространения в безопасной и управляемой среде. Решение удобно в эксплуатации, имеет встроенные возможности аудита и мониторинга.

Ключевые возможности продукта:

  • Поддержка различных методов аутентификации и гибкая настройка авторизации и политик доступа к хранилищу и секретам. Deckhouse Stronghold поддерживает множество методов аутентификации, включая LDAP, Dex, OAuth, JSON Web Token (JWT) и другие, обеспечивая гибкие возможности интеграции с существующими системами.
  • Несколько безопасных способов автоматизированной доставки секретов в приложения. За них отвечает модуль secrets-store-integration.  Автоматическая доставка секретов упрощает процесс интеграции и минимизирует ручной труд, а также уменьшает вероятность утечек данных.
  • Сокращение количества возможных векторов атаки. В основе хранилища только один бинарный файл, что уменьшает количество потенциальных точек входа для атак, повышая общую безопасность системы.
  • Простота использования. Удобный веб-интерфейс делает процесс управления секретами понятным и доступным для пользователей различного уровня.
  • Управление через единый API, совместимый с API HashiCorp Vault. Полная совместимость с API HashiCorp Vault позволяет легко интегрировать Deckhouse Stronghold в существующие системы и использовать уже имеющиеся инструменты и скрипты.
  • Возможность автоматического распечатывания (auto-unseal). Функция auto-unseal позволяет автоматически разблокировать хранилище после перезапуска или перезагрузки узлов, устраняя необходимость ручного вмешательства и снижая риск ошибки.
  • Безопасность соединений. Все сетевые соединения в Deckhouse Stronghold проходят через протокол TLS с проверкой сертификатов удостоверяющего центра (Certificate Authority), что обеспечивает высокий уровень защиты данных при передаче.
  • Регистрация в реестре отечественного ПО. Deckhouse Stronghold находится в реестре отечественного ПО (реестровая запись №22339 от 24.04.2024), что подтверждает его соответствие российским требованиям и стандартам безопасности.

Варианты инсталляции и функциональность

Deckhouse Stronghold поставляется в двух вариантах: в формате отдельной инсталляции (Standalone) или как хранилище секретов, развёрнутое в кластере Deckhouse Kubernetes Platform (High Availability).

Standalone

В этом варианте решение доставляется как бинарный файл или образ контейнера и выполняет базовые функции защищённого хранилища секретов.

High Availability

В этом варианте продукт разворачивается в кластере Deckhouse Kubernetes Platform (DKP) и предоставляет широкие функциональные возможности.

  • Защищённое хранилище секретов. Секреты хранятся как key-value и шифруются как в состоянии покоя, так и при передаче данных. Доступ к секретам предоставляется на основе ролей (RBAC), что позволяет контролировать, кто и какие секреты может читать или изменять. Все действия, связанные с доступом и изменением секретов, логируются, что позволяет проводить аудит и обеспечивать дополнительный уровень безопасности.
  • Отказоустойчивость и доступность. Решение может быть настроено в режиме кластера с несколькими узлами — это обеспечивает механизмы автоматического переключения при отказе одного из узлов.
  • Балансировка. Равномерное распределение запросов между различными узлами кластера позволяет поддерживать высокую производительность системы, обеспечивая быстрый доступ к секретам, и предотвращает перегрузку отдельных узлов. Балансировка нагрузки помогает поддерживать доступность сервиса даже при увеличении числа запросов или при временных отказах отдельных узлов.
  • Быстрое развёртывание. Deckhouse Stronghold бесшовно разворачивается в DKP за «пару кликов» и позволяет эффективно и безопасно организовать управление секретами из защищённого контура без привлечения специально обученных сотрудников.
  • Мониторинг. Deckhouse Stronghold включает набор инструментов для мониторинга состояния системы и отслеживания активности. Поддержка экспорта метрик в системы мониторинга (например, Prometheus и Grafana) позволяет отслеживать производительность и состояние инфраструктуры в реальном времени, обеспечивая прозрачность и возможность быстрого реагирования на инциденты.
  • Техническая поддержка. Два уровня поддержки (8/5, 24/7) позволяют получать консультации и помощь от экспертов Deckhouse в решении даже самых сложных технических проблем и оптимизации использования продукта.

Таким образом, в составе DKP решение обеспечивает консолидированное и безопасное управление секретами, а также лёгкость и прозрачность работы.

Сценарии использования

Мы выделяем пять основных сценариев использования Deckhouse Stronghold, которые могут использовать как команды DevOps/DevSecOps и сотрудники подразделений ИБ, так и разработчики.

Аутентификация и авторизация

  • Интеграция с существующими системами аутентификации, такими как LDAP, Active Directory, GitHub, Okta и Kubernetes.
  • Настройка политик доступа, чтобы контролировать — кто и к каким секретам может получить доступ.

Для кого полезно: команды DevOps и DevSecOps, сотрудники подразделений ИБ.

Секреты для DevOps и CI/CD

  • Управление секретами и учётными данными для Jenkins, GitLab CI, CircleCI и других CI/CD-инструментов.
  • Автоматическое обновление секретов и учётных данных в процессе развёртывания приложений.

Для кого полезно: команды DevOps и DevSecOps, сотрудники подразделений ИБ.

Безопасное хранение сертификатов и ключей

  • Автоматическая выдача и управление SSL/TLS-сертификатами для внутреннего и внешнего использования.
  • Хранение и управление ключами SSH для безопасного доступа к серверам.

Для кого полезно: команды DevOps и DevSecOps, сотрудники подразделений ИБ, разработчики.

Хранение секретов

  • Приложения получают доступ к секретам через API, нет необходимости хранить их в коде или конфигурационных файлах.
  • Для взаимодействия с внешними сервисами, такими как AWS, Azure и GCP, используется автоматическая ротация ключей API.

Для кого полезно: команды DevOps и DevSecOps, сотрудники подразделений ИБ, разработчики.

Управление учётными данными для БД

  • Создание временных учётных данных для доступа разработчиков и приложений к базам данных PostgreSQL, MySQL и MongoDB.
  • Автоматическое обновление (ротация) учётных данных для снижения риска их компрометации.

Для кого полезно: команды DevOps и DevSecOps, сотрудники подразделений ИБ, разработчики.

Принцип работы

Рассмотрим подробнее, как организован процесс доступа и управления данными в Deckhouse Stronghold.

Администратор с правами на управление начинает процесс, запрашивая доступ к данным через систему аутентификации. Получив запрос, Stronghold анализирует его и принимает решение о подтверждении или отклонении. По завершении аутентификации администратор получает возможность настроить политики доступа для пользователей, включая права на запись, чтение, изменение и другие операции.

После настройки политик пользователи могут получить доступ к данным также через систему аутентификации.

Когда приложению, запущенному в кластере Kubernetes, нужен доступ к секретам, оно аутентифицируется в Stronghold с использованием JWT, который генерируется в сервисном аккаунте соответствующего пода. Stronghold, в свою очередь, предоставляет приложению Token, который необходим для запроса секрета.

Приложение, используя полученный Token, запрашивает необходимый секрет у Stronghold. Если доступ разрешён, операция по чтению секрета будет выполнена. В случае отказа в доступе запрос отклоняется.

Получив секрет, приложение использует его для доступа к внешним ресурсам, обеспечивая таким образом безопасное и управляемое взаимодействие с критически важными данными.

Запрос демо или пробной версии

Если у вас остались вопросы и вы хотите запросить демонстрацию, чтобы больше узнать о Deckhouse Stronghold, — переходите по ссылке.

Оставить запрос на пробную 30-дневную версию продукта вы можете здесь.