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

Версия 179.1 от Ирина Сафонова на 20.01.2024, 03:20

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


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

Документация платформы доступна по ссылке.

Предоставленные роли


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

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

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

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

Пользовательская группа доступа "Администратор системы"


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

Пользовательская группа доступа Alpha


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

Пользовательская группа доступа 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 Lab. Добавление пользователей в группу описано здесь.

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

Пользовательская группа доступа Public


Для предоставления доступа к функциям Cloud BI пользователям, выполнившим вход в систему, используйте параметр конфигурации PUBLIC_ROLE_LIKE. Это параметр назначается для роли, чьи разрешения вы хотите передать.

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

Добавление пользователей в группу описано здесь.

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


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

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

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

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

4. При необходимости добавьте пользователей на вкладке Список пользователей.
5. Нажмите кнопку Сохранить. В результате роль появляется в реестре.

Добавление пользователей в группу доступа


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

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

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


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

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

Разрешения


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

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

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

  • Дашборд.
  • Фрагмент.
  • Пользователь.

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

  • 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 позволяет иметь доступ к набору источников данных и дашбордов, доступных только для руководителей. В представлении Dashboards пользователь видит только те дашборды, к которым у него есть доступ в зависимости от назначенных ролей и разрешений.

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


Используя фильтры безопасности на уровне строк в меню пункте меню Безопасность, при необходимости создайте фильтры, которые назначаются конкретной таблице и набору ролей. Если хотите, чтобы члены финансовой группы имели доступ только к строкам, в которых 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, добавленные к их запросу, что никогда не может быть истиной.

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