Настройка разрешений на уровне каталога и файлового уровня для общих папок Azure

Область применения: ✔️ общие папки SMB

Прежде чем настроить разрешения на уровне каталога и файлов, необходимо назначить разрешения на уровне общего ресурса для удостоверения с помощью контроля доступа на основе ролей Azure (RBAC). После распространения разрешений на уровне общего доступа выполните действия, описанные в этой статье, чтобы настроить списки управления доступом Windows (ACL), также известные как разрешения NTFS, для более детального управления доступом.

Необходимые условия

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

инструмент AD DS (гибрид) Entra Domain Services (гибрид) Entra Kerberos (гибридная версия) Entra Kerberos (только для облака, предварительная версия)
проводник Windows ✔️ ✔️ ✔️
icacls ✔️ ✔️ ✔️
портал Azure ✔️ ✔️
PowerShell (модуль RestSetAcls) ✔️ ✔️

Чтобы настроить списки управления доступом с помощью Проводника Windows или icacls, вам потребуется клиентский компьютер, работающий под управлением Windows. Кроме того, необходимо подключить общую папку с доступом на уровне администратора. Если источник удостоверений для вашей учетной записи хранения — доменные службы Active Directory (AD DS) или Microsoft Entra Kerberos, тогда этот компьютер должен иметь прямое сетевое подключение к локальному Active Directory. Если в качестве источника удостоверений используется Доменные службы Microsoft Entra, компьютер должен иметь беспрепятственное сетевое подключение к контроллерам домена для домена, которым управляет Доменные службы Microsoft Entra; эти контроллеры домена располагаются в Azure.

Чтобы использовать портал Azure или модуль PowerShell RestSetAcls, нет зависимости от контроллеров домена. Однако удостоверения должны быть гибридными или облачными (версия для предварительного просмотра). Для RestSetAcls требуется клиентский компьютер с Windows.

Как взаимодействуют Azure RBAC и Windows ACLs

Разрешения на уровне общего доступа (роли RBAC) выполняют роль высокоуровневого контролера, который активирует, может ли пользователь получить доступ к ресурсу. Windows списки управления доступом (разрешения NTFS) работают на более детальном уровне, чтобы управлять операциями, которые пользователь может выполнять на уровне каталога или файла. Списки управления доступом Windows можно задать на корневом уровне, каталоге или файле.

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

Например, если у пользователя есть доступ на чтение и запись на уровне файла, но только доступ на чтение на уровне общего ресурса, он может считывать только этот файл. То же правило применяется, если разрешения будут отменены: если у пользователя есть доступ на чтение и запись на уровне общего ресурса, но только доступ на чтение на уровне файла, они по-прежнему могут читать только файл.

В следующей таблице показано, как совместно работают разрешения на уровне общего доступа и Windows ACL, чтобы определить доступ к файлу или каталогу в Файлы Azure.

Нет роли RBAC RBAC — средство чтения общих ресурсов SMB RBAC — участник общих ресурсов SMB RBAC — участник SMB с повышенными привилегиями
NTFS — нет Доступ запрещен Доступ запрещен Доступ запрещен Доступ запрещен
NTFS — чтение данных Доступ запрещен Читайте Читайте Читайте
NTFS — чтение и выполнение Доступ запрещен Читайте Читайте Читайте
NTFS — папка списка Доступ запрещен Читайте Читайте Читайте
NTFS — запись данных Доступ запрещен Читайте Чтение и запись Чтение и запись
NTFS — изменение Доступ запрещен Читайте Чтение, запись и удаление Чтение, запись, удаление, применение разрешений к собственным папкам и файлам
NTFS: полный Доступ запрещен Читайте Чтение, запись и удаление Чтение, запись, удаление, применение разрешений к папкам и файлам любого пользователя

Чтобы настроить списки управления доступом (ACL) с помощью аутентификации на основе идентификационных данных вместо ключа учетной записи хранения (рекомендуется), вам потребуется дополнительная роль RBAC: Storage File Data SMB Admin. Эта роль предоставляет доступ на уровне общего ресурса и разрешение takeOwnership, которое позволяет пользователю взять на себя владение любым файлом или каталогом с помощью команды Windows takeown, даже если запись в ACL отсутствует. После того как пользователь берет на себя владение, он может изменять ACL. Дополнительные сведения см. в разделе Использование модели разрешений Windows для администратора SMB.

Поддерживаемые списки управления доступом Windows

Файлы Azure поддерживает полный набор базовых и расширенных списков управления доступом Windows.

