Концепции безопасности¶
Установка¶
При установке Easy Report в Kubernetes-кластер необходимы:
- пользователь с настроенным доступом в кластер;
- отдельный неймспейс;
- права на создание ресурсов в этом неймспейсе (применимо для некоторых дистрибутивов Kubernetes, например, OpenShift, Rancher).
При установке в режиме standalone (на отдельной виртуальной машине) Easy Report предоставляет скрипты для установки следующих программ:
- k3s (требуются root-права для установки);
- helm.
Доступ к внутренним компонентам Easy Report имеют пользователи, у которых есть доступ к кластеру Kubernetes/виртуальной машине.
Все чувствительные конфигурационные параметры хранятся в Secrets-объектах Kubernetes-кластера.
Clickhouse-оператор¶
Easy Report позволяет поднять внутреннюю БД Clickhouse для хранения кэша данных клиента. Для развертывания этого ресурса внутри Kubernetes-кластера предлагается использовать сlickhouse-operator, который необходимо отдельно установить.
Список ресурсов, которые будут установлены при установке Clickhouse-оператора: https://github.com/Altinity/clickhouse-operator/blob/master/docs/operator_installation_details.md#resources-description
Tip
Внутренняя БД Clickhouse может быть вынесена из кластера и подключена как внешний источник, который администрируется самим клиентом. В этом случае пункт с установкой Clickhouse-оператора можно пропустить.
Подключение к приватному registry Easy Report¶
Все необходимые образы собственных сервисов Easy Report доступны в нашем приватном registry https://registry.gitlab.com/easy-report/easy-report-clj. Токен для доступа к registry создается с помощью Secret типа kubernetes.io/dockerconfigjson
в Kubernetes-кластере.
При необходимости (например, если нет возможности подключаться к удаленному registry из кластера) клиент может предварительно скачать все нужные образы или получить их в архиве и обработать по своему усмотрению: импортировать в свой собственный registry, загрузить в кэш узлов кластера и пр.
Внутренние хранилища серверной части Easy Report¶
Easy Report имеет три основных внутренних хранилища:
- хранилище Easy Report API содержит метаданные настроек моделей данных, справочников, словаря компании, пользовательской ролевой модели, настройки подключения к источникам данных (пароли хранятся в зашифрованном виде) и другие настройки;
- хранилище Easy Report Bot хранит контекст и историю переписок пользователей с чат-ботом;
- хранилище Easy Report Auth используется для хранения метаданных Keycloak.
Каждая из этих баз данных может быть вынесена из кластера и подключена как внешний ресурс, который администрируется самим клиентом.
Утечка данных из этих источников не является критичной, поскольку она не содержит чувствительной информации.
Кэш данных¶
Easy Report позволяет кэшировать данные в свою внутреннюю БД Clickhouse. Данные в кэше хранятся в исходном виде и дополнительно не шифруются.
Внутреннее кэш-хранилище может быть вынесено из кластера и подключено как внешний источник, который администрируется самим клиентом.
Интеграционный слой¶
Существует четыре основных направления интеграции:
- Интеграция с мессенджером
- Интеграция с источником данных
- Интеграция с SMTP-сервером (необязательно)
- Интеграция с Keycloak (при отсутствии у клиента будет автоматически развернут как сервис внутри Easy Report)
Интеграция с мессенджером¶
Клиентом Easy Report может быть веб-браузер или мессенджер, поддерживающий функцию чат-ботов. Обмен данными между сервером Easy Report и его клиентами осуществляется с использованием стандартных HTTP/HTTPS-запросов и технологии WebSocket (WS/WSS). Мы рекомендуем настраивать сервер для использования HTTPS и WSS во всех видах обмена данных. Когда сервер Easy Report настроен для SSL, весь трафик передаётся в зашифрованном виде.
Tip
Используйте SSL-шифрование для всего трафика, даже если обмен данными осуществляется во внутренней сети компании.
Доступ к Easy Report из Интернета¶
В случае необходимости интеграции с публичным мессенджером или использования веб-браузера напрямую из Интернета, мы рекомендуем использовать прокси-сервер. В этом сценарии обратный прокси является единственным внешним IP-адресом, с которым будет взаимодействовать сервер Easy Report. Обратные прокси скрывают информацию о сети сервера Easy Report для клиентов.
Мы не рекомендуем запускать сервер Easy Report в DMZ или вне вашей защищенной внутренней сети.
Tip
Настройте обратный прокси-сервер с включенным SSL для обработки всего входящего трафика из Интернета.
Tip
Ограничьте список подсетей, которые имеют доступ к прокси-серверу, поскольку у многих публичных мессенджеров ограничен список подсетей.
Интеграция с источником данных¶
Easy Report устанавливает соединения с базами данных для извлечения отчётов по запросам пользователей или для кэширования данных. Он использует нативные драйверы для подключения к базам данных.
Учётные данные для подключения ко внешним источникам хранятся в зашифрованном виде. Когда процесс обращается ко внешнему источнику, он предварительно расшифровывает учётные данные.
Интеграция с SMTP-сервером¶
Вы можете настроить сервер Easy Report для отправки пользователям сформированных отчетов на почту. Easy Report поддерживает TLS для соединения с сервером SMTP.
Интеграция с Keycloak¶
Easy Report реализует интеграцию с Keycloak для управления пользователями и авторизации внутри продукта.
Клиент может использовать собственный Keycloak, создав необходимые ресурсы (realm, client, role, client claims). Если клиент не использует Keycloak в своей инфраструктуре, то Keycloak будет автоматически развернут как сервис внутри Easy Report со всеми необходимыми настройками.
Ведение пользователей в Keycloak может осуществляться по одному из следующих сценариев:
- Создание локальных пользователей внутри Keycloak;
- Интеграция с AD клиента по LDAP протоколу;
- Интеграция с другой системой ведения пользователей клиента, поддерживающей один из следующих стандартных интерфейсов: LDAP, OpenID Connect, SAML.
При синхронизации пользователей из внешней системы во внутренний Keycloak Easy Report стоит учитывать следующие моменты:
- Keycloak не синхронизирует пароли пользователей, авторизация всегда идет на стороне внешней системы;
- Есть возможность синхронизировать группы и атрибуты пользователей для их использования в настройке ролевой модели Easy Report.