Compartilhar via


Impedir a autorização de Chave Compartilhada para uma conta do Armazenamento do Microsoft Azure

Todas as solicitações seguras para uma conta do Armazenamento do Azure devem ser autorizadas. Por padrão, as solicitações podem ser autorizadas com as credenciais do Microsoft Entra ou usando a chave de acesso da conta para a autorização de chave compartilhada. Desses dois tipos de autorização, o Microsoft Entra ID fornece segurança superior e facilidade de uso em relação à chave compartilhada e é recomendado pela Microsoft. Para exigir que os clientes usem o Microsoft Entra ID para autorizar solicitações, você pode desaprovar solicitações para a conta de armazenamento que são autorizadas com a Chave Compartilhada.

Quando você não permite a autorização de chave compartilhada para uma conta de armazenamento, o armazenamento do Azure rejeita todas as solicitações subsequentes para essa conta que são autorizadas com as chaves de acesso da conta. Somente as solicitações protegidas autorizadas com o Microsoft Entra ID serão bem-sucedidas. Para saber mais sobre como usar o Microsoft Entra ID, confira Autorizar o acesso aos dados no Armazenamento do Microsoft Azure.

A propriedade AllowSharedKeyAccess de uma conta de armazenamento não é definida por padrão e não retorna um valor até que você a defina explicitamente. A conta de armazenamento permite solicitações autorizadas com a chave compartilhada quando o valor da propriedade é null ou quando é true.

Este artigo descreve como usar uma estrutura DRAG (detecção, correção, auditoria, governança) para gerenciar de maneira contínua a autorização de Chave Compartilhada para sua conta de armazenamento.

Pré-requisitos

Antes de desaprovar o acesso à Chave Compartilhada em qualquer uma das contas de armazenamento:

Entender como a desaprovação da chave compartilhada afeta os tokens SAS

Quando o acesso de chave compartilhada não é permitido para a conta de armazenamento, o Armazenamento do Azure trata tokens SAS com base no tipo de SAS e no serviço que é alvo da solicitação. A tabela a seguir mostra como cada tipo de SAS é autorizado e como o Armazenamento do Azure tratará essa SAS quando a propriedade AllowSharedKeyAccess da conta de armazenamento for false.

Tipo de SAS Tipo de autorização Comportamento quando AllowSharedKeyAccess é false
SAS de delegação de usuário (somente armazenamento de blobs) ID do Microsoft Entra A solicitação é permitida. A Microsoft recomenda usar uma SAS de delegação de usuário quando possível para segurança superior.
SAS de Serviço Chave compartilhada A solicitação é negada para todos os serviços do Armazenamento do Azure.
SAS de Conta Chave compartilhada A solicitação é negada para todos os serviços do Armazenamento do Azure.

As métricas do Azure e os registros em log no Azure Monitor não fazem distinção entre diferentes tipos de assinaturas de acesso compartilhado. O filtro SAS no Azure Metrics Explorer e o campo SAS no registro em log do Armazenamento do Azure no Azure Monitor relatam as solicitações que são autorizadas com qualquer tipo de SAS. No entanto, tipos diferentes de assinaturas de acesso compartilhado são autorizados de uma forma diferente e se comportam de uma forma diferente quando o acesso de chave compartilhada está desaprovado:

  • Um token SAS de serviço ou um token SAS de conta é autorizado com a chave compartilhada e não será permitido em uma solicitação para o armazenamento de blobs quando a propriedade AllowSharedKeyAccess estiver definida como false.
  • Uma SAS de delegação de usuário é autorizada com o Microsoft Entra ID e será permitida em uma solicitação para o armazenamento de blobs quando a propriedade AllowSharedKeyAccess estiver definida como false.

Quando você estiver avaliando o tráfego para sua conta de armazenamento, tenha em mente que as métricas e os logs conforme descrito em Detectar o tipo de autorização usado por aplicativos cliente podem incluir solicitações feitas com uma SAS de delegação de usuário.

Para obter mais informações sobre assinaturas de acesso compartilhado, confira Conceder acesso limitado a recursos de Armazenamento do Azure usando SAS (assinaturas de acesso compartilhado).

Considere a compatibilidade com outras ferramentas e serviços do Azure