Пользователи Определение
BUILTIN\Administrators Встроенная группа безопасности, представляющая администраторов файлового сервера. Для Файлы Azure эта группа пуста, и никто не может быть добавлен в нее.
BUILTIN\Users Встроенная группа безопасности, представляющая пользователей файлового сервера. Он включает NT AUTHORITY\Authenticated Users по умолчанию. Для традиционного файлового сервера можно настроить определение членства для каждого сервера. Для Файлы Azure нет сервера размещения, поэтому BUILTIN\Users включает тот же набор пользователей, что и NT AUTHORITY\Authenticated Users.
NT AUTHORITY\SYSTEM Учетная запись службы операционной системы файлового сервера. Эта служебная учетная запись не используется в контексте Файлы Azure. Он включен в корневой каталог, чтобы соответствовать опыту работы на файловом сервере Windows в гибридных сценариях.
NT AUTHORITY\Authenticated Users Все пользователи Active Directory, которые могут получить действительный Kerberos-билет.
CREATOR OWNER Владелец объекта. Каждый объект, каталог или файл, имеет владельца. Если списки контроля доступа назначены CREATOR OWNER объекту, пользователь, являющийся владельцем объекта, имеет разрешения, определенные списками контроля доступа для объекта.

Корневой каталог общей папки включает следующие разрешения:

  • BUILTIN\Administrators:(OI)(CI)(F)
  • BUILTIN\Users:(RX)
  • BUILTIN\Users:(OI)(CI)(IO)(GR,GE)
  • NT AUTHORITY\Authenticated Users:(OI)(CI)(M)
  • NT AUTHORITY\SYSTEM:(OI)(CI)(F)
  • NT AUTHORITY\SYSTEM:(F)
  • CREATOR OWNER:(OI)(CI)(IO)(F)

Дополнительные сведения об этих разрешениях см. в справочнике по командной строке для icacls.

Монтирование общей папки с доступом на уровне администратора

Прежде чем настраивать списки управления доступом Windows с помощью проводника или icacls, подключите общую папку с доступом на уровне администратора. Если вы настроите списки управления доступом с помощью портала Azure или модуля PowerShell RestSetAcls, пропустите этот раздел и перейдите к настройке списков управления доступом Windows с помощью портала Azure или настройке списков управления доступом Windows для облачных удостоверений с помощью PowerShell.

У вас есть два варианта подключения общей папки с доступом на уровне администратора:

  • Использовать модель разрешений Windows для администратора SMB (рекомендуется). Назначьте встроенную роль RBAC Storage File Data SMB Admin пользователям, которые будут настраивать списки управления доступом. Затем подключите общую папку, используя аутентификацию на основе удостоверений, и настройте списки контроля доступа. Если существующий ACL в файле или каталоге запрещает доступ администратора, администратор может использовать команду Windows takeown для владения файлом или каталогом, а затем изменить ACL. Этот подход более безопасный, так как для подключения общей папки не требуется ключ учетной записи хранения.

  • Используйте ключ учетной записи хранения (менее безопасный): используйте его для подключения общей папки, а затем настройте списки управления доступом (ACLs). Подключение с ключом учетной записи хранения обеспечивает немедленный полный доступ, не требуя владения файлами или каталогами. Ключ учетной записи хранения — это конфиденциальные учетные данные. По соображениям безопасности используйте этот параметр только в том случае, если не удается использовать проверку подлинности на основе удостоверений.

Если у пользователя есть полный контроль ACL и роль Storage File Data SMB Share Повышенный участник (или настраиваемая роль с необходимыми разрешениями), они могут настроить списки управления доступом без использования модели разрешений Windows для администратора SMB или ключа учетной записи хранения.

Использование модели разрешений Windows для администратора SMB

Используйте модель разрешений Windows для администратора SMB вместо ключа учетной записи хранения. Эта функция позволяет назначать встроенную роль RBAC Storage File Data SMB Admin администраторам, чтобы они могли монтировать сетевой ресурс с использованием проверки подлинности на основе удостоверений и настраивать списки управления доступом.

Если существующий список управления доступом (ACL) в файле или каталоге предоставляет администратору достаточные разрешения (например, модификация или полный контроль), администратор может напрямую настроить списки управления доступом. Если существующий ACL запрещает доступ, администратор может использовать команду Windows takeown для владения целевым файлом или каталогом, а затем изменить ACL, чтобы предоставить соответствующие разрешения доступа.

Примечание.

Назначение роли администратора RBAC для SMB данных файлового хранилища не эквивалентно проверке подлинности с помощью ключа учетной записи хранилища. При подключении общей папки с ключом учетной записи в хранилище вы получаете немедленный полный доступ ко всем файлам и каталогам без необходимости получать права владельца. С ролью администратора SMB для файлов данных хранилища существующие ACL по-прежнему применяются при обычном доступе к файлам. Роль предоставляет специальные права на владение любым файлом или каталогом с помощью takeown команды, которая требуется только в том случае, если существующий ACL не предоставляет администратору достаточные разрешения для изменения списков управления доступом.

