Общее описание настроек безопасности

Версия 223.1 от Ирина Сафонова на 29.02.2024, 00:20

Назначение Flask AppBuilder


Платформа Flask AppBuilder (FAB) обеспечивает безопасность в Cloud BI. Платформа поддерживает:

При необходимости ознакомьтесь с документацией платформы.

Базовые роли


В Cloud BI пять базовых ролей:

  • Admin,
  • Alpha,
  • Gamma,
  • Sql_lab,
  • Public.

Ролевая модель позволяет создавать новые роли и настраивать существующие.

Beeline cloud не рекомендует добавлять и удалять разрешения у базовых ролей. Разрешения роли повторно синхронизируются с исходными значениями при обновлении Cloud BI.

Реестр ролей доступен в Настройки -> Список ролей.

Список ролей.PNG

Admin

Администраторы системы имеют все права. Узнайте, как добавить пользователя в группу доступа.

Пользователи с правами администратора по умолчанию имеют доступ ко всем БД.

Alpha

Пользователи группы Alpha имеют доступ ко всем источникам данных, но не могут предоставлять или отзывать доступ у других пользователей. Пользователи Alpha ограничены в изменении объектов, которыми владеют. Пользователи группы могут добавлять и изменять источники данных.

Gamma

Пользователи группы Gamma имеют доступ к:

  • Источникам данных, к которым у пользователей Gamma есть доступ.
  • Просмотру графиков и дашбордов, созданных из источников данных, к которым у Gamma доступ.

Пользователи Gamma не могут изменять или добавлять источники данных.

Управление доступом к источникам данных для Gamma

1. Проверьте, что пользователям назначена группа Gamma.

2. Создайте новую роль (Меню -> Безопасность -> Список ролей) и нажмите кнопку +.

3. В открывшемся окне настройте роль:

   3.1. Задайте имя.
   3.2. Присвойте роль пользователям.
   3.3. Выберите разрешения для роли.
   3.4. Сохраните данные.

Карточка роли Гамма.PNG

4. Выберите датасеты, которые требуется добавить роли, щелкнув раскрывающийся список.

Доступен поиск по имени таблицы.

5. Зайдите под одним из пользователей группы Gamma и проверьте, что доступны дашборды и срезы, на которые выданы права доступа.

Sql_lab

Роль sql_lab предоставляет доступ к Лаборатории SQL.

Пользователям Alpha и Gamma необходимо предоставить доступ для каждой БД.

Public

В конфигурационном файле укажите параметр PUBLIC_ROLE_LIKE для роли, чьи разрешения хотите передать. Например, параметр PUBLIC_ROLE_LIKE = "Gamma" предоставляет группе доступа Public тот набор разрешений, что и у группы Gamma. Функционал используется, если хотите разрешить анонимным пользователям просматривать дашборды. Предоставление для определенных наборов данных по-прежнему требуется. Это означает, что необходимо вручную добавить общедоступные источники данных в группу Public.

Как создать новую роль?


1. Перейдите в Настройки -> Список ролей.

2. Нажмите кнопку Добавить новую запись (+).

Кнопка создания роли в реестре.PNG

3. В открывшейся экранной форме введите название и задайте разрешения роли и нажмите кнопку Сохранить.

Доступен множественный выбор разрешений.

Форма добавления роли.PNG

4. При необходимости добавьте пользователей на вкладке Список пользователей.

5. Нажмите кнопку Сохранить.

В результате роль появилась в реестре.

Как добавить пользователей в группу доступа?


1. Перейдите в Настройки -> Список ролей.

2. Найдите нужную роль и нажмите кнопку Редактировать запись.

3. Перейдите на вкладку Список пользователей и нажмите кнопку Добавить новую запись.

Вкладка список пользователей роли.PNG

4. В открывшейся экранной форме добавьте пользователя и нажмите кнопку Сохранить

В результате пользователь появился в реестре.

Настройка разрешений


FAB автоматически создает разрешения для каждой создаваемой модели — can_add, can_delete, can_show, can_edit и т.д. — и для каждого представления. Cloud BI предоставляет более детальные разрешения, например, как all_datasource_access.

Не изменяйте базовые роли. При необходимости создайте ​​​​​​свои роли и объедините их с существующими.

Категории разрешений


Роли состоят из разрешений. Разрешения имеют категории.

Категория разрешенияОписание
Модель и действие

Модели — объекты. Примеры:

  • дашборд,
  • пользователь.

Каждая модель имеет фиксированный набор разрешений. Примеры:

  • can_edit,
  • can_show,
  • can_delete,
  • can_list,
  • can_add и так далее.

Например, для удаления пользователями дашбордов добавьте разрешение can_delete и укажите необходимых пользователи в роли.

ПредставленияПредставления — отдельные веб-страницы, такие как, представление Исследование или Лаборатория SQL.
Источник данныхДля каждого источника данных создается разрешение. Если не предоставлено разрешение all_datasource_access, пользователь сможет только просматривать срезы или исследовать источники данных, к которым есть доступ.
База данных (БД)Доступ к БД означает доступ ко всем источникам данных БД. Пользователь сможет запрашивать БД в лаборатории SQL при наличии разрешения к лаборатории. Узнайте, как настроить интеграцию БД и Cloud BI.