Vários serviços do Azure usam a autorização de chave compartilhada para se comunicar com o Armazenamento do Azure. Se você desaprovar a autorização de chave compartilhada para uma conta de armazenamento, esses serviços não poderão acessar os dados nessa conta e seus aplicativos poderão ser afetados negativamente.

Algumas ferramentas do Azure oferecem a opção de usar a autorização do Microsoft Entra para acessar o Armazenamento do Azure. A tabela a seguir lista algumas ferramentas populares do Azure e indica se elas podem usar o Microsoft Entra ID para autorizar solicitações para o Armazenamento do Azure.

Ferramenta do Azure Autorização do Microsoft Entra para o Armazenamento do Azure
Portal do Azure Com suporte. Para obter informações sobre como autorizar com sua conta do Microsoft Entra do portal do Azure, confira Escolha como autorizar o acesso a dados de blob no portal do Azure.
AzCopy Com suporte para o Armazenamento de Blobs. Para obter informações sobre como autorizar operações de AzCopy, confira Escolher como você fornecerá credenciais de autorização na documentação do AzCopy.
Gerenciador de Armazenamento do Azure Suportado no Armazenamento de Blobs, Armazenamento de Filas, Armazenamento de Tabelas e Armazenamento do Azure Data Lake. Não há suporte para o acesso do Microsoft Entra ID ao armazenamento de Arquivo. Certifique-se de selecionar o locatário correto do Microsoft Entra. Para obter mais informações, confira Introdução ao Gerenciador de Armazenamento
Azure PowerShell Com suporte. Para obter informações sobre como autorizar comandos do PowerShell para operações de blob ou fila com o Microsoft Entra ID, confira Executar comandos do PowerShell com as credenciais do Azure AD para acessar dados de blob ou Executar comandos do PowerShell com as credenciais do Azure AD para acessar os dados da fila.
CLI do Azure Com suporte. Para obter informações sobre como autorizar comandos da CLI do Azure com o Microsoft Entra ID para acessar dados de blob e de fila, confira Executar comandos da CLI do Azure com credenciais do Azure AD para acessar dados de blob e fila.
Hub IoT do Azure Com suporte. Para obter mais informações, confira Suporte do Hub IoT para redes virtuais.
Azure Cloud Shell O Azure Cloud Shell é um shell integrado no portal do Azure. O Azure Cloud Shell hospeda arquivos para persistência em um compartilhamento de arquivo do Azure em uma conta de armazenamento. Esses arquivos ficarão inacessíveis se a autorização de chave compartilhada for desaprovada para essa conta de armazenamento. Para obter mais informações, consulte Persistir arquivos no Azure Cloud Shell.

Para executar comandos no Azure Cloud Shell para gerenciar contas de armazenamento para as quais o acesso de chave compartilhada está desaprovado, primeiro certifique-se de ter recebido as permissões necessárias para essas contas por meio do RBAC do Azure. Para obter mais informações, confira O que é o RBAC do Azure (controle de acesso baseado em função do Azure)?.

Não permitir a autorização de Chave Compartilhada para usar o Acesso Condicional do Microsoft Entra

Para proteger uma conta de Armazenamento do Microsoft Azure com as políticas de Acesso Condicional do Microsoft Entra, você não deve permitir a autorização de Chave Compartilhada para a conta de armazenamento.

Autorizar o acesso a dados de arquivo ou fazer a transição de cargas de trabalho dos Arquivos do Azure

O Armazenamento do Azure tem suporte para a autorização do Microsoft Entra para solicitações para os Arquivos do Azure, o Armazenamento de Blobs, o Armazenamento de Filas e o Armazenamento de Tabelas. No entanto, por padrão, o portal do Azure usa a autorização de Chave Compartilhada para acessar os compartilhamentos de arquivos do Azure. Se você não permitir a autorização de Chave Compartilhada para uma conta de armazenamento que não esteja configurada com as atribuições de RBAC adequadas, as solicitações aos Arquivos do Azure falharão e você não poderá acessar os compartilhamentos de arquivos do Azure no portal do Azure.

