Общее описание настроек
Содержание
- Предоставленные роли
- Пользовательская группа доступа "Администратор системы"
- Пользовательская группа Alpha
- Пользовательская группа доступа Gamma
- Пользовательская группа sql_lab
- Public
- Настройка разрешений
- Разрешения
- Ограничение доступа к источникам данных
- Настройка фильтров безопасности на уровне строк
- Политика безопасности контента
Безопасность в Cloud BI обеспечивается Flask AppBuilder (FAB), платформой разработки приложений, созданной поверх Flask. FAB обеспечивает аутентификацию, управление пользователями, разрешения и роли. Документация по безопасности в FAB доступна по ссылке.
Предоставленные роли
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 и добавить общедоступные источники данных в роль вручную.
Настройка разрешений
Разрешения, предоставляемые 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, добавленные к их запросу, что никогда не может быть правдой.
Политика безопасности контента
Политика безопасности контента — это дополнительный уровень безопасности, который помогает обнаруживать и смягчать определенные типы атак, включая межсайтовые скриптинги (XSS) и атаки с внедрением данных.
Политика безопасности контента позволяет администраторам серверов уменьшить или устранить векторы, по которым может происходить XSS, указав домены, которые браузер должен рассматривать как допустимые источники исполняемых скриптов. В этом случае браузер, совместимый с политикой, будет выполнять только сценарии, загруженные в исходные файлы и полученные из этих разрешенных доменов, игнорируя все остальные сценарии (включая встроенные сценарии и HTML-атрибуты обработки событий).
Политика описывается с помощью ряда директив, каждая из которых описывает политику для определенного типа ресурса или области политики. Описание директив доступно по ссылке.
Важно коррректно настроить политику безопасности контента при развертывании Cloud BI, чтобы предотвратить многие типы атак. Cloud BI предоставляет две переменные в config.py для развертывания:
- TALISMAN_ENABLED по умолчанию имеет значение False. Установите для этого параметра значение True
- TALISMAN_CONFIG содержит фактическое определение политики
При работе в продуктивном режиме Cloud BI при запуске проверяет наличие настройки политики. Если она не будет найдена, то система выдаст предупреждение, что есть угроза безопасности. Для сред, в которых политики безопасности определены вне Cloud BI с помощью другого программного обеспечения, администраторы могут отключить это предупреждение с помощью ключа CONTENT_SECURITY_POLICY_WARNING в config.py.
Требования к политике безопасности контента
Требования следующие:
- Укажите ключевые слова 'unsafe-eval' и 'unsafe-inline':
- Некоторые дашбоарды загружают изображения с использованием URI данных:
- Диаграммы MapBox используют воркеры и должны подключаться к серверам MapBox:
connect-src 'self' https://api.mapbox.com https://events.mapbox.com
Ниже пример TALISMAN_CONFIG, который реализует вышеуказанные требования, использует 'self' для ограничения содержимого тем же источником, что и сервер Cloud BI, и запрещает устаревшие элементы HTML, устанавливая для object-src значение 'none'.