Configurar permissões de diretório e nível de arquivo sobre SMB

Antes de começar este artigo, leia Atribuir permissões de nível de compartilhamento a uma identidade para garantir que suas permissões de nível de compartilhamento estejam em vigor com o RBAC (controle de acesso baseado em função) do Azure.

Depois de atribuir permissões de nível de compartilhamento, você pode configurar listas de controle de acesso (ACLs) do Windows, também conhecidas como permissões NTFS, no nível raiz, diretório ou arquivo. Enquanto as permissões de nível de compartilhamento atuam como um gatekeeper de alto nível que determina se um usuário pode acessar o compartilhamento, as ACLs do Windows operam em um nível mais granular para controlar quais operações o usuário pode fazer no nível de diretório ou arquivo.

As permissões de nível de compartilhamento e de arquivo/diretório são impostas quando um usuário tenta acessar um arquivo/diretório, portanto, se houver uma diferença entre qualquer um deles, apenas o mais restritivo será aplicado. Por exemplo, se um usuário tiver acesso de leitura/gravação no nível do arquivo, mas somente no nível do compartilhamento, ele só poderá ler esse arquivo. O mesmo seria verdade se fosse invertido: se um usuário tivesse acesso de leitura/gravação no nível de compartilhamento, mas apenas lido no nível de arquivo, ele ainda só poderia ler o arquivo.

Importante

Para configurar ACLs do Windows, você precisará de uma máquina cliente executando o Windows que tenha conectividade de rede desimpedida com o controlador de domínio. Se você estiver autenticando com Arquivos do Azure usando os Serviços de Domínio Ative Directory (AD DS) ou o Microsoft Entra Kerberos para identidades híbridas, isso significa que precisará de conectividade de rede desimpedida com o AD local. Se você estiver usando os Serviços de Domínio Microsoft Entra, a máquina cliente deverá ter conectividade de rede desimpedida com os controladores de domínio do domínio gerenciado pelos Serviços de Domínio Microsoft Entra, localizados no Azure.

Aplica-se a

Tipo de partilhas de ficheiros SMB NFS
Partilhas de ficheiros Standard (GPv2), LRS/ZRS Yes No
Partilhas de ficheiros Standard (GPv2), GRS/GZRS Yes No
Partilhas de ficheiros Premium (FileStorage), LRS/ZRS Yes No

Permissões do RBAC do Azure

A tabela a seguir contém as permissões do RBAC do Azure relacionadas a essa configuração. Se você estiver usando o Gerenciador de Armazenamento do Azure, também precisará da função Leitor e Acesso a Dados para ler/acessar o compartilhamento de arquivos.

Permissão de nível de compartilhamento (função interna) Permissão NTFS Acesso resultante
Leitor de Partilhas SMB de Dados de Ficheiros de Armazenamento Controle total, modificar, ler, escrever, executar Ler & executar
Lida Lida
Contribuinte de Partilhas SMB de Dados de Ficheiros de Armazenamento Controlo completo Modificar, ler, escrever, executar
Modificar Modificar
Ler & executar Ler & executar
Lida Lida
Escrita Escrita
Contribuinte Elevado de Partilhas SMB de Dados de Ficheiros de Armazenamento Controlo completo Modificar, Ler, Escrever, Editar (Alterar permissões), Executar
Modificar Modificar
Ler & executar Ler & executar
Lida Lida
Escrita Escrita

ACLs do Windows suportadas

Os Arquivos do Azure dão suporte ao conjunto completo de ACLs básicas e avançadas do Windows.

Utilizadores Definição
BUILTIN\Administrators Grupo de segurança interno que representa os administradores do servidor de arquivos. Este grupo está vazio e ninguém pode ser adicionado a ele.
BUILTIN\Users Grupo de segurança interno que representa os usuários do servidor de arquivos. NT AUTHORITY\Authenticated Users Inclui por defeito. Para um servidor de arquivos tradicional, você pode configurar a definição de associação por servidor. Para Arquivos do Azure, não há um servidor de hospedagem, portanto BUILTIN\Users , inclui o mesmo conjunto de usuários que NT AUTHORITY\Authenticated Userso .
NT AUTHORITY\SYSTEM A conta de serviço do sistema operacional do servidor de arquivos. Essa conta de serviço não se aplica no contexto dos Arquivos do Azure. Ele está incluído no diretório raiz para ser consistente com a experiência do Windows Files Server para cenários híbridos.
NT AUTHORITY\Authenticated Users Todos os usuários no AD que podem obter um token Kerberos válido.
CREATOR OWNER Cada objeto, diretório ou arquivo, tem um proprietário para esse objeto. Se houver ACLs atribuídas a CREATOR OWNER esse objeto, o usuário proprietário desse objeto terá as permissões para o objeto definido pela ACL.

As seguintes permissões estão incluídas no diretório raiz de um compartilhamento de arquivos:

  • 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)

Para obter mais informações sobre essas permissões avançadas, consulte a referência de linha de comando para icacls.

Como funciona

Há duas abordagens que você pode adotar para configurar e editar ACLs do Windows:

  • Faça login sempre com nome de usuário e chave de conta de armazenamento: sempre que quiser configurar ACLs, monte o compartilhamento de arquivos usando a chave da conta de armazenamento em uma máquina que tenha conectividade de rede desimpedida com o controlador de domínio.

  • Configuração de chave de conta de armazenamento / nome de usuário único:

Nota

