Поделиться через


Модель управления доступом к данным OneLake (предварительная версия)

Безопасность OneLake использует назначения ролей для предоставления разрешений своим участникам. Вы можете назначать роли отдельным лицам или группам безопасности, группам Microsoft 365 и спискам рассылки. Каждый член в группе пользователей получает назначенную роль. Если кто-то находится в двух или более группах безопасности или Microsoft 365, они получают наивысший уровень разрешений, предоставляемых ролями. Если вы создаете вложенные группы пользователей и назначаете роль группе, все пользователи внутри неё получают разрешения.

Безопасность OneLake позволяет пользователям определять роли доступа к данным только для элементов Lakehouse.

Безопасность OneLake ограничивает доступ к данным для пользователей с просмотром рабочей области Viewer или доступом на чтение к Lakehouse. Это не относится к администраторам рабочей области, членам или участникам. В результате безопасность OneLake поддерживает только уровень разрешений чтения.

Создание ролей

Вы можете определять роли безопасности OneLake и управлять ими с помощью параметров доступа к данным Lakehouse.

См. подробности в разделе Как начать работу с ролями доступа к данным.

Роли по умолчанию в Lakehouse

Когда пользователь создает новый lakehouse, OneLake создает роли по умолчанию. Эти роли предоставляют пользователям разрешения на рабочую область Fabric для доступа к данным в хранилище типа lakehouse. Вы можете удалить или изменить роли по умолчанию, как и любую другую роль.

Определения ролей по умолчанию:

Предмет из ткани Имя роли Разрешение Включенные папки Назначенные члены
Объединенное хранилище данных DefaultReader Читать Все папки в Tables/ и Files/ Все пользователи с разрешением "Чтение всех данных"
Лейкхаус DefaultReadWriter Читать Все папки Все пользователи с разрешением на запись

Примечание.

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

Наследование в системе безопасности OneLake

Для любой папки разрешения безопасности OneLake всегда наследуются всей иерархии файлов и вложенных папок папки.

Например, рассмотрим следующую иерархию озерного дома в системе OneLake:

Tables/
──── (empty folder)
Files/
────folder1
│   │   file11.txt
│   │
│   └───subfolder11
│       │   file1111.txt
|       │
│       └───subfolder111
|            │   file1111.txt
│   
└───folder2
    │   file21.txt

Вы создаете две роли для этого лейкхауса. #D0 предоставляет разрешение на чтение в папку1, а #D1 предоставляет разрешение на чтение в папку2.

Для данной иерархии разрешения безопасности OneLake для #D0 и #D1 наследуются следующим образом:

  • Role1: чтение папки1

    │   │   file11.txt
    │   │
    │   └───subfolder11
    │       │   file1111.txt
    |       │
    │       └───subfolder111
    |            │   file1111.txt
    
  • Role2: чтение папки2

        │   file21.txt
    

Обход и перечисление в службе безопасности OneLake

Система безопасности OneLake автоматически производит обход родительских элементов, что упрощает нахождение данных. Предоставление пользователю разрешений на чтение папки subfolder11 предоставляет пользователю возможность перечислять содержимое и перемещаться по родительской папке folder1. Эта функциональность аналогична разрешениям папки Windows, где предоставление прав доступа к вложенной папке обеспечивает возможность просмотра и перемещение по родительским каталогам. Список и доступ, предоставленные родительскому элементу, не распространяются на другие элементы за пределами непосредственных родителей, обеспечивая безопасность других папок.

Например, как пример, рассмотрим следующую иерархию lakehouse в OneLake.

Tables/
──── (empty folder)
Files/
────folder1
│   │   file11.txt
│   │
│   └───subfolder11
│       │   file111.txt
|       │
│       └───subfolder111
|            │   file1111.txt
│   
└───folder2
    │   file21.txt

Для данной иерархии разрешения безопасности OneLake для Role1 предоставляют следующий доступ. Доступ к file11.txt не отображается, так как он не является родительским элементом вложенной папки11. Аналогичным образом для Role2 file111.txt не отображается.

  • Role1: чтение вложенных папок111

    Files/
    ────folder1
    │   │
    │   └───subfolder11
    │       │   file111.txt
    |       │
    │       └───subfolder111
    |            │   file1111.txt
    
  • Role2: чтение вложенной папки111

    Files/
    ────folder1
    │   │
    │   └───subfolder11
    |       │
    │       └───subfolder111
    |            │   file1111.txt
    

