C02. Общее описание настроек безопасности
Назначение Flask AppBuilder
Платформа Flask AppBuilder (FAB) обеспечивает безопасность в Cloud BI. Платформа поддерживает в Cloud BI:
- аутентификацию,
- управление пользователями,
- разрешения и роли.
При необходимости ознакомьтесь с документацией платформы.
Базовые роли в Cloud BI
Cloud BI поставляется с базовыми ролями и разрешениями.
Ролевая модель позволяет создавать новые роли и настраивать существующие.
Реестр ролей доступен в Настройки -> Список ролей.
Admin
Администраторы системы имеют все права. Узнайте, как добавить пользователя в группу доступа.
Alpha
Пользователи группы Alpha имеют доступ ко всем источникам данных, но не могут предоставлять или отзывать доступ у других пользователей. Пользователи Alpha ограничены в изменении объектов, которыми владеют. Пользователи группы могут добавлять и изменять источники данных.
Gamma
Пользователи группы Gamma имеют доступ к:
- Источникам данных, к которым у пользователей Gamma есть доступ.
- Просмотру графиков и дашбордов, созданных из источников данных, к которым у Gamma доступ.
Управление доступом к источникам данных для Gamma
1. Проверьте, что пользователям назначена группа Gamma.
2. Создайте новую роль (Меню -> Безопасность -> Список ролей) и нажмите кнопку +.
3. В открывшемся окне настройте роль:
3.1. Задайте имя.
3.2. Присвойте роль пользователям.
3.3. Выберите разрешения для роли.
3.4. Сохраните данные.
4. Выберите датасеты, которые требуется добавить роли, щелкнув раскрывающийся список.
5. Зайдите под одним из пользователей группы Gamma и проверьте, что доступны дашборды и срезы, на которые выданы права доступа.
Sql_lab
Роль sql_lab предоставляет доступ к Лаборатории SQL.
Public
В конфигурационном файле укажите параметр PUBLIC_ROLE_LIKE для роли, чьи разрешения хотите передать. Например, параметр PUBLIC_ROLE_LIKE = "Gamma" предоставляет группе доступа Public тот набор разрешений, что и у группы Gamma. Функционал используется, если хотите разрешить анонимным пользователям просматривать дашборды. Предоставление для определенных наборов данных по-прежнему требуется. Это означает, что необходимо вручную добавить общедоступные источники данных в группу Public.
Как создать новую роль?
1. Перейдите в Настройки -> Список ролей.
2. Нажмите кнопку Добавить новую запись (+).
3. В открывшейся экранной форме введите название и задайте разрешения роли и нажмите кнопку Сохранить.
4. При необходимости добавьте пользователей на вкладке Список пользователей.
5. Нажмите кнопку Сохранить.
Как добавить пользователей в группу доступа?
1. Перейдите в Настройки -> Список ролей.
2. Найдите нужную роль и нажмите кнопку Редактировать запись.
3. Перейдите на вкладку Список пользователей и нажмите кнопку Добавить новую запись.
4. В открывшейся экранной форме добавьте пользователя и нажмите кнопку Сохранить. В результате пользователь появляется в реестре.
Настройка разрешений
FAB автоматически создает разрешения для каждой создаваемой модели — can_add, can_delete, can_show, can_edit и т.д. — и для каждого представления. Cloud BI предоставляет более детальные разрешения, например, как all_datasource_access.
Категории разрешений
Роли состоят из набора разрешений. Разрешения имеют категории.
Категория разрешения | Описание |
Модель и действие | Модели — объекты. Примеры:
Каждая модель имеет фиксированный набор разрешений. Примеры:
Например, для удаления пользователями дашбордов добавьте разрешение can_delete и укажите необходимых пользователи в роли. |
Представления | Представления — отдельные веб-страницы, такие как, представление Исследование или Лаборатория SQL. |
Источник данных | Для каждого источника данных создается разрешение. Если не предоставлено разрешение all_datasource_access, пользователь сможет только просматривать срезы или исследовать источники данных, к которым есть доступ. |
База данных (БД) | Доступ к БД означает доступ ко всем источникам данных БД. Пользователь сможет запрашивать БД в лаборатории SQL при наличии разрешения к лаборатории. Узнайте, как настроить интеграцию БД и Cloud BI. |
Рекомендации по настройке
Beeline cloud рекомендует:
- Предоставить пользователю роль Gamma, а также любые другие роли, которые добавят доступ к определенным источникам данных.
- Создавать отдельные роли для каждого профиля доступа.
Пример настройки
Пользователи финансовой группы могут иметь доступ к набору баз данных и источников данных. Эти разрешения могут быть объединены в одной роли. Пользователям финансовой группы назначьте роли:
- Gamma для получения доступа к моделям и представлениям данных.
- Finance. Роль — набор разрешений для объектов данных.
Пользователь может иметь сразу несколько ролей. Например, руководителю финансовой группы назначены группы доступа Gamma, Finance и Executive. Роль Executive позволяет иметь доступ к набору источников данных и дашбордов, доступных только для руководителей. Пользователь видит только те дашборды, к которым есть доступ в зависимости от назначенных ролей и разрешений.
Настройка фильтров безопасности на уровне строк
При необходимости в пункте меню Безопасность создайте фильтры, которые назначаются конкретной БД и набору ролей.
Используя фильтры безопасности на уровне строк в меню пункте меню Безопасность, при необходимости создайте фильтры, которые назначаются конкретной таблице и набору ролей. Если хотите, чтобы члены финансовой группы имели доступ только к строкам, в которых 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, добавленные к их запросу, что никогда не может быть истиной.