Arenadata Platform Security
Полный обзор возможностей, технических механизмов и рекомендаций по обеспечению безопасности в продуктах Arenadata
Общий обзор
Arenadata Platform Security — это совокупность архитектурных подходов, инструментов и модулей, направленных на защиту данных, инфраструктуры и пользователей при использовании продуктов Arenadata, включая ADB (Greenplum), ADPG (PostgreSQL), ADQM (ClickHouse), Harmony MDM, Catalog, Streaming Platform и ADCM.
Безопасность реализуется на нескольких уровнях:
- Аутентификация и контроль доступа (RBAC)
- Шифрование (TLS, REST API, storage)
- Аудит и журналирование (LogSearch, pgAudit)
- Интеграция с внешними IAM-системами (LDAP/AD)
- Сетевые политики, hardening, контейнеризация
- Поддержка сертифицированных алгоритмов (ГОСТ)
Аутентификация и авторизация
Поддерживаемые механизмы:
|
Компонент |
Аутентификация |
Авторизация (RBAC) |
|---|---|---|
|
ADPG |
MD5, SCRAM, LDAP, GSSAPI |
Роли, политики, схемы |
|
ADB |
MD5, Kerberos (внешне) |
Ролевой доступ к сегментам |
|
ADQM |
Basic, JWT, LDAP |
ACL на уровне базы, таблиц |
|
NiFi |
LDAP, OpenID |
Политики доступа на компоненты |
|
ADCM |
Internal DB, LDAP |
Гибкое разграничение прав |
|
Harmony MDM |
SSO, LDAP, OAuth |
Бизнес-роли и права на атрибуты |
Примеры:
- LDAP в ADPG (pg_hba.conf):
host all all 0.0.0.0/0 ldap ldapserver=ldap.example.com ldapbasedn="ou=users,dc=example,dc=com"
- ADCM LDAP-коннектор:
type: ldap host: ldap://auth.internal search_base: "dc=corp,dc=local"
Шифрование и TLS
Поддержка:
|
Продукт |
TLS (внутри кластера) |
TLS для клиентов |
Алгоритмы |
|---|---|---|---|
|
ADPG |
✔ |
✔ |
TLS 1.2+, SCRAM |
|
ADB |
✔ |
✔ |
TLS 1.2 |
|
ADQM |
✔ |
✔ |
SSL via TCP proxy |
|
NiFi |
✔ (запуск с cert) |
✔ |
TLS + OAuth tokens |
|
Kafka |
✔ SASL_SSL |
✔ |
TLS + SCRAM |
|
ADCM |
✔ |
✔ |
TLS для REST и UI |
Поддержка ГОСТ: через дополнения (OpenSSL-GOST, certbot-сертификаты, nss)
Пример включения TLS в ADPG:
ssl = on ssl_cert_file = 'server.crt' ssl_key_file = 'server.key' ssl_ca_file = 'rootCA.pem'
Аудит и журналирование
Используемые компоненты:
|
Инструмент |
Что логирует |
|---|---|
|
pgAudit |
DDL/DML/SELECT в ADPG |
|
LogSearch |
Сбор логов всех компонентов |
|
Audit NiFi |
Изменения в flow, пользователи |
|
Harmony Audit |
Согласования, отклонения, изменения MDM |
|
ADCM Journal |
Все действия в интерфейсе, REST вызовы |
Пример включения pgAudit:
CREATE EXTENSION pgaudit; ALTER SYSTEM SET pgaudit.log = 'read, write, ddl';
LogSearch архитектура:
[Component Logs] → Fluent Bit → OpenSearch → Kibana
Интеграция с IAM (LDAP / Active Directory / OAuth2)
Поддерживаемые сценарии:
- SSO для Harmony MDM
- LDAP-группы в NiFi и ADCM
- Token-based Auth (NiFi, Kafka)
- Custom OAuth2 (через Reverse Proxy)
Пример использования Keycloak + NiFi:
<userGroupProvider> <ldapUserGroupProvider connectionURL="ldap://keycloak.local:389" /> </userGroupProvider>
Защита среды (Hardening)
Практики:
- UFW / IPTABLES / firewalld для ограничения портов
- SELinux / AppArmor для контейнеров
- Только sudo-пользователи с доступом к DB
- Логика read-only ролей
- Файловая защита: chown, chmod 600 для .key, .pgpass
Политики безопасности ADCM
- Авторизация по ролям (admin, viewer, operator)
- Ограничение команд (run, upgrade, stop)
- REST API с токеном доступа
- UI/CLI с разграничением функционала
adcm user add --group=read-only
Отчётность и соответствие требованиям
Arenadata позволяет соответствовать внутренним политикам заказчиков и ряду стандартов:
|
Стандарт / Требование |
Поддержка |
|---|---|
|
ФСТЭК / 152-ФЗ |
При дооснащении средствами ГОСТ + сертификация |
|
ISO 27001 |
Частичная совместимость при правильной настройке |
|
GDPR / DLP |
Средства логирования + анонимизация |
|
Интеграция SIEM |
Возможна через Fluent Bit, syslog, Kafka |
Плюсы безопасности Arenadata
|
Преимущество |
Описание |
|---|---|
|
Гибкая авторизация |
LDAP, RBAC, OAuth, токены, группы |
|
Глубокий аудит |
pgAudit, LogSearch, Harmony Audit |
|
TLS повсеместно |
Все модули могут работать с TLS |
|
Интеграция с IAM |
Поддержка корпоративных систем аутентификации |
|
Централизованный контроль |
Через ADCM: кластеры, пользователи, журналы |
Минусы и ограничения
|
Ограничение |
Комментарий |
|---|---|
|
Некоторые модули не ГОСТ |
Нет out-of-the-box сертифицированных реализаций |
|
Требует ручной настройки |
Без партнёра — сложно настроить все уровни безопасности |
|
Аудит требует расширений |
В PostgreSQL по умолчанию нет полноценного аудита |
|
Порог входа высокий |
Без DevOps-компетенции сложно настроить связки (NiFi + Keycloak) |
Заключение
Безопасность платформы Arenadata — это не просто SSL и пароли. Это многоуровневая система:
- контроля доступа (RBAC, LDAP),
- защиты каналов и данных (TLS, ACL, token),
- централизованного аудита (LogSearch, pgAudit),
- согласования изменений (MDM, Catalog, ADCM).
Для продуктивных сред, особенно в регулируемых отраслях (финансы, госсектор, телеком) — крайне важно настраивать все уровни защиты, а не только хостовую.
Чек-лист "Безопасность Arenadata: что настроить обязательно"
Подходит для ADB, ADPG, ADQM, NiFi, Harmony MDM, ADCM и др.
1. Аутентификация и авторизация
- Включить аутентификацию через LDAP / Active Directory / OAuth2
- Назначить роли (RBAC): admin, operator, read-only, service
- Настроить политики доступа в NiFi (user policies per component)
- Использовать токенизированный доступ к API ADCM, NiFi, Kafka
- Включить блокировку root-доступа через UI и CLI
2. TLS и шифрование
- Включить TLS на всех сервисах (PostgreSQL, ADCM, NiFi, Kafka)
- Установить сертификаты сервера, CA и ключи (OpenSSL или ГОСТ)
- Включить проверку клиента при подключении (SSL client verify)
- Настроить TLS-туннели между брокерами Kafka (SASL_SSL)
- Настроить HTTPS на UI ADCM, NiFi, Harmony MDM
3. Аудит и логирование
- Установить и включить расширение pgAudit (для ADPG)
- Включить аудит в Harmony MDM (в настройках системы)
- Настроить LogSearch: сбор логов всех компонентов в OpenSearch
- Настроить экспорт логов NiFi: flow audit, component access
- Включить ведение журнала действий пользователей в ADCM
4. Интеграция с IAM
- Настроить LDAP/AD подключение в NiFi, ADCM, MDM
- Проверить групповое сопоставление (memberOf, cn)
- Настроить таймауты сессий и автоматический logout
- Включить SSO (если используется OAuth / Keycloak)
- Проверить контроль паролей и двухфакторную аутентификацию (если требуется)
5. Сетевой доступ и хостовая защита
- Ограничить доступ по IP-адресам (через firewalld/iptables)
- Настроить fail2ban или аналогичный механизм на хостах
- Использовать SELinux / AppArmor (где применимо)
- Обновить системные библиотеки безопасности и Java
- Отключить неиспользуемые порты и сервисы
6. Резервное копирование и откат
- Настроить автоматический бэкап с проверкой целостности
- Хранить резервные копии в отдельном зашифрованном хранилище (S3, NFS с TLS)
- Проверять возможность восстановления (disaster recovery rehearsal)
7. Документирование и процессы
- Завести файл security-readiness.md с перечнем всех настроек
- Описать ролевую модель доступа
- Установить регулярный аудит безопасности (ежеквартально)
Схема IAM-интеграции с Keycloak или Active Directory
Цель: централизованная аутентификация и авторизация для Arenadata-компонентов через внешний IAM
Пример архитектуры:
+----------------------+ +----------------------+
| Пользователь (UI) | ---> | Keycloak / AD |
+----------------------+ +----------------------+
↑ ↑
| |
+--------+----+ +----+---------+
| Arenadata MDM| | NiFi |
| (OAuth2) | | (LDAP/SSO UI)|
+-------------+ +--------------+
+------------------+ +----------------+
| ADCM |<---> | LDAP/AD |
| LDAP auth + RBAC | | user catalog |
+------------------+ +----------------+
Настройка в NiFi (пример LDAP-конфигурации):
<userGroupProvider>
<ldapUserGroupProvider connectionURL="ldap://ldap.corp.local:389"
userSearchBase="ou=users,dc=corp,dc=local"
groupSearchBase="ou=groups,dc=corp,dc=local"
userIdentityAttribute="uid"
groupNameAttribute="cn"
authenticationStrategy="SIMPLE"
managerDN="cn=admin,dc=corp,dc=local"
managerPassword="•••••••••" />
</userGroupProvider>
Настройка в ADCM (пример adcm_config.yaml):
auth:
type: ldap
ldap:
uri: ldap://ldap.corp.local:389
bind_dn: cn=admin,dc=corp,dc=local
bind_password: your_password
base_dn: ou=users,dc=corp,dc=local
user_filter: "(uid={username})"
group_filter: "(member={dn})"
admin_group: "ArenadataAdmins"
Что дает интеграция с IAM
|
Преимущество |
Почему важно |
|---|---|
|
Единый вход (SSO) |
Повышает удобство, снижает уязвимости |
|
Централизованное управление |
Управление доступами в одном месте |
|
Аудит |
Легче отслеживать, кто и когда заходил |
|
Быстрое обновление ролей |
Через IAM-систему без прав в ADCM/NiFi |
|
Согласование с DevSecOps |
Упрощение комплаенс и доступа под аудит |
Grafana Security Dashboard для Arenadata
Цель: мониторинг критических событий и активностей, связанных с безопасностью
Источники данных:
|
Компонент |
Тип источника |
Назначение |
|---|---|---|
|
pgAudit / ADPG |
Prometheus / logs |
Запросы DDL/DML/SELECT, аномалии |
|
ADCM |
Prometheus / Loki |
Действия пользователей, API вызовы |
|
LogSearch (OpenSearch) |
OpenSearch Index |
Аномалии, ошибки авторизации, restart'ы |
|
NiFi, Kafka |
Prometheus / logs |
Потоки аутентификации, LDAP события |
Общая структура дашборда
Панель 1: Security Overview
|
Метрика |
Тип графика |
Пример запроса (Prometheus/Loki) |
|---|---|---|
|
Кол-во неуспешных логинов |
Single Stat |
`count_over_time({job="adpg"} |
|
Попытки доступа root-пользователем |
Bar Chart |
`count_over_time({job="adcm"} |
|
Кол-во смен ролей / GRANT |
Table |
pg_audit_events_total{event="GRANT"} |
Панель 2: ADPG Security Events
|
Название |
График |
Пример запроса |
|---|---|---|
|
DDL-запросы (CREATE/DROP) |
Time Series |
`pg_audit_events_total{event=~"CREATE |
|
Изменения прав (GRANT, REVOKE) |
Table |
pg_audit_grants_total |
|
Попытки подключения с внешних IP |
Table |
`count_over_time({job="adpg"} |
Панель 3: ADCM Аудит
|
Название |
График |
Источник |
|---|---|---|
|
Выполненные действия пользователями |
Table |
adcm_user_actions_total |
|
Ошибки авторизации |
Single Stat |
`count_over_time({job="adcm"} |
|
REST вызовы с ошибкой |
Heatmap |
rate(adcm_api_errors_total[1m]) |
Панель 4: NiFi & Kafka Events
|
Название |
График |
Источник |
|---|---|---|
|
Кол-во попыток аутентификации LDAP |
Time Series |
rate(nifi_ldap_auth_total[5m]) |
|
Ошибки доступа к потокам данных |
Table |
nifi_authorization_failures_total |
|
Kafka SASL errors |
Table |
`count_over_time({job="kafka"} |
Панель 5: OpenSearch / LogSearch
Если используется OpenSearch + Fluent Bit:
- Индекс: logstash-* или arenadata-security-*
-
Ключевые поля:
- user.keyword
- source_ip
- action.keyword
- timestamp
Примеры фильтров (для текстовых панелей или таблиц):
action:("authentication_failed" OR "unauthorized" OR "role_change")
Визуальные элементы:
- Красный цвет — ошибки или аномалии
- Желтый — подозрительные действия
- Зеленый — нормальное состояние
- Threshold'ы на неудачные логины >5 в 5 мин → триггер
Импорт дашборда
- В Grafana: Create → Import
- Вставьте JSON-конфиг (по запросу могу сгенерировать файл .json)
- Привяжите нужные источники (Prometheus, Loki, OpenSearch)
Что ещё можно добавить:
- Slack-уведомления при превышении числа failed logins
- Панель "изменения конфигурации" из audit-log'ов ADPG
- Drill-down по IP/пользователю на дашбордах
- Расчёт отклонения от средней активности (ML-анализ)