Para atenuar isso, recomendamos adotar uma das três abordagens:

  1. Siga estas etapas para autorizar o acesso a dados de arquivo usando sua conta do Microsoft Entra ou
  2. Migre os dados dos Arquivos do Azure para uma conta de armazenamento separada antes de não permitir o acesso a uma conta por meio da Chave Compartilhada ou
  3. Não aplique essa configuração a contas de armazenamento que dão suporte a cargas de trabalho dos Arquivos do Azure.

Identificar contas de armazenamento que permitem acesso à Chave Compartilhada

Há duas maneiras de identificar contas de armazenamento que permitem acesso à Chave Compartilhada:

Verificar a configuração de acesso de chave compartilhada para várias contas

Para verificar a configuração de acesso de chave compartilhada em um conjunto de contas de armazenamento com o desempenho ideal, você pode usar o Azure Resource Graph Explorer no portal do Azure. Para saber mais sobre como usar o Resource Graph Explorer, confira Início Rápido: Executar a primeira consulta do Resource Graph usando o Azure Resource Graph Explorer.

A execução da seguinte consulta no Resource Graph Explorer retorna uma lista de contas de armazenamento e exibe a configuração de acesso de chave compartilhada para cada conta:

resources
| where type =~ 'Microsoft.Storage/storageAccounts'
| extend allowSharedKeyAccess = parse_json(properties).allowSharedKeyAccess
| project subscriptionId, resourceGroup, name, allowSharedKeyAccess

Configurar o Azure Policy para acesso à Chave Compartilhada no modo de auditoria

A política do Azure Policy Contas de armazenamento devem impedir o acesso de chave compartilhada impede que usuários com permissões apropriadas configurem contas de armazenamento novas ou existentes para permitir a autorização da Chave Compartilhada. Configure essa política no modo de auditoria para identificar contas de armazenamento em que a autorização de Chave Compartilhada é permitida. Após alterar os aplicativos para usar o Microsoft entra em vez da Chave Compartilhada para autorização, você pode atualizar a política para evitar permitir o acesso à Chave Compartilhada.

Para obter mais informações sobre a política interna, consulte Contas de armazenamento devem impedir o acesso de chave compartilhada na Lista de definições de políticas internas.

Atribuir a política interna para um escopo de recurso

Siga estas etapas para atribuir a política interna ao escopo apropriado no portal do Azure:

  1. No portal do Azure, pesquise Política para exibir o painel do Azure Policy.

  2. Na seção Criação, selecione Atribuições.

  3. Escolha Atribuir política.

  4. Na guia Noções Básicas da página Atribuir política, na seção Escopo, especifique o escopo da atribuição de política. Selecione o botão Mais (...) para escolher a assinatura e o grupo de recursos opcional.

  5. Para o campo Definição de política, selecione o botão Mais (...) e insira acesso de chave compartilhada no campo Pesquisar. Selecione a definição de política chamada Contas de armazenamento devem impedir o acesso de chave compartilhada.

    Captura de tela mostrando como selecionar a política interna para impedir o acesso de Chave Compartilhada para suas contas de armazenamento

  6. Selecione Examinar + criar.

  7. Na guia Examinar + criar, examine a atribuição de política e selecione Criar para atribuir a definição de política ao escopo especificado.

Monitorar a conformidade com a política

Para monitorar suas contas de armazenamento quanto à conformidade com a política de acesso de Chave Compartilhada, siga estas etapas:

  1. No painel do Azure Policy, em Criação, selecione Atribuições.

  2. Localize e selecione a atribuição de política que você criou na seção anterior.

  3. Selecione a guia Exibir conformidade.

  4. Todas as contas de armazenamento no escopo da atribuição de política que não atendem aos requisitos da política aparecem no relatório de conformidade.

    Captura de tela mostrando como exibir o relatório de conformidade para a política interna de acesso de Chave Compartilhada.

Para obter mais informações sobre por que uma conta de armazenamento não está em conformidade, selecione Detalhes em Motivo da conformidade.

Detectar o tipo de autorização usado por aplicativos cliente

Para entender como a desaprovação da autorização de chave compartilhada pode afetar os aplicativos cliente antes de fazer essa alteração, habilite o registro em log e as métricas para a conta de armazenamento. Em seguida, você pode analisar padrões de solicitações para sua conta durante um período de tempo para determinar como as solicitações estão sendo autorizadas.

