Proteja o armazenamento de tabelas do Azure

O Armazenamento de Tabelas do Azure fornece um armazenamento chave-valor NoSQL para dados estruturados e não relacionais. A segurança de tabelas compartilha fundamentos com os outros serviços de dados do Armazenamento do Azure, mas possui alguns detalhes específicos – incluindo uma superfície distinta de autorização do Microsoft Entra ID e uma sobreposição com o Azure Cosmos DB for Table API – que merecem atenção.

Note

Este artigo aborda práticas de segurança específicas do Armazenamento de Tabelas do Azure. Para orientações de segurança em nível de conta, veja Secure your Armazenamento do Azure account.

Segurança específica do serviço

Tanto o Armazenamento de Tabelas do Azure quanto o Azure Cosmos DB for Table API apresentam um modelo de dados de tabela semelhante, mas suas capacidades de segurança diferem significativamente. Escolha a plataforma que atenda aos seus requisitos de segurança no início do projeto. A migração de dados entre eles não é trivial.

  • Use o Azure Cosmos DB for Table quando precisar de taxa de transferência dedicada, distribuição global ou isolamento de rede mais granular para cada carga de trabalho de tabela: a API do Cosmos DB for Table é um recurso distinto, com seus próprios pontos de extremidade privados, firewall e configuração de IAM, independente de qualquer conta de armazenamento. Isso te dá um raio de explosão isolado quando a carga de trabalho da Table tem requisitos de rede ou governança diferentes das cargas que compartilham sua conta de armazenamento de uso geral. Para obter mais informações, confira a Introdução ao Azure Cosmos DB for Table.

  • Use o Armazenamento de Tabelas do Azure quando precisar de co-localização em nível de conta com blobs, arquivos e filas: O Table Storage está dentro de uma conta de armazenamento de uso geral, então um único conjunto de regras de rede, endpoints privados e políticas de identidade se aplica em todos os quatro serviços de dados. O Cosmos DB for Table é um recurso separado com configuração de segurança independente.

Gerenciamento de identidade e acesso

  • Use o Microsoft Entra ID para autorizar operações de dados de tabelas: a autorização do Entra ID elimina a necessidade de chaves de conta no código da aplicação e fornece trilhas de auditoria baseadas em identidade. Atribua as funções internas Leitor de Dados de Tabela de Armazenamento ou Colaborador de Dados de Tabela de Armazenamento no escopo da tabela, sempre que possível. Para mais informações, veja Autorizar acesso a tabelas usando o Microsoft Entra ID.

  • Definir o escopo das atribuições de função para tabelas específicas: há suporte para escopo no nível da tabela para as funções internas de dados de tabela. Quando um serviço precisar de acesso a apenas uma tabela, atribua a função no recurso de tabela em vez de na conta.

  • Restrinja os tokens SAS a intervalos específicos de chaves de partição e de linha: o SAS de Tabela oferece suporte a restrições de intervalo de chave de partição e de chave de linha. Use-os para restringir um token às linhas de um único locatário em uma tabela multilocatário ou a um subconjunto específico de dados. Para obter mais informações, confira Conceder acesso limitado a recursos de Armazenamento do Azure usando SAS (assinaturas de acesso compartilhado).

  • Conceda apenas as operações específicas de tabela necessárias: o SAS da tabela suporta query, add, update, e delete permissões separadamente. Um código chamador do tipo reader deve manter apenas query, nunca update nem delete.

Proteção de dados

O Table Storage armazena entidades como conjuntos simples de propriedades, sem ACLs individuais por entidade. Considere a segurança na sua estratégia de particionamento, em vez de tentar adaptar o controle de acesso.

  • Tabelas de partição para alinhar com limites de acesso: Quando uma tabela atende a múltiplos inquilinos ou níveis de classificação, escolha uma chave de partição que agrupe as entidades por locatário ou classificação. Combine isso às restrições de intervalo da chave de partição do SAS para garantir o isolamento entre locatários sem precisar de uma tabela separada para cada locatário.

  • Não armazene segredos nem dados pessoais desnecessários em propriedades de entidade: As entidades são visíveis a qualquer principal com acesso query ou read à tabela ou partição. Armazene segredos no Azure Key Vault com referências na entidade e minimize os dados pessoais que você coloca em propriedades consultáveis.

  • Criptografe valores de propriedades sensíveis na camada de aplicação: Para valores de propriedades que devem permanecer confidenciais, criptografe o valor no cliente com uma chave do Key Vault antes de inserir ou atualizar. Essa criptografia é independente da criptografia do lado do armazenamento aplicada a toda a tabela. Para obter mais informações, confira Sobre chaves.

Registro e monitoramento

  • Ative as configurações de diagnóstico para operações de tabela: Enviar StorageRead, StorageWrite, e StorageDelete categorias para o Log Analytics. Alerte sobre métodos de autorização inesperados, especialmente acesso a Chave Compartilhada em contas onde deveria ser desativado. Para mais informações, veja Monitoring Armazenamento de Tabelas do Azure.

  • Alerta em operações de exclusão ou atualização em alto volume: Atividades em massa DeleteEntity ou UpdateEntity que se desviem da linha base da tabela podem indicar destruição ou manipulação de dados. Estabeleça uma linha de base e alerte sobre desvios.

Próximas Etapas