Essa configuração funciona para compartilhamentos de arquivos recém-criados porque qualquer novo arquivo/diretório herdará a permissão raiz configurada. Para compartilhamentos de arquivos migrados junto com ACLs existentes, ou se você migrar qualquer arquivo/diretório local com permissões existentes em um novo compartilhamento de arquivos, essa abordagem pode não funcionar porque os arquivos migrados não herdam a ACL raiz configurada.

  1. Faça login com um nome de usuário e uma chave de conta de armazenamento em uma máquina que tenha conectividade de rede desimpedida com o controlador de domínio e dê a alguns usuários (ou grupos) permissão para editar permissões na raiz do compartilhamento de arquivos.
  2. Atribua a esses usuários a função de Contribuidor Elevado de Compartilhamento SMB de Dados de Arquivo de Armazenamento do Azure RBAC.
  3. No futuro, sempre que desejar atualizar ACLs, você poderá usar um desses usuários autorizados para fazer login em uma máquina que tenha conectividade de rede desimpedida com o controlador de domínio e editar ACLs.

Monte o compartilhamento de arquivos usando a chave da conta de armazenamento

Antes de configurar as ACLs do Windows, você deve primeiro montar o compartilhamento de arquivos usando sua chave de conta de armazenamento. Para fazer isso, faça logon em um dispositivo associado a um domínio, abra um prompt de comando do Windows e execute o seguinte comando. Lembre-se de substituir <YourStorageAccountName>, <FileShareName>e <YourStorageAccountKey> com seus próprios valores. Se Z: a ser utilizado, substitua por uma letra de unidade disponível. Você pode encontrar sua chave de conta de armazenamento no portal do Azure navegando até a conta de armazenamento e selecionando Segurança + chaves de acesso de rede>, ou pode usar o Get-AzStorageAccountKey cmdlet do PowerShell.

É importante que você use o comando do Windows para montar o compartilhamento neste estágio e não o net use PowerShell. Se você usar o PowerShell para montar o compartilhamento, o compartilhamento não ficará visível para o Explorador de Arquivos do Windows ou cmd.exe e você terá dificuldade para configurar ACLs do Windows.

Nota

Talvez você já veja a ACL de Controle Total aplicada a uma função. Isto normalmente já oferece a possibilidade de atribuir permissões. No entanto, isto é restrito uma vez que existem verificações de acesso em dois níveis (ao nível da partilha e ao nível de ficheiros/diretórios). Apenas os utilizadores que têm a função de Contribuidor Elevado de SMB e criam um novo ficheiro ou diretório podem atribuir permissões nesses novos ficheiros ou diretórios sem utilizar a chave da conta de armazenamento. Todas as outras atribuições de permissão de ficheiros/diretórios exigem necessitam primeiro de ligação à partilha utilizando a chave da conta de armazenamento.

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

Configurar ACLs do Windows

Você pode configurar as ACLs do Windows usando icacls ou o Explorador de Arquivos do Windows. Você também pode usar o comando Set-ACL PowerShell.

Importante

Se o seu ambiente tiver várias florestas do AD DS, não use o Windows Explorer para configurar ACLs. Use icacls em vez disso.

Se você tiver diretórios ou arquivos em servidores de arquivos locais com ACLs do Windows configuradas em relação às identidades do AD DS, poderá copiá-los para os Arquivos do Azure persistindo as ACLs com ferramentas tradicionais de cópia de arquivos, como Robocopy ou Azure AzCopy v 10.4+. Se seus diretórios e arquivos forem hierarquizados para Arquivos do Azure por meio da Sincronização de Arquivos do Azure, suas ACLs serão transferidas e persistidas em seu formato nativo.

Lembre-se de sincronizar suas identidades para que as permissões definidas entrem em vigor. Você pode definir ACLs para identidades não sincronizadas, mas essas ACLs não serão aplicadas porque as identidades não sincronizadas não estarão presentes no tíquete Kerberos usado para autenticação/autorização.

Configurar ACLs do Windows com icacls

Para conceder permissões completas a todos os diretórios e ficheiros na partilha de ficheiros, incluindo o diretório de raiz, execute o seguinte comando do Windows a partir de um computador com linha de visão para o controlador de domínio do AD. Lembre-se de substituir os valores dos marcadores de posição no exemplo pelos seus próprios valores.

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

Para obter mais informações sobre como utilizar icacls para definir ACLs do Windows e sobre os diferentes tipos de permissões suportadas, veja a referência da linha de comandos para icacls.

Configurar ACLs do Windows com o Explorador de Arquivos do Windows

Se você estiver conectado a um cliente Windows associado a um domínio, poderá usar o Explorador de Arquivos do Windows para conceder permissão total a todos os diretórios e arquivos no compartilhamento de arquivos, incluindo o diretório raiz. Se o seu cliente não estiver associado a um domínio, use icacls para configurar ACLs do Windows.

  1. Abra o Explorador de Arquivos do Windows, clique com o botão direito do mouse no arquivo/diretório e selecione Propriedades.
  2. Selecione ao separador Segurança.
  3. Selecione Editar.. para alterar as permissões.
  4. Você pode alterar as permissões de usuários existentes ou selecionar Adicionar... para conceder permissões a novos usuários.
  5. Na janela de prompt para adicionar novos usuários, digite o nome de usuário de destino ao qual você deseja conceder permissões na caixa Digite os nomes de objeto a serem selecionados e selecione Verificar nomes para localizar o nome UPN completo do usuário de destino.
  6. Selecione OK.
  7. Na guia Segurança, selecione todas as permissões que você deseja conceder ao novo usuário.
  8. Selecione Aplicar.

Próximos passos

Agora que você habilitou e configurou a autenticação baseada em identidade com o AD DS, pode montar um compartilhamento de arquivos.