Use as métricas para determinar quantas solicitações a conta de armazenamento está recebendo e que estão autorizadas com uma chave compartilhada ou uma SAS (assinatura de acesso compartilhado). Use logs para determinar quais clientes estão enviando essas solicitações.

Uma SAS pode ser autorizada com a Chave Compartilhada ou o Microsoft Entra ID. Para obter mais informações sobre como interpretar solicitações feitas com uma assinatura de acesso compartilhado, consulte Entender como a desaprovação da Chave Compartilhada afeta os tokens SAS.

Determinar o número e a frequência das solicitações autorizadas com a Chave Compartilhada

Para controlar como as solicitações para uma conta de armazenamento estão sendo autorizadas, use o Azure Metrics Explorer no portal do Azure. Para obter mais informações sobre o Metrics Explorer, consulte Analisar métricas com o explorador de métricas do Azure Monitor.

Siga estas etapas para criar uma métrica que controla as solicitações feitas com a chave compartilhada ou SAS:

  1. Navegue até sua conta de armazenamento no portal do Azure. Na seção Monitoramento, selecione Métricas.

  2. A nova caixa de métrica deve aparecer:

    Captura de tela mostrando a nova caixa de diálogo de métrica.

    Caso contrário, selecione Adicionar métrica.

  3. Na caixa de diálogo Métrica, especifique os seguintes valores:

    1. Deixe o campo Escopo definido como o nome da conta de armazenamento.
    2. Defina o Namespace de métrica como Conta. Essa métrica relatará todas as solicitações em relação à conta de armazenamento.
    3. Defina o campo Métrica como Transações.
    4. Defina o campo Agregação como Soma.

    A nova métrica exibirá a soma do número de transações na conta de armazenamento em um dado intervalo de tempo. A métrica resultante é exibida, como mostra a seguinte imagem:

    Captura de tela mostrando como configurar uma métrica para resumir transações feitas com a Chave Compartilhada ou SAS.

  4. Em seguida, selecione o botão Adicionar filtro para criar um filtro na métrica de tipo de autorização.

  5. Na caixa de diálogo Filtro, especifique os seguintes valores:

    1. Defina o valor da Propriedade como Autenticação.
    2. Defina o campo Operador para o sinal de igual (=).
    3. No campo Valores, selecione Chave de Conta e SAS.
  6. No canto superior direito, selecione o intervalo de tempo para o qual você deseja exibir a métrica. Você também pode indicar como a agregação das solicitações deve ser granular, especificando intervalos em qualquer lugar, de 1 minuto a 1 mês. Por exemplo, defina o Intervalo de tempo para 30 dias e a Granularidade de tempo para 1 dia para ver solicitações agregadas por dia nos últimos 30 dias.

Depois de configurar a métrica, as solicitações para sua conta de armazenamento começarão a aparecer no grafo. A imagem a seguir mostra as solicitações que foram autorizadas com a chave compartilhada ou foram feitas com um token SAS. As solicitações são agregadas por dia nos últimos trinta dias.

Captura de tela mostrando solicitações agregadas autorizadas com a Chave Compartilhada.

Você também pode configurar uma regra de alerta para receber uma notificação quando um determinado número de solicitações autorizadas com chave compartilhada é feito na sua conta de armazenamento. Para obter mais informações, confira Criar, exibir e gerenciar alertas de métrica usando o Azure Monitor.

Analisar logs para identificar clientes que estão autorizando solicitações com chave compartilhada ou SAS

Os logs de Armazenamento do Azure capturam detalhes sobre as solicitações feitas na conta de armazenamento, incluindo como uma solicitação foi autorizada. Você pode analisar os logs para determinar quais clientes estão autorizando solicitações com chave compartilhada ou um token SAS.

Para registrar solicitações para sua conta de Armazenamento do Azure para avaliar como elas são autorizadas, você pode usar o registro em log do Armazenamento do Azure no Azure Monitor. Para saber mais, confira Monitorar o Armazenamento do Azure.

O log de Armazenamento do Azure no Azure Monitor dá suporte ao uso de consultas de log para analisar dados de log. Para consultar logs, você pode usar um workspace do Log Analytics do Azure. Para saber mais sobre consultas de log, confira Tutorial: introdução às consultas do Log Analytics.

