Selecionar e configurar um método apropriado para acessar as Tabelas do Azure
O Armazenamento do Azure suporta a utilização do Microsoft Entra ID para autorizar pedidos de dados de tabela. Com o Microsoft Entra ID, pode usar o controlo de acesso baseado em função 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 de aplicativo. A entidade de segurança é autenticada pelo Microsoft Entra ID para retornar um token OAuth 2.0. O token pode ser usado para autorizar uma solicitação no serviço Tabela.
A autorização de solicitações no Armazenamento do Azure com a ID do Microsoft Entra oferece segurança superior e facilidade de uso em relação à autorização de Chave Compartilhada. A Microsoft recomenda o uso da autorização Microsoft Entra com as suas aplicações de tabela sempre que possível para garantir o acesso com os privilégios mínimos necessários. Para aplicações a correr no Azure, use identidades geridas para eliminar a necessidade de armazenar credenciais no seu código.
A autorização com o Microsoft Entra ID está disponível para todos os usos gerais em todas as regiões públicas e nuvens nacionais. Apenas as contas de armazenamento criadas com o modelo de implementação do Azure Resource Manager suportam a autorização do Microsoft Entra.
Visão geral do Microsoft Entra ID para tabelas
Quando uma entidade de segurança (um usuário, grupo ou aplicativo) tenta acessar um recurso de tabela, a solicitação deve ser autorizada. Com o Microsoft Entra ID, o acesso a um recurso é um processo de duas etapas. Primeiro, a identidade do principal de segurança é autenticada e um token OAuth 2.0 é emitido. Em seguida, o token é passado como parte de uma solicitação para o serviço Tabela e usado pelo serviço para autorizar o acesso ao recurso especificado.
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 Azure Functions, ele poderá usar uma identidade gerenciada para acessar tabelas. A utilização de identidades geridas é a abordagem recomendada , pois elimina a necessidade de gerir credenciais no código da sua aplicação.
A etapa de autorização requer que uma ou mais funções do Azure sejam atribuídas à entidade de segurança. O Armazenamento do Azure fornece funções do Azure que abrangem conjuntos comuns de permissões para dados de tabela. As funções atribuídas a uma entidade de segurança determinam as permissões que essa entidade terá.
A tabela a seguir aponta para informações adicionais para autorizar o acesso a dados em vários cenários:
Atribuir funções do Azure para direitos de acesso
O Microsoft Entra autoriza direitos de acesso a recursos protegidos por meio do controle de acesso baseado em função do Azure (Azure RBAC). O Armazenamento do Azure define um conjunto de funções internas do Azure que englobam conjuntos comuns de permissões usadas para acessar dados de tabela. Você também pode definir funções personalizadas para acesso aos dados da tabela.
Quando uma função do Azure é atribuída a uma entidade de segurança do Microsoft Entra, o Azure concede acesso a esses recursos a essa entidade de segurança. Uma entidade de segurança do Microsoft Entra pode ser um utilizador, um grupo, uma entidade de serviço de aplicação ou uma identidade gerida para recursos do Azure.
Â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 restrito possível necessário para que o principal de segurança desempenhe as suas tarefas. Isto segue o princípio do menor privilégio e minimiza os riscos de segurança. As funções do RBAC do Azure definidas num escopo mais amplo são herdadas pelos recursos abaixo delas.
Pode aceder aos recursos da tabela Azure nos seguintes níveis, começando pelo âmbito mais restrito (mais restritivo):
- Uma mesa individual. Neste âmbito, uma atribuição de função aplica-se apenas à tabela especificada.
- A conta de armazenamento. Neste âmbito, uma atribuição de função aplica-se a todas as tabelas da conta.
- O grupo de recursos. Neste escopo, uma atribuição de função se aplica a todas as tabelas em todas as contas de armazenamento no grupo de recursos.
- A subscrição. Neste escopo, uma atribuição de função se aplica a todas as tabelas em todas as contas de armazenamento em todos os grupos de recursos na assinatura.
- Um grupo de gestão. Neste escopo, uma atribuição de função se aplica a todas as tabelas 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 internas do Azure para tabelas
O RBAC do Azure fornece funções internas para autorizar o acesso a dados de tabela usando o Microsoft Entra ID e OAuth. As funções internas que fornecem permissões para tabelas no Armazenamento do Azure incluem:
- Contribuidor de Dados de Tabelas de Armazenamento: Concede permissões de leitura, escrita e eliminação a recursos de armazenamento de Tabelas. Use este papel para aplicações ou utilizadores que precisam de criar, modificar ou remover entidades de tabelas.
- Leitor de Dados de Tabelas de Armazenamento: Concede permissões apenas de leitura a recursos de armazenamento de Tabelas. Use este papel para aplicações ou utilizadores que apenas precisam de consultar ou recuperar dados de tabelas sem direitos de modificação.
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 aos dados da tabela. 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 acesse os dados da tabela. As funções internas, como Proprietário, Colaborador e Colaborador da Conta de Armazenamento, permitem que uma entidade de segurança gerencie uma conta de armazenamento, mas não fornecem acesso aos dados da tabela dentro dessa conta por meio da ID do Microsoft Entra. No entanto, se uma função incluir Microsoft.Storage/storageAccounts/listKeys/action, um usuário ao qual essa função é atribuída poderá acessar dados na conta de armazenamento por meio da autorização de Chave Compartilhada com as chaves de acesso da conta.
Observação
Os papéis que incluem a ação listKeys dão acesso total aos dados da conta de armazenamento através da Chave Partilhada. Para melhorar a segurança, considere usar funções personalizadas que excluam esta ação e garantir o acesso apenas através do Microsoft Entra ID.
Para obter informações detalhadas sobre as funções incorporadas do Azure para Azure Storage nos serviços de dados e de gestão, consulte a secção Armazenamento na Funções incorporadas do Azure para o 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.
As atribuições de função do Azure podem levar até 30 minutos para se propagar.
Permissões de acesso para operações de dados
Para mais informações sobre as permissões necessárias para executar operações específicas do serviço Tabela, consulte Permissões para operações de dados.
Melhores práticas para autorizar o acesso a tabelas
Ao implementar a autorização Microsoft Entra ID para armazenamento Azure Table, siga estas melhores práticas de segurança:
- Use identidades geridas: Para aplicações a correr no Azure (VMs, App Service, Azure Functions, Container Instances, AKS), use sempre identidades geridas em vez de entidades de serviço com credenciais armazenadas. Isto elimina a necessidade de gerir e alternar credenciais.
- Implementar o privilégio mínimo: Atribuir o papel mais restritivo que cumpra os requisitos. Use Storage Table Data Reader para cenários de leitura apenas, em vez de funções mais permissivas como Storage Table Data Contributor.
- Atribuir o âmbito adequadamente: Aplicar atribuições de funções ao nível da tabela sempre que possível, em vez de ao nível da conta de armazenamento ou subscrição. Isto limita o acesso apenas às tabelas específicas que os utilizadores ou aplicações necessitam.
- Evite a autorização de Chave Partilhada: Depois de migrar para a autenticação Microsoft Entra ID, considere desativar a autorização de Chave Partilhada ao nível da conta de armazenamento para evitar acessos não autorizados através de chaves de conta.
- Use papéis personalizados para controlo detalhado: Se os papéis incorporados não cumprirem os seus requisitos específicos, crie papéis RBAC personalizados no Azure que incluam apenas as permissões necessárias.
- Monitorizar o acesso: Ative o registo de diagnóstico e revise regularmente os registos do Azure Monitor para rastrear quem está a aceder aos seus dados da tabela e identificar quaisquer tentativas de acesso suspeitas ou não autorizadas.
- Aplicar políticas de acesso condicional: Utilize as políticas de Acesso Condicional da Microsoft Entra para impor requisitos de segurança adicionais, como autenticação multifator, verificações de conformidade do dispositivo ou restrições baseadas na localização.
- Revisões regulares de acesso: Rever e auditar periodicamente as atribuições de funções para garantir que os utilizadores e aplicações ainda necessitam das permissões atribuídas.
- Separar desenvolvimento e produção: Utilizar diferentes contas de armazenamento e atribuições de funções para ambientes de desenvolvimento e produção para minimizar o risco de exposição ou modificação acidental de dados.