Tutorial: Adicionar uma condição de atribuição de função para restringir o acesso a blobs usando o portal do Azure
Na maioria dos casos, uma atribuição de função concede as permissões necessárias aos recursos do Azure. No entanto, em alguns casos, o ideal é fornecer um controle de acesso mais granular adicionando uma condição de atribuição de função.
Neste tutorial, você aprenderá como:
- Adicionar uma condição a uma atribuição de função
- Restringir o acesso a blobs com base em uma marca de índice de blob
Importante
O controle de acesso baseado em atributos do Azure (Azure ABAC) está em disponibilidade geral (GA) para controlar o acesso ao Armazenamento de Blobs do Azure, ao Azure Data Lake Storage Gen2 e às Filas do Azure usando atributos request
, resource
, environment
eprincipal
nas camadas de desempenho da conta de armazenamento padrão e premium. Atualmente, o atributo de recurso de metadados de contêiner e o atributo de solicitação de inclusão de blob de lista estão em VERSÃO PRÉVIA. Para obter informações completas sobre o status do recurso do ABAC para o Armazenamento do Azure, consulte Status dos recursos de condição no Armazenamento do Azure.
Veja os Termos de Uso Complementares para Versões Prévias do Microsoft Azure para obter termos legais que se aplicam aos recursos do Azure que estão em versão beta, versão prévia ou que, de outra forma, ainda não foram lançados em disponibilidade geral.
Pré-requisitos
Para obter informações sobre os pré-requisitos para adicionar ou editar condições de atribuição de função, confira Pré-requisitos de condições.
Condição
Neste tutorial, você restringirá o acesso a blobs com uma marca específica. Por exemplo, você adicionará uma condição a uma atribuição de função para que Carlos só possa ler arquivos com a marca Project=Cascade
.
Se Chandra tentar ler um blob sem a marca Project=Cascade
, o acesso não será permitido.
Veja a aparência da condição no código:
(
(
!(ActionMatches{'Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read'}
AND NOT
SubOperationMatches{'Blob.List'})
)
OR
(
@Resource[Microsoft.Storage/storageAccounts/blobServices/containers/blobs/tags:Project<$key_case_sensitive$>] StringEqualsIgnoreCase 'Cascade'
)
)
Etapa 1: Criar um usuário
Entre no portal do Azure como um Proprietário de uma assinatura.
Selecione ID do Microsoft Entra.
Crie um usuário ou encontre um usuário existente. Este tutorial usa Carlos como o exemplo.
Etapa 2: Configurar o armazenamento
Crie uma conta de armazenamento compatível com o recurso de marcas de índice de blob. Para obter mais informações, confira Gerenciar e localizar dados de blob do Azure com marcas de índice de blob.
Crie um novo contêiner dentro da conta de armazenamento e defina o nível de acesso anônimo como Privado (sem acesso anônimo).
No contêiner, selecione Carregar para abrir o painel Carregar blob.
Encontre um arquivo de texto para upload.
Selecione Avançado para expandir o painel.
Na seção Marcas de índice de blob, adicione a marca de índice de blob a seguir ao arquivo de texto.
Se a seção Marcas de índice de blob não for exibida e você tiver acabado de registrar sua assinatura, aguarde alguns minutos para que as alterações sejam propagadas. Para obter mais informações, confira Usar marcas de índice de blob para gerenciar e localizar dados no Armazenamento de Blobs do Azure.
Observação
Os blobs também dão suporte à capacidade de armazenar metadados de chave-valor arbitrários definidos pelo usuário. Embora os metadados sejam semelhantes às marcas de índice de blob, você precisa usar marcas de índice de blob com as condições.
Chave Valor Project Cascade
Selecione o botão Carregar para carregar o arquivo.
Carregue um segundo arquivo de texto.
Adicione a marca de índice de blob a seguir ao segundo arquivo de texto.
Chave Valor Project Baker
Etapa 3: Atribuir uma função de dados do blob de armazenamento
Abra o grupo de recursos.
Selecione IAM (Controle de acesso) .
Selecione a guia Atribuições de função para ver todas as atribuições de função nesse escopo.
Selecione Adicionar>Adicionar atribuição de função. A página Adicionar atribuição de função será aberta:
- Na guia Funções, selecione a função Leitor de Dados do Blob de Armazenamento.
- Na guia Membros, selecione o usuário que você criou anteriormente.
(Opcional) Na caixa Descrição, insira Acesso de leitura aos blobs com a marca Project=Cascade.
Selecione Avançar.
Etapa 4: Adicionar uma condição
- Na guia Condições (opcional), selecione Adicionar condição. A página Adicionar condição de atribuição de função será exibida:
Na seção Adicionar ação, selecione Adicionar ação.
O painel Selecionar uma ação será exibido. Esse painel é uma lista filtrada de ações de dados com base na atribuição de função que será o destino da condição. Marque a caixa ao lado de Ler um blob e selecione Selecionar:
Na seção Compilar expressão, selecione Adicionar expressão.
A seção Expressão será expandida.
Especifique as seguintes configurações de expressão:
Configuração Valor Origem do atributo Recurso Atributo Marcas de índice de blob [Valores na chave] Chave Project Operador StringEqualsIgnoreCase Valor Cascade
Role para cima até Tipo de editor e selecione Código.
A condição será exibida como um código. Você pode fazer alterações na condição neste editor de código. Para voltar ao editor visual, selecione Visual.
Selecione Salvar para adicionar a condição e retornar à página Adicionar atribuição de função.
Selecione Avançar.
Na guia Examinar + atribuir, selecione Examinar + atribuir para atribuir a função com uma condição.
Após alguns instantes, a entidade de segurança é atribuída a função no escopo selecionado.
Etapa 5: Atribuir função leitor
Repita as etapas anteriores para atribuir a função Reader ao usuário criado anteriormente no escopo do grupo de recursos.
Observação
Normalmente, você não precisa atribuir a função Leitor. No entanto, isso é feito para que você possa testar a condição usando o portal do Azure.
Etapa 6: Testar a condição
Em uma nova janela, entre no portal do Azure.
Entre como o usuário criado anteriormente.
Abra a conta de armazenamento e o contêiner que você criou.
Verifique se o método de autenticação está definido como conta de usuário do Microsoft Entra e não de chave do Access.
Selecione o arquivo de texto Baker.
VOCÊ NÃO deve ser capaz de exibir ou baixar o blob e uma mensagem com falha de autorização deve ser exibida.
Selecione o arquivo de texto Cascade.
Você deve ser capaz de exibir e baixar o blob.
Etapa 7: Limpar os recursos
Remova a atribuição de função que você adicionou.
Exclua a conta de armazenamento de teste criada.
Exclua o usuário que você criou.