DDP предоставляет набор встроенных механизмов безопасности, обеспечивающих контроль доступа, защиту учетных данных и аудит действий пользователей при работе с платформой.
Аутентификация
Аутентификация пользователей в DDP выполняется с использованием внешнего сервиса Dex, развернутого в составе Deckhouse Kubernetes Platform.
Dex обеспечивает интеграцию с внешними провайдерами аутентификации (Keycloak, LDAP и другими) через стандартные протоколы OIDC и LDAP. DDP Backend использует ключи подписи, получаемые от Dex, для проверки JWT-токенов и аутентификации запросов к API. Настройка выполняется на стороне DKP, дополнительная настройка в DDP не требуется.
Ролевая модель (RBAC)
В DDP реализована ролевая модель доступа, обеспечивающая разграничение прав пользователей и контроль операций, выполняемых в платформе.
Модель поддерживает иерархию ролей и проверку разрешений на уровне супер-администратора, глобальных ролей, ролей ресурсов и ролей сущностей. Подробнее — в документации по ролевой модели.
Учетные данные
DDP обеспечивает централизованное и безопасное хранение учетных данных, используемых для интеграции с внешними системами и сервисами. Хранение и обработка учетных данных выполняются на стороне DDP Backend с использованием базы данных PostgreSQL.
Перед сохранением в базе данных учетные данные шифруются с применением алгоритма AES-GCM. Расшифровка выполняется DDP Backend только в момент использования учетных данных в действиях, источниках данных или виджетах. Подробнее — в документации по учетным данным.
Доверенные сертификаты
DDP позволяет добавлять в хранилище корневые и промежуточные сертификаты (CA) или сертификаты серверов. Они используются при проверке TLS в исходящих HTTPS-запросах к внешним сервисам (в действиях, виджетах, источниках данных и др.).
Управление доверенными сертификатами осуществляется через веб-интерфейс в разделе «Администрирование» → «Доверенные сертификаты». Подробнее — в документации по доверенным сертификатам.
Аудит-логи
Аудит-логи предназначены для регистрации действий пользователей и контроля операций, выполняемых через API платформы. Формирование аудит-логов выполняется на стороне DDP Backend.
Такие логи создаются автоматически для всех HTTP-запросов, за исключением GET. Каждая запись содержит информацию о пользователе, IP-адресе клиента, эндпоинте, HTTP-методе и статусе ответа.
Аудит-логи сохраняются в базе данных PostgreSQL и доступны для просмотра через веб-интерфейс платформы. Подробнее — в документации по аудит-логам.
HTTP-заголовки безопасности
Для защиты веб-интерфейса и API платформы DDP используются стандартные HTTP-заголовки безопасности. Их формирование и применение выполняется на стороне DDP Frontend и DDP Backend. Заголовки направлены на снижение рисков XSS-атак, clickjacking, предотвращения MIME-sniffing, контроля передачи информации о реферере, а также на принудительное использование защищённого соединения HTTPS.
В платформе применяются следующие HTTP-заголовки безопасности:
- Content Security Policy (CSP).
- X-Frame-Options.
- X-Content-Type-Options.
- X-XSS-Protection.
- Referrer-Policy.
- Permissions-Policy.
- Strict-Transport-Security (HSTS).
Настройка осуществляется в конфигурации DDP в секции security.headers. Подробнее — в документации по HTTP-заголовкам безопасности.