Criar uma configuração de diagnóstico no portal do Azure

Para registrar dados de Armazenamento do Azure com o Azure Monitor e analisá-los com o Azure Log Analytics, você deve primeiro criar uma configuração de diagnóstico que indica quais tipos de solicitações e para quais serviços de armazenamento você deseja registrar dados. Depois de configurar o registro em log para sua conta de armazenamento, os logs ficam disponíveis no espaço de trabalho do Log Analytics. Para criar um espaço de trabalho, veja Criar um espaço de trabalho do Log Analytics no portal do Azure.

Para saber como criar uma configuração de diagnóstico no portal do Azure, veja Criar configurações de diagnóstico no Azure Monitor.

Para obter uma referência dos campos disponíveis nos logs de Armazenamento do Microsoft Azure no Azure Monitor, confira Logs de recursos.

Logs de consulta para solicitações feitas com chave compartilhada ou SAS

Os logs de Armazenamento do Azure no Azure Monitor incluem o tipo de autorização que foi usado para fazer uma solicitação para uma conta de armazenamento. Para recuperar os logs das solicitações feitas nos últimos sete dias que foram autorizados com a chave compartilhada ou SAS, abra seu workspace do Log Analytics. Em seguida, cole a consulta a seguir em uma nova consulta de log e execute-a. Essa consulta exibe os dez endereços IP que enviaram com mais frequências solicitações autorizadas com a chave compartilhada ou SAS:

StorageBlobLogs
| where AuthenticationType in ("AccountKey", "SAS") and TimeGenerated > ago(7d)
| summarize count() by CallerIpAddress, UserAgentHeader, AccountName
| top 10 by count_ desc

Você também pode configurar uma regra de alerta com base nessa consulta para notificá-lo sobre solicitações autorizadas com chave compartilhada ou SAS. Para obter mais informações, confira Criar, exibir e gerenciar alertas de log usando o Azure Monitor.

Corrigir a autorização por chave compartilhada

Depois de analisar como as solicitações para sua conta de armazenamento estão sendo autorizadas, você pode tomar medidas para impedir o acesso por chave compartilhada. Mas primeiro, você precisa atualizar todos os aplicativos que estão usando a autorização de chave compartilhada para usar o Microsoft Entra ID. Você pode monitorar os logs e as métricas conforme descrito em Detectar o tipo de autorização usado por aplicativos cliente para acompanhar a transição. Para saber mais sobre como usar o Microsoft Entra ID para acessar dados em uma conta de armazenamento, confira Autorizar o acesso a dados no Armazenamento do Azure.

Quando tiver certeza de que você pode rejeitar com segurança solicitações que são autorizadas com a chave compartilhada, você pode definir a propriedade AllowSharedKeyAccess para a conta de armazenamento como false.

Aviso

Se algum cliente estiver acessando dados em sua conta de armazenamento com a chave compartilhada no momento, a Microsoft recomendará que você migre esses clientes para o Microsoft Entra ID antes de desaprovar o acesso da chave compartilhada à conta de armazenamento.

Permissões para aprovar ou desaprovar o acesso de chave pública

