C02. Общее описание настроек
Содержание
- Назначение Flask AppBuilder
- Предоставленные роли
- Пользовательская группа доступа "Администратор системы"
- Пользовательская группа доступа Alpha
- Пользовательская группа доступа Gamma
- Пользовательская группа доступа sql_lab
- Пользовательская группа доступа Public
- Создание новой роли
- Добавление пользователей в группу доступа
- Настройка разрешений
- Ограничение доступа к источникам данных
- Настройка фильтров безопасности на уровне строк
Назначение Flask AppBuilder
Безопасность в Cloud BI обеспечивается Flask AppBuilder (FAB), платформой разработки приложений, созданной поверх Flask. Платформа обеспечивает аутентификацию, управление пользователями, разрешения и роли. Документация доступна по ссылке.
Предоставленные роли
Cloud BI поставляется с стандартным набором ролей, которые обрабатываются самим Cloud BI. Ролевая модель достаточно гибкая, позволяет создавать новые роли и настраивать существующие.
Реестр ролей доступен в меню (Настройки -> Список ролей).
Пользовательская группа доступа "Администратор системы"
У администраторов есть все возможные права, включая предоставление или отзыв прав у других пользователей и изменение дашбордов, созданных другими пользователями. Добавление пользователей в группу описано здесь.
Пользовательская группа доступа Alpha
Пользователи Alpha имеют доступ ко всем источникам данных, но не могут предоставлять или отзывать доступ у других пользователей. Они также ограничены в изменении объектов, которыми владеют. Пользователи этой группы могут добавлять и изменять источники данных. Добавление пользователей в группу описано здесь.
Пользовательская группа доступа Gamma
Пользователи Gamma имеют ограниченный доступ. Добавление пользователей в группу описано здесь. У группы настроен доступ к следующим данным:
- Поступающие из источников данных, к которым пользователям Gamma предоставлен доступ через другую дополнительную роль.
- Доступ только для просмотра срезов и дашбордов, созданных из источников данных, к которым у них есть доступ.
Управление доступом к источникам данных для Gamma
1. Проверьте, что пользователям с ограниченным доступом назначена группа Gamma.
2. Создайте новую роль (Меню -> Безопасность -> Список ролей) и нажмите +.
3. В открывшемся окне задайте новой роли имя, присвойте ее пользователям и выберите в раскрывающемся списке Разрешения для нее и нажмите кнопку Сохранить.
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.
Разрешения
Роли состоят из набора разрешений, и Cloud BI имеет множество их категорий.
Категория разрешения | Описание |
Модель и действие | Модели — это объекты, такие, как:
|
Представления | Представления — это отдельные веб-страницы, такие как, представление Исследование или представление Лаборатория SQL. Предоставленный пользователю, он увидит это представление в пунктах меню и сможет загрузить эту страницу. |
Источник данных | Для каждого источника данных создается разрешение. Если пользователю не предоставлено разрешение all_datasource_access, он сможет только просматривать срезы или исследовать источники данных, к которым у него есть доступ. |
База данных (БД) | Предоставление доступа к БД позволяет пользователю получить доступ ко всем источникам данных в этой БД. Также пользователь сможет запрашивать эту БД в лаборатории SQL при условии, что пользователю предоставлено специальное разрешение лаборатории. Про настройку БД в Cloud BI можно почитать здесь. |
Ограничение доступа к источникам данных
Рекомендуется предоставить пользователю роль 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, добавленные к их запросу, что никогда не может быть истиной.