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