Статья опубликована в рамках: Научного журнала «Студенческий» № 19(189)
Рубрика журнала: Информационные технологии
Скачать книгу(-и): скачать журнал часть 1, скачать журнал часть 2, скачать журнал часть 3, скачать журнал часть 4, скачать журнал часть 5, скачать журнал часть 6, скачать журнал часть 7, скачать журнал часть 8, скачать журнал часть 9, скачать журнал часть 10, скачать журнал часть 11, скачать журнал часть 12, скачать журнал часть 13
ОБЗОР И АНАЛИЗ СИСТЕМ УПРАВЛЕНИЯ СЕКРЕТАМИ
REVIEW AND ANALYSIS OF SECRET MANAGEMENT SYSTEMS
Anastasiya Khlopovskaya
student, Department of Instrumental and Applied Software, MIREA-Russian Technological University (RTU MIREA),
Russia, Moscow
АННОТАЦИЯ
В данной статье рассматриваются системы управления секретами, их преимущества и недостатки. Раскрыта роль и важность таких систем. Проведен сравнительный анализ всех рассматриваемых систем. Для удобства восприятия данные были вынесены в таблицу.
ABSTRACT
This article discusses secret management systems, their advantages and disadvantages. The role and importance of such systems is revealed. A comparative analysis of all the systems under consideration is carried out. For the convenience of perception, the data were put in a table.
Ключевые слова: секреты; аутентификационные данные; хранение секретов; системы управления секретами.
Keywords: secrets; authentication data; secret storage; secret management systems.
Многие программные продукты, представленные на рынке, представляют решения для хранения аутентификационных данных. Однако не каждое такое решение «из коробки» является безопасным. Если злоумышленник получит доступ к контроллерам проекта, есть вероятность, что он получит доступ к секретам и сможет их расшифровать. Для предотвращения таких угроз используются специализированные системы для управления секретами.
Назначение систем управления секретами следует из их названия, они хранят, управляют и предоставляют секреты. Использование таких систем при разработке программного обеспечения позволяет решить многие проблемы, связанные с безопасностью аутентификационных данных. Каждая система управления секретами должна выполнять такие базовые функции, как безопасное хранение секретов, передача секретов, управление идентификацией, доступ к управлению посредством API, иногда посредством командной строки или веб интерфейса.
Рассмотрим несколько наиболее популярных систем управления секретами и проведем их сравнительный анализ.
AWS Secrets Manager – это сервис управления конфиденциальными данными от компании Amazon. Secrets manager поддерживает такие типы секретов как: SSH-ключи, учетные данные Docker, токены учетных записей Kubernetes, пары логин-пароль, сертификаты служб и API, различные переменные. AWS Secrets Manager шифрует секреты с помощью сервиса AWS Key Management Service (KMS), используя конвертное шифрование (алгоритм шифрования AES‑256). Шифрование выполняется при помощи принадлежащих пользователю ключей, которые хранятся в AWS Key Management Service (KMS) и указываются пользователем или генерируются автоматически при первом запуске Secret Manager. При извлечении конфиденциальных данных Secrets Manager дешифрует их и передает по безопасному соединению TLS в локальную среду пользователя.
Secret Manager является управляемым сервисом AWS, поэтому пользователю для работы с данным сервисом необходимо лишь правильно написать политику доступа для приложения и добавить в его исходный код данные для доступа к Secret Manager.
Хранение секретов в Secret Manager обойдется в 0,40 USD за один секрет в месяц, так же каждые 10.000 запросов будут стоить 0,05 USD в месяц. Еще одним из существенных минусов Secret Manager является то, что он доступен не во всех регионах.
CyberArk Conjur – это приложение с открытым исходным кодом, которое выполняет управление секретами и общее управление каталогами и доступом с моделью RBAC (Управление доступом на основе ролей). Приложение является автономным и предоставляется в виде образа Docker или AWS AMI. Предоставляются интерфейсы UI и CLI к ядру REST API. В качестве каталога Conjur также предоставляет конечную точку LDAP для интеграции с другими приложениями, использующими каталог. Для секретов Conjur предлагает плагин Summon для предоставления секретов в качестве переменных среды.
Conjur фиксирует события, связанные с аутентификацией и доступом к секретам, в неизменяемый контрольный журнал. Отчеты о пользователях, группах, машинах, секретах, разрешениях и активности системы всегда доступны с помощью Conjur API.
Hashicorp Vault – это самая многофункциональная система, которая предоставляет хранилище секретов с возможностями управления. Секреты расположены в дереве с использованием ACL (список управления доступом) политик, ограничивающими доступ и разрешенные операции. Система позволяет контролировать доступ пользователем точечно к каждому секрету и каждой настройке, позволяет вести детальные логи и TTL (время жизни) доступа к секретам. Vault регистрирует информацию о клиенте, который выполнил действие, IP-адрес клиента, действие и в какое время оно было выполнено.
Vault поддерживает различные механизмы аутентификации и бэкэнды секретов, что позволяет осуществить развертывание с высокой степенью доступности.
Для некоторых конкретных служб Vault предлагает генераторы паролей, в которых новый секрет может быть создан для каждого запроса и отозван по истечении срока его действия.
KeyWhiz – система для распространения и управления секретами с открытым кодом от компании Square. Это Java-сервис с JSON API и поддерживаемыми хранилищами: MySQL или Postgres, который изначально был написан для внутренних целей компании. Клиентское приложение предоставляет модуль FUSE (файловая система в пользовательском пространстве) для секретов. Аутентификация выполняется с использованием взаимного TLS сертификата с использованием клиентского сертификата, поэтому для использования Keywhiz необходим PKI, который может предоставлять сертификаты службам и людям. Доступ открыт через командную строку, а также через веб-интерфейс для удобного управления секретами.
Есть некоторые ограничения в работе приложения, например, секреты имеют глобально уникальное имя, а группы не могут наследоваться от других групп.
Для большей наглядности была составлена сравнительная таблица (таблица 1).
Таблица 1.
Сравнительный анализ систем управления секретами
|
AWS Secrets Manager |
CyberArk Conjur |
Hashicorp Vault |
KeyWhiz |
Поддерживаемые типы секретов |
SSH ключи, учетные данные Docker, токены учетных записей сервиса Kubernetes, пары логин-пароль, сертификаты сервисов и API, переменные |
учетные данные Docker, токены учетных записей сервиса Kubernetes, пары логин-пароль, токены сервисов и API |
SSH ключи, TLS ключи, учетные данные Docker, токены учетных записей сервисов (OpenShift, Kubernetes, Nomad), пары логин-пароль, сертификаты сервисов и API, переменные |
сертификаты/ключи TLS, ключи GPG, токены API, учетные данные базы данных |
ACL (список управления доступом) |
Да |
Да |
Да |
Да |
Секреты для одноразового доступа |
Нет |
Нет |
Да |
Нет |
Интерфейсы управления |
API, CLI, Web |
API, CLI, Web |
API, CLI, Web |
API, CLI |
Протоколирование доступа к секретам |
Да |
Да |
Да |
Да |
Генерация секретов |
Нет |
Требуется плагин |
Да |
Требуется плагин |
Поддерживаемые облачные хранилища |
AWS |
AWS, Azure, GCP |
AWS, GCP, Azure, Alibaba Cloud |
AWS |
Поддерживаемые базы данных |
Amazon RDS, Amazon Redshift, Amazon DocumentDB |
Oracle, MS SQL, MySQL |
Oracle, MS SQL, MySQL, PostgreSQL |
PostgreSQL, MySQL |
Поддерживаемые системы CI \ CD |
GitLab CI, Jenkins |
GitLab CI, TeamCity |
GitLab CI, TeamCity, Jenkins |
GitLab CI, Jenkins |
Поддерживаемые оркестраторы контейнеров |
Kubernetes, Swarm |
Kubernetes, OpenShift, Tanzu, Pivotal, CloudFoundry |
Kubernetes, OpenShift, Swarm |
Kubernetes, Swarm
|
Поддерживаемые системы управления конфигурацией и развертывания приложений |
Terraform, CloudFormation |
Ansible, Terraform, Puppet |
Ansible, Terraform, Helm |
Не поддерживает |
Доступность в России |
Нет |
Да |
Да |
Да |
Таким образом, из данной таблицы видно, что несмотря на многообразие систем управления секретами, каждая их них обладает различными характеристиками. Следовательно, не каждая может подойти на роль хранилища аутентификационных данных. При выборе такой системы стоит отталкиваться от требований проекта.
Список литературы:
- HashiCorp Vault Documentation. [Электронный ресурс] // The HashiCorp Vault official site. 2022. URL: https://www.vaultproject.io/docs/ (Дата обращения: 20.05.2022).
- Keywhiz Documentation. [Электронный ресурс] // The Square official site. 2022. URL: https://square.github.io/keywhiz/ (Дата обращения: 19.05.2022).
- CyberArk Conjur Documentation. [Электронный ресурс] // The CyberArk official site. 2022. URL: https://docs.cyberark.com/Product-Doc/OnlineHelp/Portal/Content/Resources/_TopNav/cc_Portal.html (Дата обращения: 18.05.2022).
- AWS Secrets Manager Documentation. [Электронный ресурс] // The AWS official site. 2022. URL: https://docs.aws.amazon.com/secretsmanager/index.html (Дата обращения: 20.05.2022).
- Что такое методология разработки CI/CD. [Электронный ресурс] // Selectel. 2022. URL: Режим доступа: https://selectel.ru/blog/what-is-ci-cd/ (Дата обращения: 18.05.2022).
Оставить комментарий