Рекомендации по настройке


Beeline cloud рекомендует:

  • Предоставить пользователю роль Gamma, а также любые другие роли, которые добавят доступ к определенным источникам данных.
  • Создавать отдельные роли для каждого профиля доступа.

Пример настройки


Пользователи финансовой группы могут иметь доступ к набору баз данных и источников данных. Эти разрешения могут быть объединены в одной роли. Пользователям финансовой группы назначьте роли:

  • Gamma для получения доступа к моделям и представлениям данных.
  • Finance. Роль — набор разрешений для объектов данных.

Пользователь может иметь сразу несколько ролей. Например, руководителю финансовой группы назначены группы доступа Gamma, Finance и Executive. Роль Executive позволяет иметь доступ к набору источников данных и дашбордов, доступных только для руководителей. Пользователь видит только те дашборды, к которым есть доступ в зависимости от назначенных ролей и разрешений.

Настройка фильтров безопасности на уровне строк


Создание правила

При необходимости в пункте меню Безопасность на уровне строк создайте правила, которые назначаются конкретной БД и набору ролей.

1. Нажмите на кнопку Правило.

Кнопка добавления правила.PNG

2. В открывшемся окне заполните поля. Обязательные поля отмечены звездочкой.

ПолеКомментарий
Название правилаВведите наименование.
Тип фильтраРегулярные фильтры добавляют операторы where к запросам, если пользователь принадлежит к роли, на которую ссылается фильтр.

Базовые фильтры применяют фильтры ко всем запросам, кроме ролей, определенных в фильтре. Базовые фильтры используются для определения того, что пользователи могут видеть, если к ним не применяются фильтры RLS в группе фильтров.
ДатасетыВыберите один или несколько датасетов из списка.
РолиВыберите одну или несколько из списка.
Для регулярных фильтров это роли, к которым применяются данный фильтр. Для базовых фильтров это роли, к которым фильтр НЕ применяется, например, Администратор, если администратор должен видеть всю информацию.
Групповой ключФильтры с тем же групповым ключом объединяются операцией OR внутри группы, в то время как разные группы фильтров — операцией AND. Неопределенные групповые ключи считаются уникальными группами, то есть не объединяются вместе. Например, если в таблице три фильтра, из которых два относятся к отделам Finance и Marketing (групповый ключ = 'department'), а один — к региону Europe (групповый ключ = 'region'), условие фильтра применяет фильтр (department = 'Finance' ИЛИ department = 'Marketing') И (region = 'Europe').
Групповой ключФильтры с тем же групповым ключом объединяются операцией OR внутри группы, в то время как разные группы фильтров — операцией AND. Неопределенные групповые ключи считаются уникальными группами, то есть не объединяются вместе. Например, если в таблице три фильтра, из которых два относятся к отделам Finance и Marketing (групповый ключ = 'department'), а один — к региону Europe (групповый ключ = 'region'), условие применяет фильтр (department = 'Finance' OR department = 'Marketing') И (region = 'Europe').
ОператорУсловие, которое добавляется к оператору WHERE. Например, чтобы возвращать строки только для определенного клиента, определите обычный фильтр с условием `client_id = 9`. Чтобы не отображать строки, если пользователь не принадлежит к роли фильтра RLS, создайте базовый фильтр с предложением `1 = 0` (всегда false).

3. Сохраните правило по кнопке Добавить.

Пример правила.PNG

Фильтрация в реестре правил

В реестре доступна фильтрация по:

  • имени,
  • типу фильтра,
  • групповому ключу.

Фильтрация правил.PNG

Прочие действия

Доступно:

  • удаление и редактирование правил,
  • множественный выбор правил.

Пример настройки

Используя фильтры безопасности на уровне строк в меню пункте меню Безопасность, при необходимости создайте фильтры, которые назначаются конкретной таблице и набору ролей. Если хотите, чтобы члены финансовой группы имели доступ только к строкам, в которых department = "finance", сделайте следующее:

1. Создайте фильтр безопасности на уровне строк с department = "finance".
2. Назначьте предложение роли Финансы и таблице, к которой оно применяется.
3. Поле предложения, которое может содержать произвольный текст, добавьте к предложению WHERE сгенерированного оператора SQL. Таким образом, вы даже можете настроить фильтр За последние 30 дней и применить его к определенной роли с таким предложением, как date_field > DATE_SUB(NOW(), INTERVAL 30 DAY). Фильтр поддерживает несколько условий: client_id = 6 И advertiser="foo" и так далее.

Все соответствующие фильтры безопасности на уровне строк объединяются вместе — внутри различные предложения SQL объединяются с помощью операторов AND. Это означает, что можно создать ситуацию, когда две роли конфликтуют таким образом, что подмножество таблиц может быть пустым. Например, фильтры client_id=4 и client_id=5, примененные к роли, приведут к тому, что пользователи этой роли будут иметь client_id=4 и client_id=5, добавленные к их запросу, что никогда не может быть истиной.

В начало 🡱
К следующему разделу 🡲
К предыдущему разделу 🡰