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

Версия 38.1 от Ирина Сафонова на 31.03.2023, 18:01

Содержание

Безопасность в Cloud BI обеспечивается Flask AppBuilder (FAB), платформой разработки приложений, созданной поверх Flask. FAB обеспечивает аутентификацию, управление пользователями, разрешения и роли. Документация по безопасности в FAB доступна по ссылке.

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


Cloud BI поставляется с стандартным набором ролей, которые обрабатываются самим Cloud BI.

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

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


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

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


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

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


Пользователи Gamma имеют ограниченный доступ. Они имеют доступ к следующим данным:

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

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

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

Для предоставления доступа к определенным наборам данных:

1. Проверьте, что пользователям с ограниченным доступом назначена группа Gamma
2. Создайте новую роль (Меню -> Безопасность -> Список ролей) и нажмите кнопку +.
3. В открывшемся окне задайте новой роли имя, присвойте ее пользователям и выберите в раскрывающемся списке Разрешения для нее.
4. Выберите источники данных, которые вы хотите связать с этой ролью, щелкнув раскрывающийся список, и используйте ввод для поиска имен таблиц.
5. Зайдите под одним из пользователей группы Gamma и убедитесь, что ему доступны связанные с таблицами объекты (панели мониторинга и срезы), на которые были выданы права доступа.

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


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

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

Public


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

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

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


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

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

Разрешения


Роли состоят из набора разрешений, а Cloud BI имеет множество категорий разрешений.

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

Модели — это объекты, такие, как:

  • панель инструментов
  • фрагмент 
  • пользователь.
    Каждая модель имеет фиксированный набор разрешений, таких, как:
  • can_edit
  • can_show
  • can_delete
  • can_list
  • can_add и т. д.
    Например, вы можете разрешить пользователю удалять информационные панели, добавив can_delete на сущность информационной панели к роли и предоставив этому пользователю эту роль.
ПредставленияПредставления — это отдельные веб-страницы, такие как, представление Исследование или представление Лаборатория SQL. Предоставленный пользователю, он увидит это представление в пунктах меню и сможет загрузить эту страницу.
Источник данныхДля каждого источника данных создается разрешение. Если пользователю не предоставлено разрешение all_datasource_access, он сможет только просматривать срезы или исследовать источники данных, к которым у него есть доступ.
База данных (БД)Предоставление доступа к БД позволяет пользователю получить доступ ко всем источникам данных в этой базе данных. Также пользователь сможет запрашивать эту БД в лаборатории SQL при условии, что пользователю предоставлено специальное разрешение лаборатории.
Про настройку БД в Cloud BI можно почитать здесь.

Ограничение доступа к источникам данных


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

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

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

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

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

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