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

Antes de começar este artigo, verifique se você já leu 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 no RBAC (controle de acesso baseado em função) do Azure.

Depois de atribuir permissões no nível de compartilhamento, você pode configurar ACLs (listas de controle de acesso) do Windows, também conhecidas como permissões de NTFS, no nível raiz, de diretório ou de arquivo. Embora as permissões no nível do compartilhamento atuem como gatekeeper de alto nível que determinam 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 executar no nível de diretório ou arquivo.

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

Importante

Para configurar ACLs do Windows, você precisará de um computador cliente executando o Windows que tenha conectividade de rede desimpedida com o controlador de domínio. Se você estiver autenticando com os Arquivos do Azure usando o Active Directory Domain Services (AD DS) ou o Kerberos do Microsoft Entra para identidades híbridas, isso significa que você precisará de uma conectividade de rede desimpedida com o AD local. Se você estiver usando o Microsoft Entra Domain Services, o computador cliente deverá ter uma conectividade de rede desimpedida para os controladores de domínio do domínio gerenciado pelo Microsoft Entra Domain Services localizados no Azure.

Aplica-se a

Tipo de compartilhamento de arquivos SMB NFS
Compartilhamentos de arquivos padrão (GPv2), LRS/ZRS Sim Não
Compartilhamentos de arquivos padrão (GPv2), GRS/GZRS Sim Não
Compartilhamento de arquivos premium (FileStorage), LRS/ZRS Sim Não

Permissões RBAC do Azure

A tabela a seguir contém as permissões do RBAC do Azure relacionadas a esta 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 arquivo.

Permissão de nível de compartilhamento (função interna) Permissão NTFS Acesso resultante
Leitor de Compartilhamento SMB de Dados do Arquivo de Armazenamento Controle completo, Modificação, Leitura, Gravação, Execução Ler e Executar
Ler Ler
Colaborador de Compartilhamento SMB de Dados do Arquivo de Armazenamento Controle total Modificação, Leitura, Gravação, Execução
Modificar Modificar
Ler e Executar Ler e Executar
Ler Ler
Gravar Gravar
Colaborador com Privilégios Elevados do Compartilhamento SMB de Dados do Arquivo de Armazenamento Controle total Modificar, ler, gravar, editar (alterar permissões), executar
Modificar Modificar
Ler e Executar Ler e Executar
Ler Ler
Gravar Gravar

ACLs do Windows com suporte

O Arquivos do Azure fornece suporte a todo o conjunto de ACLs básicas e avançadas do Windows.

Usuários Definição
BUILTIN\Administrators Grupo de segurança interno que representa os administradores do servidor de arquivos. Esse 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. Ele inclui NT AUTHORITY\Authenticated Users por padrão. Para um servidor de arquivos tradicional, é possível configurar a definição de associação por servidor. Para o Arquivos do Azure, não há um servidor de hospedagem, portanto, BUILTIN\Users inclui o mesmo conjunto de usuários que NT AUTHORITY\Authenticated Users.
NT AUTHORITY\SYSTEM A conta de serviço do sistema operacional do servidor de arquivos. Essa conta de serviço não se aplica ao contexto do 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, seja um diretório ou arquivo, tem um proprietário. Se houver ACLs atribuídas a CREATOR OWNER nesse objeto, o usuário que é o proprietário desse objeto terá as permissões para o objeto definido pela ACL.

As permissões a seguir sã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, confira a referência de linha de comando para icacls.

Como ele funciona

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

  • Faça logon com o nome de usuário e a chave da conta de armazenamento sempre: sempre que desejar configurar ACLs, monte o compartilhamento de arquivos usando a chave da conta de armazenamento em um computador 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:

Observação

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 para 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 logon com um nome de usuário e uma chave de conta de armazenamento em um computador que tenha conectividade de rede desimpedida com o controlador de domínio e conceda 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 RBAC do Azure de colaborador elevado do compartilhamento SMB de dados de arquivo de armazenamento.
  3. No futuro, sempre que desejar atualizar as ACLs, será possível usar um desses usuários autorizados para fazer logon de um computador que tenha conectividade de rede desimpedida com o controlador de domínio e editar ACLs.

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

Antes de configurar as ACLs do Windows, você deve montar o compartilhamento de arquivos usando a chave da conta de armazenamento. Para isso, faça logon em um dispositivo conectado ao domínio, abra um prompt de comando do Windows e execute o comando a seguir. Lembre-se de substituir <YourStorageAccountName>, <FileShareName> e <YourStorageAccountKey> pelos seus próprios valores. Se Z: já estiver em uso, substitua-o por uma letra de unidade disponível. A chave de conta de armazenamento pode ser encontrada no portal do Azure navegando até a conta de armazenamento e selecionando Segurança + rede>Chaves de acesso ou usando o cmdlet Get-AzStorageAccountKey do PowerShell.

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

Observação

Você pode ver a ACL Controle Completo já aplicada a uma função. Normalmente, isso já oferece a capacidade de atribuir permissões. No entanto, como há verificações de acesso em dois níveis (nível do compartilhamento e nível do arquivo/diretório), isso é restrito. Somente os usuários que têm a função Colaborador com Privilégio Elevado de Compartilhamento SMB de Dados do Arquivo de Armazenamento e criam um arquivo ou um diretório podem atribuir permissões nesses novos arquivos ou diretórios específicos sem usar a chave de conta de armazenamento. Todas as outras atribuições de permissão de arquivo/diretório exigem a conexão com o compartilhamento usando a chave de conta de armazenamento primeiro.

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

Configurar ACLs do Windows

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

Importante

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

Se você tiver diretórios ou arquivos em servidores de arquivos locais com ACLs do Windows configurados em relação às identidades do AD DS, poderá copiá-los para Arquivos do Azure mantendo as ACLs com ferramentas tradicionais de cópia de arquivo, como o Robocopy ou o Azure AzCopy v 10.4+. Se seus diretórios e arquivos estão em camadas para Arquivos do Azure por meio da Sincronização de Arquivos do Azure, suas ACLs são transportadas e persistidas no formato nativo.

Lembre-se de sincronizar suas identidades para que as permissões definidas tenham efeito. 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 do Kerberos utilizado para autenticação/autorização.

Configurar ACLs do Windows com icacls

Para conceder permissões completas a todos os diretórios e arquivos no compartilhamento de arquivos, incluindo o diretório raiz, execute o seguinte comando do Windows de um computador que tenha linha de visão para o controlador de domínio do AD. Lembre-se de substituir os valores de espaço reservado no exemplo pelos seus próprios valores.

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

Para obter mais informações sobre como usar icacls para definir ACLs do Windows e os diferentes tipos de permissões com suporte, consulte a referência da linha de comando para icacls.

Configurar ACLs do Windows com o Gerenciador de Arquivos do Windows

Se você estiver conectado a um cliente Windows ingressado no domínio, é possível 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 cliente não estiver ingressado no domínio, use icacls para configurar as 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 a guia Segurança.
  3. Selecione Editar… para alterar as permissões.
  4. É possível 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, insira o nome do usuário de destino ao qual você deseja conceder permissão na caixa Inserir os nomes de objetos 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ê quer conceder ao novo usuário.
  8. Escolha Aplicar.

Próxima etapa

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