Поведение списков для сочетаний клавиш несколько отличается. Ярлыки для внешних источников данных ведут себя так же, как и папки, однако ярлыки к другим расположениям OneLake имеют специализированное поведение. Целевые разрешения ярлыка определяют доступ к ярлыку OneLake. При перечислении ярлыков вызов не выполняется для проверки целевого доступа. В результате при перечислении каталога возвращаются все внутренние сочетания клавиш независимо от доступа пользователя к целевому объекту. Когда пользователь пытается открыть ярлык, выполняется проверка доступа, и пользователь видит только те данные, на которые у него есть необходимые разрешения. Дополнительные сведения о сочетаниях клавиш см. в разделе безопасности сочетаний клавиш.

Рассмотрим следующую иерархию папок, содержащую ярлыки.

Files/
────folder1
│   
└───shortcut2
|
└───shortcut3
  • Role1: чтение папки1

    Files/
    ────folder1
    │   
    └───shortcut2
    |
    └───shortcut3
    
  • Role2: нет определенных разрешений

    Files/
    │   
    └───shortcut2
    |
    └───shortcut3
    

Как оцениваются разрешения безопасности OneLake в сочетании с разрешениями Fabric

Разрешения рабочей области и элемента позволяют предоставлять «грубый доступ» к данным в OneLake для данного элемента. Разрешения безопасности OneLake позволяют ограничить доступ к данным в OneLake только определенным папкам.

Схема, показывающая порядок вычислений разрешений с рабочей областью, элементом и RBAC.

Когда пользователь пытается получить доступ к папке в Lakehouse, служба безопасности OneLake сначала проверяет разрешения для рабочей области, затем для элемента Lakehouse, а после этого для папки.

Настройки безопасности OneLake и разрешения для рабочей области

Разрешения рабочей области — это первая граница безопасности для данных в OneLake. Каждая рабочая область представляет отдельный домен или область проекта, в которой команды могут совместно работать с данными. Вы управляете безопасностью в рабочей области с помощью ролей рабочей области Fabric. Дополнительные сведения об управлении доступом на основе ролей Fabric (RBAC): роли рабочей области

Роли рабочей области в Fabric предоставляют следующие разрешения в OneLake.

Разрешение Администратор Член Участник Зритель
Просмотр файлов в OneLake Всегда* Да Всегда* Да Всегда* Да Нет по умолчанию. Используйте безопасность OneLake для предоставления доступа.
Запись файлов в OneLake Всегда* Да Всегда* Да Всегда* Да Нет

*Поскольку роли администратора рабочей области, участника и вкладчика автоматически предоставляют права записи в OneLake, они переопределяют любые разрешения на чтение в системе безопасности OneLake.

Роль в рабочем пространстве Применяет ли OneLake разрешения на чтение RBAC?
Администратор, участник, член Нет, OneLake Security игнорирует разрешения на чтение OneLake RBC
Зритель Да, если это определено, применяются разрешения безопасности на чтение OneLake.

Безопасность OneLake и разрешения Lakehouse

В рабочей области элементы Fabric могут иметь разрешения, настроенные отдельно от ролей рабочей области. Разрешения можно настроить с помощью общего доступа к элементу или управления разрешениями элемента. Следующие разрешения определяют возможность пользователя выполнять действия с данными в OneLake.

Разрешения Lakehouse

Разрешения Lakehouse Можно ли просматривать файлы в OneLake? Может ли записывать файлы в OneLake? Может ли считывать данные через конечную точку аналитики SQL?
Читать Нет по умолчанию. Используйте безопасность OneLake для предоставления доступа. Нет Нет
ПрочитатьВсе Да по умолчанию. Используйте безопасность OneLake для ограничения доступа. Нет Нет
Писать Да Да Да
Выполнить, Поделиться повторно, Посмотреть результат, Посмотреть логи N/A - не может быть предоставлено самостоятельно N/A - не может быть предоставлено самостоятельно N/A - не может быть предоставлено самостоятельно

Разрешения на конечные точки аналитики SQL для Lakehouse

Конечная точка аналитики SQL — это хранилище, которое автоматически создается из lakehouse в Microsoft Fabric. Клиент может перейти с представления Lakehouse (который поддерживает проектирование данных и Apache Spark) в представление "SQL" того же озера. Узнайте больше о конечной точке аналитики SQL в документации по хранилищу данных.

Разрешение на конечную точку аналитики SQL Пользователи могут просматривать файлы через конечную точку OneLake? Пользователи могут сохранять файлы через конечную точку OneLake? Пользователи могут считывать данные через конечную точку аналитики SQL?
Читать Нет по умолчанию. Используйте безопасность OneLake для предоставления доступа. Нет По умолчанию это невозможно, но можно настроить, используя детализированные разрешения SQL.
ЧтениеДанных Нет по умолчанию. Используйте безопасность OneLake для предоставления доступа. Нет Да
Писать Да Да Да