Роль администратора данных файлов SMB в RBAC включает следующие три действия с данными.

  • Microsoft.Storage/storageAccounts/fileServices/readFileBackupSemantics/action
  • Microsoft.Storage/storageAccounts/fileServices/writeFileBackupSemantics/action
  • Microsoft.Storage/storageAccounts/fileServices/takeOwnership/action

Чтобы использовать модель разрешений Windows для администратора SMB, выполните следующие действия.

  1. Назначьте пользователям, которые настраивают ACL, роль RBAC Storage File Data SMB Admin. Инструкции по назначению роли см. в разделе Назначение ролей Azure с помощью портала Azure.

  2. Пусть пользователи подключат общую папку с использованием своей доменной учетной записи. Если для вашей учетной записи хранения настроена аутентификация на основе identity, вы можете подключить общую папку и настроить или изменить списки контроля доступа Windows без использования ключа учетной записи хранения.

    1. Войдите в устройство, присоединенное к домену, или в устройство с безпрепятственным сетевым подключением к контроллерам домена. Войдите в систему как пользователя Microsoft Entra, если источник идентификации Доменные службы Microsoft Entra.

    2. Откройте командную строку Windows и подключите общую папку, выполнив следующую команду. Замените <YourStorageAccountName> и <FileShareName> собственными значениями. Если диск Z уже используется, замените его на свободную букву диска.

      Используйте команду net use для подключения общей папки на этом этапе, вместо PowerShell. Если вы используете PowerShell для подключения общей папки, общий ресурс не отображается в Проводнике Windows или cmd.exe, и вы столкнетесь с трудностями при настройке списков контроля доступа Windows.

      net use Z: \\<YourStorageAccountName>.file.core.windows.net\<FileShareName>
      

Предупреждение

По возможности используйте модель разрешений Windows для администратора SMB для подключения общей папки вместо использования ключа учетной записи хранения.

Войдите в устройство, присоединенное к домену, или в устройство с безпрепятственным сетевым подключением к контроллерам домена. Войдите в систему как пользователя Microsoft Entra, если источник идентификации Доменные службы Microsoft Entra.

Откройте командную строку Windows и подключите общий доступ к файлу, выполнив следующую команду. Замените <YourStorageAccountName>, <FileShareName> и <YourStorageAccountKey> собственными значениями. Если диск Z уже используется, замените его на свободную букву диска. Ключ учетной записи хранения можно найти на портале Azure, перейдя в учетную запись хранения и выбрав Security + networking>Access keys или использовать командлет PowerShell Get-AzStorageAccountKey.

Используйте команду net use для подключения общей папки на этом этапе, вместо PowerShell. Если вы используете PowerShell для подключения общей папки, общий ресурс не отображается в Проводнике Windows или cmd.exe, и вы столкнетесь с трудностями при настройке списков контроля доступа Windows.

net use Z: \\<YourStorageAccountName>.file.core.windows.net\<FileShareName> /user:localhost\<YourStorageAccountName> <YourStorageAccountKey>

Настройка списков управления доступом Windows

Процесс настройки списков управления доступом Windows зависит от того, выполняется ли проверка подлинности гибридных или облачных удостоверений:

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

  • Для гибридных удостоверений вы можете настроить списки управления доступом (ACL) Windows с помощью icacls или использовать Проводник Windows. Если источник удостоверений для вашей учетной записи хранения — Microsoft Entra Kerberos, вы также можете использовать портал Azure или модуль PowerShell RestSetAcls.

    Если у вас есть каталоги или файлы на локальных файловых серверах с Windows списки управления доступом, настроенными для удостоверений AD DS, их можно скопировать в Файлы Azure при сохранении списков управления доступом с помощью традиционных средств копирования файлов, таких как Robocopy или последняя версия Azure AzCopy. Если вы перемещаете каталоги и файлы в Файлы Azure через Синхронизация файлов Azure, ваши ACL сохраняются в своём родном формате.

Внимание

Если вы используете Microsoft Entra Kerberos для проверки подлинности гибридных удостоверений, гибридные удостоверения должны быть синхронизированы с Microsoft Entra ID для принудительного применения списков управления доступом.

ACL (списки управления доступом) на уровне файлов и директории можно задать для учетных записей, которые не синхронизируются с Microsoft Entra ID. Однако эти списки управления доступом не применяются, так как токен Kerberos, используемый для проверки подлинности и авторизации, не содержит несинхронизированных удостоверений. Если в качестве источника удостоверений используется локальная служба AD DS, в списки управления доступом можно включить не синхронизированные удостоверения. AD DS помещает эти идентификаторы безопасности (SID) в билет Kerberos, а списки управления доступом применяются.

