Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
O Armazenamento do Azure suporta a utilização do Microsoft Entra ID para autorizar pedidos a dados Blob. Ao usar o Microsoft Entra ID, pode utilizar o controlo de acesso baseado em papéis do Azure (Azure RBAC) para conceder permissões a um principal de segurança, que pode ser um utilizador, grupo ou principal de serviço da aplicação. O Microsoft Entra ID autentica a entidade de segurança e retorna um token OAuth 2.0. Use o token para autorizar um pedido contra o serviço Blob.
Pode usar a autorização Microsoft Entra ID com todas as contas de armazenamento de uso geral e Blob em todas as regiões públicas e nuvens nacionais. Apenas contas de armazenamento criadas usando o modelo de implementação do Azure Resource Manager suportam a autorização Microsoft Entra.
Importante
Para uma segurança ideal, a Microsoft recomenda o uso do Microsoft Entra ID com identidades gerenciadas para autorizar solicitações contra dados de blob, fila e tabela, sempre que possível. A autorização com ID do Microsoft Entra e identidades gerenciadas oferece segurança superior e facilidade de uso em relação à autorização de chave compartilhada. Para saber mais sobre identidades gerenciadas, consulte 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, consulte Autenticando aplicativos hospedados pelo Azure em recursos do Azure com .NET.
Para recursos hospedados fora do Azure, como aplicativos locais, você pode usar identidades gerenciadas por meio do Azure Arc. Por exemplo, os aplicativos executados em servidores habilitados para Azure Arc podem usar identidades gerenciadas para se conectar aos serviços do Azure. Para saber mais, consulte Autenticar em recursos do Azure com servidores habilitados para Azure Arc.
Para cenários em que as assinaturas de acesso compartilhado (SAS) são usadas, a Microsoft recomenda o uso de uma SAS de delegação de usuário. Uma SAS de delegação de usuário é protegida com credenciais do Microsoft Entra em vez da chave da conta. Para saber mais sobre assinaturas de acesso compartilhado, consulte 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 .NET, consulte Criar uma SAS de delegação de usuário para um blob com .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 deve ser autorizada, a menos que seja um blob disponível para acesso anônimo. Ao utilizar o Microsoft Entra ID, o acesso a um recurso é um processo em 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 um aplicativo solicite um token de acesso OAuth 2.0 em tempo de execução. Se um aplicativo estiver sendo executado de dentro de uma entidade do Azure, como uma VM do Azure, um conjunto de dimensionamento de máquina virtual ou um aplicativo do Funções do Azure, ele poderá usar uma identidade gerenciada para acessar dados de blob.
De seguida, o token é passado como parte de um pedido ao serviço Blob e este utiliza-o para autorizar o acesso ao recurso especificado.
A etapa de autorização requer que uma ou mais funções do RBAC do Azure sejam atribuídas à entidade de segurança que faz a solicitação. Para obter mais informações, consulte Atribuir funções do Azure para direitos de acesso.
Usar uma conta Microsoft Entra com o portal, PowerShell ou CLI do Azure
Para saber como aceder a dados no portal Azure usando uma conta Microsoft Entra, consulte Acesso a dados a partir do portal Azure. Para aprender a chamar comandos Azure PowerShell ou CLI do Azure usando uma conta Microsoft Entra, veja Acesso a Dados a partir do PowerShell ou CLI do Azure.
Use o Microsoft Entra ID para autorizar o acesso no código do aplicativo
Para autorizar o acesso ao Armazenamento do Azure usando o Microsoft Entra ID, utilize uma das seguintes bibliotecas clientes para adquirir um token OAuth 2.0:
- A biblioteca de cliente do Azure Identity é recomendada para a maioria dos cenários de desenvolvimento.
- O Biblioteca de Autenticação da Microsoft (MSAL) pode ser adequado para certos cenários avançados.
Biblioteca de cliente do Azure Identity
A biblioteca cliente Azure Identity simplifica o processo de obtenção de um token de acesso OAuth 2.0 para autorização, utilizando Microsoft Entra ID através do SDK do Azure. As versões mais recentes das bibliotecas clientes do Armazenamento do Azure para .NET, Java, Python, JavaScript e Go integram-se com as bibliotecas Azure Identity para cada uma dessas linguagens, proporcionando uma forma simples e segura de adquirir um token de acesso para autorização dos pedidos do Armazenamento do Azure.
Uma vantagem da biblioteca de cliente do Azure Identity é que ela permite que você use o mesmo código para adquirir o token de acesso, independentemente de seu aplicativo estar sendo executado no ambiente de desenvolvimento ou no Azure. A biblioteca cliente do Azure Identity retorna um token de acesso para um principal de segurança. Quando o seu código está a correr no Azure, o princípio de segurança pode ser uma identidade gerida para recursos do Azure, um principal de serviço, ou um utilizador ou grupo. No ambiente de desenvolvimento, a biblioteca de cliente fornece um token de acesso para um usuário ou uma entidade de serviço para fins de teste.
O token de acesso que a biblioteca cliente Azure Identity devolve está encapsulado numa credencial de token. Em seguida, você pode usar a credencial de token para obter um objeto de cliente de serviço para usar na execução de operações autorizadas no Armazenamento do Azure. Uma forma simples de obter o token de acesso e a credencial do token é usar a classe DefaultAzureCredential que a biblioteca cliente 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 para informações adicionais para autorizar o acesso a dados em vários cenários:
Biblioteca de Autenticação da Microsoft (MSAL)
Embora a Microsoft recomende a utilização da biblioteca cliente Azure Identity sempre que possível, a biblioteca MSAL pode ser apropriada para usar em certos cenários avançados. Para obter mais informações, consulte Saiba mais sobre o MSAL.
Ao usar o MSAL para adquirir um token OAuth para acessar o Armazenamento do Azure, você precisa fornecer uma ID de recurso do Microsoft Entra. A ID do recurso Microsoft Entra indica a audiência para a qual um token emitido pode ser usado para fornecer acesso a um recurso do Azure. No caso do Armazenamento do Azure, o ID do recurso pode ser específico para uma única conta de armazenamento, ou pode aplicar-se a qualquer conta de armazenamento.
Quando você fornece uma ID de recurso específica para uma única conta de armazenamento e serviço, a ID de 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> pelo nome de sua conta de armazenamento.
| Nuvem | ID do Recurso |
|---|---|
| Azure Global | https://<account-name>.blob.core.windows.net |
| Azure Government | 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 aplica a qualquer conta de armazenamento, conforme mostrado na tabela a seguir. Esse ID de recurso é o mesmo para todas as nuvens públicas e soberanas e é usado para adquirir um token para autorizar solicitações para qualquer conta de armazenamento.
| Nuvem | ID do Recurso |
|---|---|
| Azure Global Azure Government 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 através do Azure RBAC. O Armazenamento do Azure define um conjunto de funções RBAC incorporadas que englobam conjuntos comuns de permissões usadas para aceder aos dados de blobs. Você também pode definir funções personalizadas para acesso a dados BLOB. Para saber mais sobre como atribuir funções do Azure para acesso a blobs, consulte Atribuir uma função do Azure para acesso a 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. Os papéis RBAC que atribui a um principal de segurança determinam as permissões que o principal tem para o recurso especificado.
Para saber como atribuir papéis de Azure para acesso a blobs, veja Atribuir um papel de Azure para acesso a dados de blobs.
Em alguns casos, pode ser necessário permitir o acesso detalhado a recursos blob ou simplificar permissões quando tem um grande número de atribuições de funções para um recurso de armazenamento. Use o controlo de acesso baseado em atributos do Azure (Azure ABAC) para configurar condições nas atribuições de papéis. 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 ABAC, consulte Autorizar acesso a blobs usando condições de atribuição de função do Azure (visualização). Para mais informações sobre as condições suportadas para operações de dados blob, consulte Ações e atributos para condições de atribuição de função do Azure no Armazenamento do Azure (visualização).
Nota
Quando cria uma conta no Armazenamento do Azure, não lhe são atribuídas automaticamente permissões para aceder a dados através do Microsoft Entra ID. Você deve atribuir explicitamente a si mesmo uma função do Azure para acessar o Armazenamento de Blobs. Você pode atribuí-lo no nível de sua assinatura, grupo de recursos, conta de armazenamento ou contêiner.
Âmbito do recurso
Antes de atribuir uma função RBAC do Azure a uma entidade de segurança, determine o escopo de acesso que a entidade de segurança deve ter. Conceda sempre apenas o âmbito mais estreito possível. As funções do RBAC do Azure definidas num escopo mais amplo são herdadas pelos recursos subjacentes.
Você pode definir o escopo de acesso aos recursos de blob do Azure nos seguintes níveis, começando com o escopo mais restrito:
- Um contentor individual. Neste escopo, uma atribuição de função se aplica a todos os blobs no contêiner e às propriedades e metadados do contêiner.
- A conta de armazenamento. Neste escopo, uma atribuição de função se aplica a todos os contêineres e seus blobs.
- o grupo de recursos. Neste escopo, uma atribuição de função se aplica a todos os contêineres em todas as contas de armazenamento no grupo de recursos.
- A assinatura. Neste escopo, uma atribuição de função se aplica a todos os contêineres em todas as contas de armazenamento em todos os grupos de recursos da assinatura.
- Um grupo de gestão. Neste escopo, uma atribuição de função se aplica a todos os contêineres em todas as contas de armazenamento em todos os grupos de recursos em todas as assinaturas no grupo de gerenciamento.
Para obter mais informações sobre o escopo das atribuições de função do RBAC do Azure, consulte Entender o escopo do RBAC do Azure.
Funções incorporadas do Azure para blobs
O Azure RBAC fornece vários papéis incorporados para autorizar o acesso a dados de blobs utilizando o Microsoft Entra ID e o OAuth. Alguns exemplos de funções que fornecem permissões para recursos de dados no Armazenamento do Azure incluem:
- Proprietário de Dados de Blob de Armazenamento: Utilize para definir a propriedade e gerir o controlo de acesso POSIX para o Azure Data Lake Storage. Para obter mais informações, consulte Controle de acesso no Armazenamento do Azure Data Lake.
- Contribuidor de Dados de Blob de Armazenamento: Usado para conceder permissões de leitura, escrita e eliminação a recursos de armazenamento Blob.
- Leitor de Dados de Blobs de Armazenamento: Utilize para conceder permissões só de leitura aos recursos de armazenamento Blob.
- Storage Blob Delegator: Obtenha uma chave de delegação de utilizador para criar uma assinatura de acesso partilhada assinada por credenciais de Microsoft Entra para um contentor ou blob.
Para saber como atribuir uma função interna do Azure a uma entidade de segurança, consulte Atribuir uma função do Azure para acesso a dados de blob. Para saber como listar funções do 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 Azure, consulte Compreender as definições de função. Para obter informações sobre como criar funções personalizadas do Azure, consulte Funções personalizadas do Azure.
Somente funções explicitamente definidas para acesso a dados permitem que uma entidade de segurança aceda aos dados de blobs. Funções predefinidas, como Proprietário, Colaborador e Colaborador da Conta de Armazenamento, permitem a uma entidade de segurança gerir uma conta de armazenamento, mas não fornecem acesso aos dados de blob dentro dessa conta por meio do Microsoft Entra ID. No entanto, se uma função incluir Microsoft. Storage/storageAccounts/listKeys/action, então um utilizador a quem esse papel está atribuído pode aceder a dados na conta de armazenamento através de autorização de Chave Partilhada usando as chaves de acesso à conta. Para obter mais informações, consulte 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, tanto para os serviços de dados quanto para o serviço de gerenciamento, consulte a seção Armazenamento em Funções internas do Azure para Azure RBAC. Além disso, para obter informações sobre os diferentes tipos de funções que fornecem permissões no Azure, consulte Funções do Azure, Funções do Microsoft Entra e funções de administrador de assinatura clássicas.
Importante
As atribuições de funções no Azure podem demorar até 30 minutos a propagar-se.
Permissões de acesso para operações de dados
Para obter detalhes sobre as permissões necessárias para chamar operações específicas do serviço de Blob, consulte Permissões para operações de dados.
Atrasos na propagação da atribuição de funções para acesso aos dados blob
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 atribuir funções no âmbito do grupo de gestão, pode demorar consideravelmente mais.
Pode atribuir funções incorporadas com ações de dados no âmbito do grupo de gestão. No entanto, em cenários raros, pode haver um atraso significativo (até 12 horas) antes de as permissões de ação de dados serem eficazes para certos tipos de recursos. As permissões acabam por ser aplicadas. Para funções incorporadas com ações de dados, não é recomendado adicionar ou remover atribuições de funções no âmbito do grupo de gestão em cenários onde é necessária ativação ou revogação atempada de permissões, como Microsoft Entra Privileged Identity Management (PIM).
Se definir as permissões de permitir aceder a dados via Microsoft Entra ID e não conseguir aceder aos dados, por exemplo, estiver a receber um erro "AuthorizationPermissionMismatch", certifique-se de esperar tempo suficiente para que as alterações de permissões feitas no Microsoft Entra ID se repliquem. Além disso, certifica-te de que não tens atribuições de recusa que bloqueiem o teu acesso. Para obter mais informações, consulte Compreender atribuições de negação do Azure.
Aceder a dados com uma conta Microsoft Entra
Pode autorizar o acesso a dados de blob através do portal Azure, PowerShell ou CLI do Azure, seja usando a sua conta Microsoft Entra ou utilizando as chaves de acesso da conta (autorização por Chave Partilhada).
Atenção
A autorização com chave compartilhada não é recomendada, pois pode ser menos segura. Para uma segurança ideal, desative a autorização através da Chave Partilhada para a sua conta de armazenamento, conforme descrito em Impedir autorização de Chave Partilhada para uma conta de Armazenamento do Azure.
O uso de chaves de acesso e cadeias de conexão deve ser limitado a aplicativos de prova de conceito iniciais ou protótipos de desenvolvimento que não acessam dados confidenciais ou de produção. Caso contrário, as classes de autenticação baseada em token disponíveis no SDK do Azure devem sempre ser preferidas ao autenticar nos 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 Azure. Para obter mais informações, consulte Autorizar operações para acesso a dados.
Acesso a dados a partir do portal do Azure
O portal do Azure pode usar a sua conta Microsoft Entra ou as chaves de acesso da conta para aceder a dados blob numa conta do Azure. O esquema de autorização que o portal do Azure usa depende das funções do Azure atribuídas a você.
Quando tenta aceder a dados de blob, o portal do Azure verifica primeiro se lhe foi atribuída uma função Azure com Microsoft.Storage/storageAccounts/listkeys/action. Se lhe foi atribuída uma função com esta ação, o portal do Azure utiliza a chave da conta para aceder a dados de blob através da autorização de Chave Partilhada. Se não lhe for atribuída uma função com esta ação, o portal do Azure tenta aceder aos dados usando a sua conta Microsoft Entra.
Para aceder a dados de blob no portal do Azure usando a sua conta Microsoft Entra, precisa de permissões para aceder aos dados de blob e de permissões para navegar pelos recursos da conta de armazenamento no portal do Azure. As funções integradas disponibilizadas pelo Armazenamento do Azure concedem acesso aos recursos de blob, mas não concedem permissões para os recursos da conta de armazenamento. Por este motivo, o acesso ao portal também requer a atribuição de uma função do Azure Resource Manager, como a função de Leitor, ao 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 concede acesso aos recursos de gestão da conta de armazenamento também é aceitável. Para saber mais sobre como atribuir permissões aos utilizadores para acederem aos dados no portal do Azure com uma conta do Microsoft Entra, veja Atribuir uma função do Azure para aceder aos dados de blobs.
O portal do Azure indica qual o esquema de autorização que está a ser utilizado quando navega para um contentor. Para obter mais informações sobre o acesso aos dados no portal, veja Escolher como autorizar o acesso aos dados de blobs 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 credenciais do Microsoft Entra. Depois de iniciar sessão, a sua sessão é executada com essas credenciais. Para saber mais, consulte um dos seguintes artigos:
- Escolher como autorizar o acesso a dados de blobs com a CLI do Azure
- Executar comandos do PowerShell com credenciais do Microsoft Entra para aceder a dados de blobs
Suporte de funcionalidades
O suporte para esse recurso pode ser afetado pela habilitação do Data Lake Storage Gen2, do protocolo NFS (Network File System) 3.0 ou do SSH File Transfer Protocol (SFTP). Se você habilitou qualquer um desses recursos, consulte Suporte ao recurso de Armazenamento de Blob nas contas de Armazenamento do Azure para avaliar o suporte para esse recurso.
A autorização de operações de dados de blob com o Microsoft Entra ID é suportada apenas para as versões da API REST 2017-11-09 e posteriores. Para obter mais informações, consulte Controle de versão para os serviços de Armazenamento do Azure.