Разрешения семантической модели Lakehouse по умолчанию

В Microsoft Fabric, когда пользователь создает лакаус (lakehouse), система также подготавливает связанную модель семантики по умолчанию. По умолчанию семантическая модель содержит метрики на вершине данных Lakehouse. Семантическая модель позволяет Power BI загружать данные для создания отчетов.

#B0 Разрешение семантической модели по умолчанию #C1 Можно ли просматривать файлы в OneLake? Может ли записывать файлы в OneLake? Можно ли увидеть схему в семантической модели? может ли [он/она/это] считывать данные в семантической модели?
Читать Нет по умолчанию. Используйте безопасность OneLake для предоставления доступа. Нет Нет Да по умолчанию. Можно ограничить с помощью защиты на уровне объектов Power BI и защиты на уровне строк Power BI
Строить Да по умолчанию. Используйте безопасность OneLake для ограничения доступа. Да Да Да
Писать Да Да Да Да
Поделиться повторно N/A - не может быть предоставлено самостоятельно N/A - не может быть предоставлено самостоятельно N/A - не может быть предоставлено самостоятельно N/A - не может быть предоставлено самостоятельно

Общий доступ к Lakehouse

Когда пользователь предоставляет доступ к lakehouse, он предоставляет другим пользователям или группе пользователей доступ к этому озеро-дому без предоставления доступа к рабочей области и остальным её элементам.

Если кто-то предоставляет доступ к дому на озере, он также может предоставить следующие дополнительные разрешения:

  • Разрешение ReadData на SQL-аналитическом конечном пункте
  • Разрешение ReadAll на озерном доме
  • Разрешение на сборку для семантической модели по умолчанию

Для получения дополнительной информации см. Как работает совместное использование Lakehouse

Конечная точка аналитики SQL — это хранилище. Дополнительные сведения о его модели разрешений см. в статье Общий доступ к данным хранилища и управление разрешениями

#B0 Опция «Общий доступ» #C1 Можно ли просматривать файлы в OneLake? Может ли записывать файлы в OneLake? Может ли считывать данные через конечную точку аналитики SQL? Можно просматривать и создавать семантические модели?
Дополнительные разрешения не выбраны Нет по умолчанию. Используйте OneLake RBAC для предоставления доступа. Нет нет Нет
Чтение всех данных конечной точки SQL Нет по умолчанию. Используйте OneLake RBAC для предоставления доступа. Нет Да Нет
Чтение всех данных Apache Spark и подписка на события Да по умолчанию. Используйте OneLake RBAC для ограничения доступа. Нет Нет Нет
Создание отчетов на основе набора данных по умолчанию Да по умолчанию. Используйте OneLake RBAC для ограничения доступа. Нет Нет Да

Ярлыки

Безопасность OneLake во внутренних сочетаниях клавиш

Для любой папки в lakehouse разрешения всегда наследуются ко всем внутренним ярлыкам, где эта папка определена как целевая.

Когда пользователь обращается к данным через ярлык в другое местоположение OneLake, удостоверение вызывающего пользователя используется для авторизации доступа к данным по целевому пути этого ярлыка. В результате у этого пользователя должны быть права доступа OneLake в целевом расположении, чтобы иметь возможность читать данные.

Внимание

При доступе к ярлыкам через семантические модели Power BI или T-SQL идентификация вызывающего пользователя не передается в цель ярлыка. Вместо этого передается удостоверение личности владельца вызывающего элемента, делегируя доступ вызывающему пользователю.

Определение разрешений безопасности OneLake для внутренней ссылки не допускается и должно быть выполнено в целевой папке, расположенной в целевом элементе. Целевой элемент должен быть типом элемента, поддерживающим роли безопасности OneLake. На данный момент только Lakehouse поддерживает роли безопасности OneLake.

В следующей таблице указывается, поддерживает ли соответствующий сценарий ярлыка разрешения безопасности OneLake.

Внутренний сценарий сочетания клавиш Поддерживаются ли разрешения безопасности OneLake? Комментарии
Ярлык в озёрном доме, указывающий на папку2, расположенную в том же озёрном доме. Поддерживается. Чтобы ограничить доступ к данным через ярлык, настройте безопасность OneLake для folder2.
Ярлык в озере данных, указывающий на папку 2, расположенную в другом озере данных Поддерживается. Чтобы ограничить доступ к данным через ссылку, определите безопасность OneLake для папки2 в другом lakehouse.
Ярлык в озерном доме данных, указывающий на таблицу, расположенную в хранилище данных Не поддерживается. OneLake не поддерживает определение разрешений безопасности в хранилищах данных. Вместо этого доступ определяется на основе разрешения ReadAll.
Ярлык в "lakehouse", указывающий на таблицу, расположенную в базе данных KQL Не поддерживается. OneLake не поддерживает определение разрешений безопасности в базах данных KQL. Вместо этого доступ определяется на основе разрешения ReadAll.