Para definir a propriedade AllowSharedKeyAccess para a conta de armazenamento, um usuário deve ter permissões para criar e gerenciar contas de armazenamento. As funções RBAC do Azure (controle de acesso baseado em função do Azure) que fornecem essas permissões incluem a ação Microsoft.Storage/storageAccounts/write ou Microsoft.Storage/storageAccounts/*. As funções internas com essa ação incluem:

Essas funções não fornecem acesso a dados em uma conta de armazenamento por meio do Microsoft Entra ID. No entanto, elas incluem a Microsoft.Storage/storageAccounts/listkeys/action, que concede acesso às chaves de acesso da conta. Com essa permissão, um usuário pode usar as chaves de acesso da conta para acessar todos os dados em uma conta de armazenamento.

As atribuições de função devem ser delimitadas ao nível da conta de armazenamento ou superior para permitir que um usuário aprove ou desaprove o acesso de chave compartilhada para a conta de armazenamento. Para obter mais informações sobre o escopo da função, confira Entender o escopo do RBAC do Azure.

Tenha cuidado para restringir a atribuição dessas funções somente aos que exigem a capacidade de criar uma conta de armazenamento ou atualizar suas propriedades. Use o princípio de privilégios mínimos para garantir que os usuários tenham as menores permissões necessárias para realizar suas tarefas. Para obter mais informações sobre como gerenciar o acesso com o RBAC do Azure, consulte Melhores práticas para o RBAC do Azure.

Observação

O administrador de serviço de funções de administrador de assinatura clássica e Coadministrator incluem o equivalente da função de proprietário do Azure Resource Manager. A função de Proprietário inclui todas as ações, de modo que um usuário com uma dessas funções administrativas também pode criar e gerenciar contas de armazenamento. Para obter mais informações, veja Funções do Azure, funções do Microsoft Entra e funções de administrador da assinatura clássico.

Desabilitar autorização de Chave Compartilhada

Usando uma conta com as permissões necessárias, desabilite a autorização de Chave Compartilhada no portal do Azure, com o PowerShell ou usando a CLI do Azure.

Para desaprovar a autorização de chave compartilhada para uma conta de armazenamento no portal do Azure, siga estas etapas:

  1. Navegue até sua conta de armazenamento no portal do Azure.

  2. Localize a definição de Configuração em Configurações.

  3. Defina a opção Permitir acesso à chave de conta de armazenamento como Desabilitada.

    Captura de tela mostrando como desaprovar o acesso de Chave Compartilhada para uma conta de armazenamento.

Depois que você desaprova a autorização de chave compartilhada, a criação de uma solicitação para a conta de armazenamento com a autorização de chave compartilhada falhará com o código de erro 403 (Proibido). O Armazenamento do Azure retorna um erro indicando que a autorização baseada em chave não é permitida na conta de armazenamento.

A propriedade AllowSharedKeyAccess tem suporte em contas de armazenamento que usam apenas o Modelo de implantação do Azure Resource Manager. Para obter informações sobre quais contas de armazenamento usam o Modelo de implantação do Azure Resource Manager, confira Tipos de contas de armazenamento.

Verificar se o acesso de chave compartilhada não é permitido

Para verificar se a autorização de chave compartilhada não for mais permitida, você poderá consultar as configurações da Conta de Armazenamento do Azure com o comando a seguir. Substitua os valores de espaço reservado entre colchetes por seus valores.

az storage account show \
    --name <storage-account-name> \
    --resource-group <resource-group-name> \
    --query "allowSharedKeyAccess"

O comando retornará falso se a autorização de chave compartilhada não for permitida na conta de armazenamento.

Observação

As solicitações anônimas não são autorizadas e continuarão se você tiver configurado a conta de armazenamento e o contêiner para acesso de leitura anônimo. Para obter mais informações, consulte Configurar o acesso de leitura anônimo para contêineres e blobs.

Monitorar o Azure Policy quanto à conformidade

Depois de desaprovar o acesso à Chave Compartilhada nas contas de armazenamento desejadas, continue monitorando a política criada anteriormente quanto à conformidade contínua. Com base nos resultados do monitoramento, execute a ação apropriada conforme necessário, incluindo alterar o escopo da política, desaprovar o acesso à Chave Compartilhada em mais contas ou permiti-lo para contas em que mais tempo é necessário para correção.

Atualizar o Azure Policy para impedir a permissão do acesso à Chave Compartilhada

Para começar a impor a atribuição do Azure Policy que você criou anteriormente para a política Contas de armazenamento devem impedir o acesso à chave compartilhada, altere o Efeito da atribuição de política para Negar para impedir que usuários autorizados permitam o acesso à Chave Compartilhada em contas de armazenamento. Para alterar o efeito da política, execute as seguintes etapas:

  1. No painel do Azure Policy, localize e selecione a atribuição de política que você criou anteriormente.

  2. Selecione Editar atribuição.

  3. Selecione na guia Parâmetros.

  4. Desmarque a caixa de seleção Mostrar apenas parâmetros que precisam de entrada ou revisão.

  5. Na lista suspensa Efeito, altere Auditar para Negar e selecione Examinar + salvar.

  6. Na guia Examinar + salvar, examine as alterações e selecione Salvar.

Observação

Pode levar até 30 minutos para que a alteração da política entre em vigor.

Próximas etapas