Перейти к содержанию

Концепции безопасности

Установка

При установке 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 или вне вашей защищенной внутренней сети.

Easy-Report-in-your-infrastructure

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.