Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
O Armazenamento do Microsoft Azure dá suporte ao uso do Microsoft Entra ID para autorizar solicitações de dados de blob. Utilizando o Microsoft Entra ID, você pode usar o controle de acesso baseado em função do Azure (RBAC do Azure) para conceder as permissões a uma entidade de segurança, que pode ser um usuário, um grupo ou entidade de serviço de aplicativo. O Microsoft Entra ID autentica a entidade de segurança e retorna um token OAuth 2.0. Use o token para validar uma solicitação no serviço Blob.
Você pode usar a autorização do Microsoft Entra ID com todas as contas de armazenamento de uso geral e Blob, em todas as regiões públicas e nuvens governamentais. Somente contas de armazenamento criadas usando o modelo de implantação do Azure Resource Manager dão suporte à autorização do Microsoft Entra.
Importante
Para otimizar a segurança, a Microsoft recomenda o uso do Microsoft Entra ID com identidades gerenciadas para autorizar solicitações relativas a dados de blobs, filas de espera e tabelas sempre que possível. A autorização com o Microsoft Entra ID e identidades gerenciadas oferece ima segurança e facilidade de uso de qualidade superior à da autorização por Chave Compartilhada. Para saber mais sobre identidades gerenciadas, confira O que são identidades gerenciadas para recursos do Azure. Para obter um exemplo de como habilitar e usar uma identidade gerenciada para um aplicativo .NET, confira Como autenticar aplicativos hospedados no Azure em recursos do Azure com o .NET.
Para recursos hospedados fora do Azure, como aplicativos locais, você pode usar identidades gerenciadas por meio do Azure Arc. Por exemplo, aplicativos executados em servidores habilitados para Azure Arc podem usar identidades gerenciadas para se conectar aos serviços do Azure. Para saber mais, confira Autenticar-se nos recursos do Azure com servidores habilitados para Azure Arc.
Para os cenários em que as assinaturas de acesso compartilhado (SAS) são utilizadas, a Microsoft recomenda o uso de uma SAS de delegação de usuário. Uma SAS de delegação de usuário é protegida por credenciais do Microsoft Entra em vez da chave da conta. Para saber mais sobre assinaturas de acesso compartilhado, confira Conceder acesso limitado a dados com assinaturas de acesso compartilhado. Para obter um exemplo de como criar e usar uma SAS de delegação de usuário com o .NET, confira Criar uma SAS de delegação de usuário para um blob com o .NET.
Visão geral do Microsoft Entra ID para blobs
Quando uma entidade de segurança (um usuário, grupo ou aplicativo) tenta acessar um recurso de blob, a solicitação deverá ser autorizada, a menos que seja um blob disponível para acesso anônimo. Usando Microsoft Entra ID, o acesso a um recurso é um processo de duas etapas:
Primeiro, a identidade da entidade de segurança é autenticada e um token OAuth 2.0 é retornado.
A etapa de autenticação requer que uma solicitação do aplicativo um token de acesso OAuth 2.0 no runtime. Se um aplicativo estiver em execução em uma entidade do Azure, como uma VM do Azure, um conjunto de dimensionamento de máquinas virtuais ou um aplicativo do Azure Functions, ele poderá usar uma identidade gerenciada para acessar dados de blobs.
Em seguida, o token é passado como parte de uma solicitação para o serviço Blob e o serviço o usa para autorizar o acesso ao recurso especificado.
A etapa de autorização requer que uma ou mais funções RBAC do Azure sejam atribuídas à entidade de segurança que faça a solicitação. Para obter mais informações, confira Atribuir funções do Azure para direitos de acesso.
Usar uma conta do Microsoft Entra com o portal, o PowerShell ou a CLI do Azure
Para saber mais sobre como acessar dados no portal do Azure usando uma conta Microsoft Entra, consulte Data no portal do Azure. Para aprender a executar comandos do Azure PowerShell ou CLI do Azure usando uma conta Microsoft Entra, consulte Acesso a dados do PowerShell ou CLI do Azure.
Usar o Microsoft Entra ID para autorizar o acesso no código do aplicativo
Para autorizar o acesso a Armazenamento do Azure usando Microsoft Entra ID, use uma das seguintes bibliotecas de cliente para adquirir um token OAuth 2.0:
- A biblioteca de clientes do Azure Identity é recomendada para a maioria dos cenários de desenvolvimento.
- O Biblioteca do Microsoft Authenticator (MSAL) pode ser adequado para determinados cenários avançados.
Biblioteca de clientes da Identidade do Azure
A biblioteca de clientes do Azure Identity simplifica o processo de obtenção de um token de acesso OAuth 2.0 para autorização usando Microsoft Entra ID por meio do SDK do Azure. As versões mais recentes das bibliotecas de cliente Armazenamento do Azure para .NET, Java, Python, JavaScript e Go se integram às bibliotecas de identidade Azure para cada um desses idiomas para fornecer uma maneira simples e segura de adquirir um token de acesso para autorização de solicitações de Armazenamento do Azure.
Uma vantagem da biblioteca de cliente de Identidade do Azure é que ela permite que você use o mesmo código para adquirir o token de acesso se seu aplicativo está em execução no ambiente de desenvolvimento ou no Azure. A biblioteca de clientes da Identidade do Azure retorna um token de acesso para uma entidade de segurança. Quando seu código está em execução no Azure, a entidade de segurança pode ser uma identidade gerenciada para recursos do Azure, uma entidade de serviço, um usuário ou um grupo. No ambiente de desenvolvimento, a biblioteca de clientes fornece um token de acesso para um usuário ou para uma entidade de serviço para fins de teste.
O token de acesso que a biblioteca de clientes do Azure Identity retorna é encapsulado em uma credencial de token. Você pode, então, usar a credencial de token para obter um objeto de cliente do serviço a ser usado na execução de operações autorizadas no Armazenamento do Azure. Uma maneira simples de obter o token de acesso e a credencial de token é usar a classe DefaultAzureCredential que a biblioteca de clientes do Azure Identity fornece. DefaultAzureCredential tenta obter a credencial de token tentando sequencialmente vários tipos de credenciais diferentes. DefaultAzureCredential funciona no ambiente de desenvolvimento e no Azure.
A tabela a seguir aponta informações adicionais para autorizar o acesso a dados em vários cenários:
MSAL (Biblioteca de Autenticação da Microsoft)
Embora Microsoft recomenda usar a biblioteca de clientes de identidade Azure quando possível, a biblioteca MSAL pode ser apropriada para usar em determinados cenários avançados. Para obter mais informações, confira Saiba mais sobre a MSAL.
Ao usar a MSAL para adquirir um token OAuth para ter acesso ao Armazenamento do Microsoft Azure, você precisa fornecer uma ID do recurso do Microsoft Entra. A ID do recurso do Microsoft Entra indica o público-alvo para o qual um token emitido pode ser usado para fornecer acesso a um recurso do Azure. No caso de Armazenamento do Azure, a ID do recurso pode ser específica para uma única conta de armazenamento ou pode ser aplicada a qualquer conta de armazenamento.
Quando você fornece uma ID do recurso específica para uma única conta de armazenamento e serviço, a ID do recurso é usada para adquirir um token para autorizar solicitações somente para a conta e o serviço especificados. A tabela a seguir lista o valor a ser usado para a ID do recurso, com base na nuvem com a qual você está trabalhando. Substitua <account-name> com o nome da sua conta de armazenamento.
| Nuvem | ID de Recurso |
|---|---|
| Azure Global | https://<account-name>.blob.core.windows.net |
| Azure Governamental | https://<account-name>.blob.core.usgovcloudapi.net |
| Azure China 21Vianet | https://<account-name>.blob.core.chinacloudapi.cn |
Você também pode fornecer uma ID de recurso que se aplique a qualquer conta de armazenamento, conforme mostrado na tabela a seguir. Essa ID de recurso é a mesma para todas as nuvens públicas e soberanas e é usada para adquirir um token para autorizar solicitações a qualquer conta de armazenamento.
| Nuvem | ID de Recurso |
|---|---|
| Azure Global Azure Governamental Azure China 21Vianet |
https://storage.azure.com/ |
Atribuir funções do Azure para direitos de acesso
O Microsoft Entra autoriza direitos de acesso a recursos protegidos por meio do RBAC do Azure. O Armazenamento do Azure define um conjunto de funções RBAC internas que abrangem conjuntos comuns de permissões usados para acessar dados de blob. Você também pode definir funções personalizadas para acesso a dados de blob. Para saber mais sobre a atribuição de funções do Azure para acesso ao blob, confira Atribuir uma função do Azure para acessar dados de blob.
Uma entidade de segurança do Microsoft Entra pode ser um usuário, um grupo, uma entidade de serviço de aplicativo ou uma identidade gerenciada para recursos do Azure. As funções RBAC que você atribui a um principal de segurança determinam as permissões que o principal tem para o recurso especificado.
Para saber mais sobre como atribuir funções Azure para acesso a blobs, consulte Assignar uma função Azure para acesso aos dados de blob.
Em alguns casos, talvez seja necessário habilitar o acesso refinado aos recursos de blob ou simplificar as permissões quando você tiver um grande número de atribuições de função para um recurso de armazenamento. Use Azure controle de acesso baseado em atributo (Azure ABAC) para configurar condições em atribuições de função. Você pode usar condições com uma função personalizada ou selecionar funções internas. Para obter mais informações sobre como configurar condições para recursos de armazenamento do Azure com o ABAC, confira Autorizar o acesso a blobs usando condições de atribuição de função do Azure (versão prévia). Para obter detalhes sobre as condições com suporte para operações de dados de blob, confira Ações e atributos para condições de atribuição de função do Azure no Armazenamento do Azure (versão prévia).
Observação
Ao criar uma conta Armazenamento do Azure, você não recebe permissões automaticamente para acessar dados por meio de Microsoft Entra ID. Você deve atribuir explicitamente a si mesmo uma função do Azure para acessar o Armazenamento de Blobs. Você pode atribuí-la no nível de assinatura, de grupo de recursos, da conta de armazenamento ou do contêiner.
Escopo do recurso
Antes de atribuir uma função RBAC do Azure a uma entidade de segurança, determine o escopo do acesso que essa entidade de segurança deve ter. Sempre conceda apenas o escopo mais estreito possível. As funções RBAC do Azure definidas em um escopo mais amplo são herdadas pelos recursos abaixo delas.
Você pode fazer o escopo do acesso aos recursos de blob do Azure nos seguintes níveis, começando com o escopo mais estreito:
- Um contêiner individual. Nesse escopo, uma atribuição de função se aplica a todos os blobs no contêiner, bem como às propriedades e aos metadados do contêiner.
- A conta de armazenamento Nesse escopo, uma atribuição de função se aplica a todos os contêineres e seus blobs.
- O grupo de recursos. Nesse escopo, uma atribuição de função se aplica a todos os contêineres em todas as contas de armazenamento do grupo de recursos.
- A assinatura. Nesse escopo, uma atribuição de função se aplica a todos os contêineres em todas as contas de armazenamento de todos os grupos de recursos da assinatura.
- Um grupo de gerenciamento. Nesse escopo, uma atribuição de função se aplica a todos os contêineres em todas as contas de armazenamento de todos os grupos de recursos em todas as assinaturas do grupo de gerenciamento.
Para obter mais informações sobre o escopo das atribuições de função RBAC do Azure, confira Entender o escopo do RBAC do Azure.
Funções internas do Azure para blobs
O RBAC do Azure fornece várias funções internas para autorizar o acesso aos dados de blob usando o Microsoft Entra ID e o OAuth. Alguns exemplos de funções que fornecem permissões para recursos de dados no Armazenamento do Microsoft Azure incluem:
- Proprietário de dados de blob de armazenamento: use para definir a propriedade e gerenciar o controle de acesso POSIX para o Azure Data Lake Storage. Para obter mais informações, confira Controle de acesso no Azure Data Lake Storage.
- Colaborador de dados de blob de armazenamento: use para conceder permissões de leitura, gravação e exclusão de recursos do Armazenamento de Blobs.
- Leitor de Dados de Blob de Armazenamento: use para conceder permissões somente leitura aos recursos de armazenamento de Blobs.
- Delegador de blob de armazenamento: obtenha uma chave de delegação de usuário para criar uma assinatura de acesso compartilhada que é assinada com as credenciais do Microsoft Entra para um contêiner ou blob.
Para saber como atribuir uma função interna do Azure à uma entidade de segurança, consulte Atribuir uma função do Azure para acessar dados de blob. Para saber como listar as funções de RBAC do Azure e suas permissões, consulte Listar definições de função do Azure.
Para obter mais informações sobre como as funções internas são definidas para o Armazenamento do Microsoft Azure, consulte Compreender as definições de função. Para obter informações sobre como criar funções personalizadas do Azure, confira Funções personalizadas do Azure.
Somente as funções explicitamente definidas para acesso a dados permitem que uma entidade de segurança acesse dados de blob. Funções internas, como Proprietário, Colaborador e Colaborador de conta de armazenamento permitem que uma entidade de segurança gerencie uma conta de armazenamento, mas não fornecem acesso aos dados de blob nessa conta por meio do Microsoft Entra ID. No entanto, se uma função incluir Microsoft. Storage/storageAccounts/listKeys/action, em seguida, um usuário ao qual essa função é atribuída pode acessar dados na conta de armazenamento por meio da autorização de Chave Compartilhada usando as chaves de acesso da conta. Para obter mais informações, confira Escolher como autorizar o acesso a dados de blob no portal do Azure.
Para obter informações detalhadas sobre as funções internas do Azure para o Armazenamento do Azure para os serviços de dados e o serviço de gerenciamento, consulte a seção Armazenamento em Funções internas do Azure para o RBAC do Azure. Além disso, para obter informações sobre os diferentes tipos de funções que fornecem permissões no Azure, consulte Funções de administrador da assinatura clássica, funções do Azure e funções do Microsoft Entra.
Importante
As atribuições de função do Azure podem demorar até 30 minutos para ser propagadas.
Permissões de acesso para operações de dados
Para saber detalhes sobre as permissões necessárias para chamar operações de serviço Blob específicas, confira Permissões para chamar operações de dados.
Atrasos de propagação de atribuição de função para acesso a bloco de dados
Quando você atribui funções ou remove atribuições de função, pode levar até 10 minutos para que as alterações entrem em vigor. Se você atribuir funções no escopo do grupo de gerenciamento, o processo poderá levar muito mais tempo.
Você pode atribuir funções integradas com ações de dados no escopo do grupo de gerenciamento. No entanto, em cenários raros, pode haver um atraso significativo (até 12 horas) antes que as permissões de ação de dados sejam eficazes para determinados tipos de recursos. As permissões são finalmente aplicadas. Para funções internas com ações de dados, adicionar ou remover atribuições de função no escopo do grupo de gerenciamento não é recomendado para cenários em que a ativação ou revogação oportuna de permissões, como o Microsoft Entra Privileged Identity Management (PIM), é necessária.
Se você definir as permissões apropriadas para acessar dados por meio do Microsoft Entra ID e não puder acessar os dados, por exemplo, receber a mensagem de erro "AuthorizationPermissionMismatch", certifique-se de permitir tempo suficiente para que as alterações de permissões feitas no Microsoft Entra ID sejam replicadas. Além disso, certifique-se de que você não tenha nenhuma atribuição de negação que bloqueie o acesso. Para obter mais informações, consulte Compreender as atribuições de negação do Azure.
Acessar dados com uma conta do Microsoft Entra
Você pode autorizar o acesso aos dados de blob por meio do portal Azure, do PowerShell ou do CLI do Azure usando sua conta Microsoft Entra ou usando as chaves de acesso da conta (autorização de Chave Compartilhada).
Atenção
A autorização com Chave Compartilhada não é recomendada, pois pode ser menos segura. Para uma segurança ideal, desabilite a autorização por meio da Chave Compartilhada para sua conta de armazenamento, conforme descrito em Impedir autorização de Chave Compartilhada para uma conta do Armazenamento do Microsoft Azure.
O uso de chaves de acesso e cadeias de conexão deve ser limitado à prova inicial de aplicativos conceituais ou protótipos de desenvolvimento que não acessam dados confidenciais ou de produção. Caso contrário, as classes de autenticação baseadas em token disponíveis no SDK do Azure devem sempre ser preferidas ao autenticar recursos do Azure.
A Microsoft recomenda que os clientes usem o Microsoft Entra ID ou uma assinatura de acesso compartilhado (SAS) para autorizar o acesso aos dados no Armazenamento do Microsoft Azure. Para obter mais informações, consulte Autorizar operações para acesso a dados.
Acesso aos dados no portal do Azure
O portal do Azure pode usar sua conta do Microsoft Entra ou as chaves de acesso da conta para acessar dados de blob em uma conta de armazenamento do Azure. O esquema de autorização que o portal do Azure usa depende das funções do Azure atribuídas a você.
Quando você tenta acessar os dados do blob, o portal do Azure verifica primeiro se você recebeu uma função do Azure com Microsoft.Storage/storageAccounts/listkeys/action. Se você recebeu uma função com essa ação, o portal do Azure usará a chave de conta a fim de acessar os dados de blob por meio da autorização de Chave Compartilhada. Se você não receber a atribuição de uma função para essa ação, o portal do Azure tentará acessar os dados usando a conta do Microsoft Entra.
Para acessar dados de blob do portal Azure usando sua conta Microsoft Entra, você precisa de permissões para acessar dados de blob e também precisa de permissões para navegar pelos recursos da conta de armazenamento no portal Azure. As funções internas fornecidas pelo Armazenamento do Azure concedem acesso aos recursos de blob, mas não concedem permissões aos recursos da conta de armazenamento. Por esse motivo, o acesso ao portal também requer a atribuição de uma função do Azure Resource Manager, como a função Leitor no escopo do nível da conta de armazenamento ou superior. A função Leitor concede as permissões mais restritas, mas outra função do Azure Resource Manager que conceda acesso aos recursos de gerenciamento da conta de armazenamento também é aceitável. Para saber mais sobre como atribuir permissões a usuários para acesso a dados no portal do Azure com uma conta do Microsoft Entra, confira Atribuir uma função do Azure para acesso a dados de blob.
O portal do Azure indica qual esquema de autorização está em uso quando você navega para um contêiner. Para saber mais sobre o acesso a dados no portal, confira Escolher como autorizar o acesso a dados de blob no portal do Azure.
Acesso a dados do PowerShell ou da CLI do Azure
A CLI do Azure e o PowerShell dão suporte à entrada com as credenciais do Microsoft Entra. Depois de entrar, sua sessão é executada sob essas credenciais. Para saber mais, confira um dos seguintes artigos:
- Escolha como autorizar o acesso aos dados do blob com a CLI do Azure
- Executar comandos do PowerShell com as credenciais do Microsoft Entra para acessar dados de fila
Suporte a recursos
O suporte para esse recurso pode ser afetado ao habilitar o Data Lake Storage Gen2, o protocolo NFS (Sistema de Arquivos de Rede) 3.0 ou o protocolo SFTP (Protocolo de Transferência de Arquivo SSH). Se você tiver habilitado um desses recursos, veja o Suporte a recursos do Armazenamento de Blobs nas contas do Armazenamento do Microsoft Azure para avaliar o suporte para esse recurso.
A autorização de operação de dados de blob com o Microsoft Entra ID tem suporte apenas para as versões da API REST de 2017-11-09 e posteriores. Para obter mais informações, consulte Controle de versão para os Serviços de Armazenamento do Azure.