Безопасность OneLake во внешних сочетаниях клавиш (ADLS, S3, Dataverse)

OneLake поддерживает определение разрешений для ярлыков, таких как ярлыки ADLS, S3 и Dataverse. В этом случае разрешения применяются в дополнение к делегированной модели авторизации, включенной для этого типа ярлыка.

Предположим, пользователь1 создает ярлык S3 в озерном доме, указывающий на папку в контейнере AWS S3. Затем пользователь2 пытается получить доступ к данным в этом ярлыке.

Авторизует ли соединение S3 доступ для делегированного пользователя 1? Авторизует ли служба безопасности OneLake доступ для запрашивающего пользователя 2? Результат. Может ли пользователь2 получить доступ к данным в сочетании клавиш S3?
Да Да Да
Нет Нет Нет
Нет Да Нет
Да Нет Нет

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

Дополнительные сведения о ярлыках S3, ADLS и Dataverse см. в ярлыках OneLake.

Безопасность строк и столбцов

Роли безопасности OneLake позволяют обеспечить безопасность на уровне строк (RLS) и безопасность на уровне столбцов (CLS) в таблицах в лейкхаусе. RLS и CLS соответствуют определенным правилам композиции для отдельных и нескольких ролей. Как правило, RLS и CLS — это пересечение внутри роли и образуют объединение между несколькими ролями.

Примечание.

Безопасность OneLake в настоящее время доступна в ограниченной предварительной версии. Чтобы запросить присоединение к предварительной версии и получить доступ к этим функциям, заполните форму по https://aka.ms/onelakesecuritypreview.

Одна роль

При определении роли с помощью RLS и CLS пользователь сначала выбирает таблицы для предоставления доступа. Из этого набора ограничения, такие как RLS и CLS, можно настроить для одной или нескольких таблиц. RLS и CLS составляются в виде фильтров по полной схеме и данным, предоставленным таблице.

Рассмотрим пример.

UserA является членом Role1. Role1 имеет следующее определение:

  • Доступ на чтение к Table1
  • CLS: Из таблицы 1 удален столбец 1.
  • RLS: Table1 где Column2 = «US».

Когда UserA запускает запрос в Table1, они видят все столбцы, кроме Column1, и только строки, в которых Column2 имеет значение "US".

Несколько ролей

Для RLS и CLS в нескольких ролях безопасность объединяется посредством объединения каждой категории. Каждая роль создает представление таблицы с примененными правилами RLS и CLS, а пользователь видит объединение этих представлений.

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

RLS объединяется с операторами SQL через ИЛИ. Как и CLS, любые правила RLS, объединяемые с полным доступом к таблице, приводят к видимости всех строк.

Внимание

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

Ограничения безопасности OneLake

  • При назначении роли безопасности OneLake гостевому пользователю B2B необходимо настроить параметры внешней совместной работы для B2B в Microsoft Entra External ID. Для параметра гостевого пользователя необходимо задать значение гостевые пользователи имеют тот же доступ, что и участники (самый широкий доступ).

  • Безопасность OneLake не поддерживает сочетания клавиш между регионами. Любые попытки доступа к данным в разных регионах емкости приводят к ошибкам 404.

  • Если вы добавляете список рассылки в роль в службе безопасности OneLake, конечная точка SQL не может разрешить членов списка для обеспечения доступа. Результатом является то, что пользователи не считаются членами роли при доступе к SQL-узлу.

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

  • В следующей таблице приведены ограничения ролей доступа к данным OneLake.

    Сценарий Лимит
    Максимальное количество ролей безопасности OneLake для элемента системы Fabric 250 ролей на озеро
    Максимальное число членов для каждой роли безопасности OneLake 500 пользователей или групп пользователей на роль
    Максимальное количество разрешений за одну роль безопасности в OneLake 500 разрешений на роль

Задержки в безопасности OneLake

  • Чтобы применить изменения определений ролей, потребуется около 5 минут.
  • Изменение группы пользователей в роли безопасности OneLake занимает около часа, чтобы OneLake применил разрешения роли к обновленной группе.
    • Некоторые модули Fabric имеют собственный уровень кэширования, поэтому обновление доступа всех систем может занять дополнительный час.