Настройка списков управления доступом Windows с помощью icacls

Внимание

Использование icacls не работает для облачных удостоверений.

Чтобы предоставить полные разрешения всем каталогам и файлам в общей папке, включая корневой каталог, выполните следующую команду Windows с компьютера, имеющего бесперебойное сетевое подключение к контроллеру домена Active Directory. Не забудьте заменить значения заполнителей в примере собственными значениями. Если источником удостоверений является Доменные службы Microsoft Entra, то <user-upn> — это <user-email>.

icacls <mapped-drive-letter>: /grant <user-upn>:(f)

Дополнительные сведения об использовании icacls для задания списков управления доступом Windows и типах поддерживаемых разрешений см. в командной строке для icacls.

Настройка списков управления доступом Windows с помощью проводника Windows

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

Внимание

Использование Проводника Windows не поддерживается для облачных удостоверений. Если клиент не присоединен к домену или если в вашей среде несколько лесов Active Directory, не используйте проводник для настройки списков управления доступом. Вместо этого используйте icacls . Это ограничение существует, так как конфигурация ACL в Windows Проводнике файлов требует, чтобы клиент был присоединен к домену Active Directory, к которому подключена учетная запись хранения.

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

  1. Откройте Проводник Windows, щелкните правой кнопкой мыши файл или каталог и выберите Свойства.

  2. Выберите вкладку Безопасность.

  3. Выберите "Изменить", чтобы изменить разрешения.

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

  5. В окне запроса на добавление новых пользователей введите целевое имя пользователя, которому требуется предоставить разрешения в поле "Ввод имен объектов" для выбора . Чтобы найти полное основное имя пользователя (UPN) целевого пользователя, выберите Проверить имена.

    Возможно, вам потребуется указать доменное имя и идентификатор GUID домена для развертывания локальная служба Active Directory. Эти сведения можно получить от администратора домена или от клиента, присоединенного к локальная служба Active Directory.

  6. Нажмите ОК.

  7. На вкладке "Безопасность" выберите все разрешения, которые нужно предоставить новому пользователю.

  8. Нажмите кнопку "Применить".

Настройка списков управления доступом Windows с помощью портала Azure

Если вы настраиваете Microsoft Entra Kerberos в качестве источника идентификации для учетной записи хранения, можно настроить списки управления доступом Windows для каждого пользователя или каждой группы Entra с помощью Портала Azure. Этот метод работает как для гибридных, так и облачных удостоверений, только если Microsoft Entra Kerberos является источником удостоверений.

  1. Войдите на портал Azure.

  2. Перейдите в общую папку, в которой требуется настроить списки управления доступом Windows.

  3. В меню службы нажмите кнопку "Обзор". Если вы хотите задать ACL в корневой папке, выберите "Управление доступом " в верхнем меню.

    Снимок экрана из портала Azure, который показывает, как управлять доступом к корневой папке файлового ресурса.

  4. Чтобы задать ACL для файла или каталога, щелкните правой кнопкой мыши файл или каталог, а затем выберите "Управление доступом".

    Screenshot портала Azure, показывающий, как задать списки управления доступом Windows для файла или каталога.

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

    Скриншот портала Azure, показывающего список пользователей и групп Entra.

  6. Измените разрешения. Запрет всегда имеет приоритет над Разрешением, если оба установлены. Если ни то, ни другое не установлено, разрешения по умолчанию наследуются.

    Скриншот портала Azure, на котором показано, как добавлять или изменять разрешения для пользователя или группы Entra.

  7. Нажмите кнопку "Сохранить", чтобы задать ACL.

Настройка списков управления доступом Windows для облачных удостоверений с помощью PowerShell

Если необходимо назначить списки управления доступом для пользователей только в облаке, используйте модуль PowerShell RestSetAcls PowerShell для автоматизации процесса с помощью REST API Файлы Azure. Для этого модуля не требуется сетевое подключение к Active Directory.

Например, если вы хотите задать корневой ACL, предоставляющий пользователю testUser@contoso.com, работающему только в облаке, доступ для чтения:

$AccountName = "<storage-account-name>" # replace with the storage account name 
$AccountKey = "<storage-account-key>" # replace with the storage account key 
$context = New-AzStorageContext -StorageAccountName $AccountName -StorageAccountKey $AccountKey 
Add-AzFileAce -Context $context -FileShareName test -FilePath "/" -Type Allow -Principal "testUser@contoso.com" -AccessRights Read,Synchronize -InheritanceFlags ObjectInherit,ContainerInherit 

Следующий шаг

После настройки разрешений уровня каталога и файлов можно подключить общую папку SMB на Windows или Linux.