Технический документ по безопасности Azure Synapse Analytics: управление доступом
Примечание.
Эта статья входит в серию статей Технический документ по безопасности Azure Synapse Analytics. Обзор серии см. в техническом документе по безопасности Azure Synapse Analytics.
В зависимости от способа моделирования и хранения данных управление данными и доступом может потребовать от разработчиков и администраторов безопасности использования различных подходов или сочетания методов для реализации надежной системы безопасности.
Azure Synapse поддерживает широкий спектр возможностей, позволяющих управлять доступом к данным. Эти возможности основаны на наборе расширенных функций управления доступом, включая следующие:
- Безопасность на уровне объекта
- Безопасность на уровне строк
- Безопасность на уровне столбцов
- Динамическое маскирование данных
- Управление доступом на основе ролей Synapse
Безопасность на уровне объекта
Каждый объект в выделенном пуле SQL имеет связанные разрешения, которые могут быть предоставлены субъекту. В контексте пользователей и учетных записей служб таким образом осуществляется защита отдельных таблиц, представлений, хранимых процедур и функций. Разрешения на объекты, такие как SELECT, могут быть предоставлены учетным записям пользователей (имена входа SQL, пользователи или группы Microsoft Entra) и ролям базы данных, что обеспечивает гибкость для администраторов баз данных. Кроме того, разрешения, предоставленные для таблиц и представлений, могут сочетаться с другими механизмами управления доступом (описанными ниже), такими как безопасность на уровне столбцов, безопасность на уровне строк и динамическое маскирование данных.
В Azure Synapse все разрешения предоставляются пользователям и ролям уровня базы данных. Кроме того, любой пользователь, которому предоставлена встроенная роль RBAC "Администратор Synapse" на уровне рабочей области, автоматически получает полный доступ ко всем выделенным пулам SQL.
Помимо защиты таблиц SQL в Azure Synapse, также могут быть защищены выделенный пул SQL (ранее называемый хранилищем данных SQL), бессерверный пул SQL и таблицы Spark. По умолчанию пользователи, которым назначена роль Участник данных BLOB-объектов хранилища для озер данных, подключенных к рабочей области, имеют разрешения READ, WRITE и EXECUTE для всех таблиц, созданных в Spark, когда пользователи интерактивно выполняют код в записной книжке. Она называется сквозной передачей Microsoft Entra и применяется ко всем озерам данных, подключенным к рабочей области. Однако если один и тот же пользователь выполняет одну и ту же записную книжку через конвейер, для проверки подлинности используется удостоверение управляемой службы (MSI) рабочей области. Таким образом, чтобы конвейер успешно выполнял MSI рабочей области, он также должен относиться к роли Участник данных BLOB-объектов хранилища для озера данных, к которому он обращается.
Безопасность на уровне строк
Безопасность на уровне строк позволяет администраторам безопасности настраивать и контролировать детализированный доступ к конкретным строкам таблицы в зависимости от профиля пользователя (или процесса), выполняющего запрос. Характеристики профиля или пользователя могут ссылаться на членство в группе или на контекст выполнения. Безопасность на уровне строк позволяет предотвратить несанкционированный доступ, когда пользователи запрашивают данные из одинаковых таблиц, но должны просматривать разные подмножества данных.
Примечание.
Безопасность на уровне строк поддерживается в Azure Synapse и выделенном пуле SQL (ранее называемом хранилищем данных SQL), но не поддерживается для пула Apache Spark и бессерверного пула SQL.
Защита на уровне столбцов
Безопасность на уровне столбцов позволяет администраторам безопасности устанавливать разрешения, ограничивающие доступ к конфиденциальным столбцам в таблицах. Она настраивается на уровне базы данных и может быть реализована без необходимости изменения структуры модели данных или уровня приложения.
Примечание.
Безопасность на уровне столбцов поддерживается в Azure Synapse, бессерверных представлениях пула SQL и выделенном пуле SQL (ранее — хранилище данных SQL), но не поддерживается для внешних таблиц бессерверного пула SQL и пула Apache Spark. В случае обходного решения для бессерверного пула SQL можно применить, создав представление поверх внешней таблицы.
Динамическое маскирование данных
Динамическое маскирование данных позволяет администраторам безопасности ограничить раскрытие конфиденциальных данных, маскируя их при чтении непривилегированными пользователями. Это помогает предотвратить несанкционированный доступ к конфиденциальным данным, позволяя администраторам определять способ отображения данных во время выполнения запроса. В зависимости от удостоверения пользователя, прошедшего проверку подлинности, и назначения группы в пуле SQL запрос возвращает либо маскированные, либо немаскированные данные. Маскирование всегда применяется независимо от того, осуществляется ли доступ к данным напрямую из таблицы или с помощью представления или хранимой процедуры.
Примечание.
Динамическое маскирование данных поддерживается в Azure Synapse и выделенном пуле SQL (ранее называемом хранилищем данных SQL), но не поддерживается для пула Apache Spark и бессерверного пула SQL.
Управление доступом на основе ролей в Synapse
Azure Synapse также включает роли управления доступом на основе ролей (RBAC) Synapse для управления различными аспектами Synapse Studio. Используйте эти встроенные роли для назначения разрешений пользователям, группам или другим субъектам безопасности для управления пользователями, которые могут:
- публиковать артефакты кода, перечислять опубликованные артефакты кода или получать к ним доступ;
- выполнять код в пулах Apache Spark и средах выполнения интеграции;
- получать доступ к связанным службам (данных), защищенным с помощью учетных данных;
- выполнять мониторинг или отмену выполнения заданий, просматривать выходные данные заданий и журналы выполнения.
Следующие шаги
В следующей статье этой серии статей технического документа вы узнаете о проверке подлинности.