Impor uma versão mínima necessária da TLS (segurança da camada de transporte) para solicitações a uma conta de armazenamento

✔️ Aplica-se a: Armazenamento de Blobs do Azure, Azure Data Lake Storage, Armazenamento de Filas do Azure, Armazenamento de Tabelas do Azure

✖️ Não se aplica a: Arquivos do Azure (Microsoft.Storage ou Microsoft.FileShares)

A comunicação entre um aplicativo cliente e uma conta do Armazenamento do Azure é criptografada usando o Transport Layer Security (TLS). O TLS é um protocolo criptográfico padrão que garante a privacidade e a integridade dos dados entre clientes e serviços pela Internet. Para obter mais informações sobre TLS, confira Protocolo TLS.

O Armazenamento do Azure dá suporte a duas versões do protocolo TLS: 1.2 e 1.3. Embora o Armazenamento do Azure agora suporte TLS 1.3, atualmente não suporta a aplicação do TLS 1.3 como a versão mínima TLS para contas do Armazenamento do Azure. A versão mínima recomendada do TLS é tls 1.2. Clientes que usam as versões mais recentes do TLS negociam automaticamente para usar o TLS 1.3, se disponível.

Dica

O Armazenamento do Azure depende da implementação do SSL pelo Windows que não se baseia no OpenSSL e, portanto, não é exposto a vulnerabilidades relacionadas ao OpenSSL.

As contas de Armazenamento do Azure permitem que os clientes enviem e recebam dados com as versões 1.2 e superiores do TLS. Quando uma conta de armazenamento exige uma versão mínima TLS, qualquer requisição que use uma versão mais antiga falha.

Este artigo descreve como usar uma estrutura DRAG (detecção-correção-auditoria-governança) para gerenciar de forma contínua o TLS seguro para suas contas de armazenamento.

Para obter informações sobre como especificar uma versão específica do TLS ao enviar uma solicitação de um aplicativo cliente, confira Configurar TLS (segurança de camada de transporte) para um aplicativo cliente.

Observação

O conjunto de cifras usado quando os clientes enviam dados para e recebem dados de uma conta de armazenamento depende da versão do TLS utilizada. Você não pode configurar uma conta de armazenamento para bloquear o uso de cifras específicas, a não ser exigindo uma versão mínima do TLS. Se for necessário permitir apenas pacotes de criptografia específicos ao conectar a conta de armazenamento, use o Gateway de Aplicativo do Azure. Para obter mais informações sobre como usar o Gateway de Aplicativo para essa finalidade, consulte Configurar versões de política de TLS e pacotes de criptografia no Gateway de Aplicativo do Azure.

Para Arquivos do Azure, veja FileREST criptografia em trânsito. Contas de armazenamento que contêm compartilhamentos de arquivos Azure usam a mesma configuração, mas o artigo do Arquivos do Azure descreve considerações para o Arquivos do Azure.

Detectar a versão do TLS usada por aplicativos cliente

Quando você impõe uma versão mínima do TLS para sua conta de armazenamento, corre o risco de rejeitar solicitações de clientes que usam uma versão antiga do TLS. Para entender como a configuração da versão mínima do TLS afeta os aplicativos cliente, a Microsoft recomenda que você habilite o log da sua conta do Armazenamento do Azure e analise os logs após um intervalo de tempo para detectar quais versões de TLS os aplicativos cliente usam.

Para registrar requisições na sua conta do Armazenamento do Azure e determinar a versão do TLS usada pelo cliente, use o 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, use um espaço de trabalho do Azure Log Analytics. Para saber mais sobre consultas de log, confira Tutorial: introdução às consultas do Log Analytics.

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. Para criar uma configuração de diagnóstico no portal do Azure, siga estas etapas:

  1. Crie um novo Log Analytics espaço de trabalho na assinatura que contém sua conta do Armazenamento do Azure. Depois de configurar os logs da sua conta de armazenamento, eles estarão disponíveis no espaço de trabalho do Log Analytics. Para obter mais informações, confira Criar um workspace do Log Analytics no portal do Azure.

  2. Acesse sua conta de armazenamento no portal do Azure.

  3. Na seção Monitoramento, selecione Configurações de diagnóstico.

  4. Selecione o serviço de Armazenamento do Azure para o qual você deseja registrar solicitações. Por exemplo, escolha Blob para registrar solicitações ao armazenamento de blobs.

  5. Selecionar Adicionar configurações de diagnóstico.

  6. Forneça um nome para a configuração de diagnóstico.

  7. Em Detalhes da categoria, na seção log, escolha quais tipos de solicitações registrar em log. Você pode registrar em log as solicitações de leitura, gravação e exclusão. Por exemplo, escolher StorageRead e StorageWrite registra em log as solicitações de leitura e gravação no serviço selecionado.

  8. Em Detalhes do destino, selecione Enviar para o Log Analytics. Selecione sua assinatura e o workspace do Log Analytics criado anteriormente, conforme mostrado na imagem a seguir.

    Captura de tela mostrando como criar uma configuração de diagnóstico para solicitações de log

Depois que você cria a configuração de diagnóstico, a conta de armazenamento registra as solicitações de acordo com essa configuração. Para obter mais informações, confira Criar configurações de diagnóstico para coletar logs de recursos e métricas no Azure.

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

Consultar solicitações registradas por versão de TLS

Os logs do Armazenamento do Microsoft Azure no Azure Monitor incluem a versão de TLS usada para enviar uma solicitação para uma conta de armazenamento. Use a propriedade TlsVersion para verificar a versão de TLS de uma solicitação registrada.

Para determinar quantas solicitações foram feitas no armazenamento de blobs com versões diferentes do TLS nos últimos sete dias, abra seu workspace do Log Analytics. Em seguida, cole a consulta a seguir em uma nova consulta de log e execute-a. Não deixe de substituir os valores de espaço reservado entre colchetes pelos seus valores:

StorageBlobLogs
| where TimeGenerated > ago(7d) and AccountName == "<account-name>"
| summarize count() by TlsVersion

Os resultados mostram a contagem do número de solicitações feitas com cada versão do TLS:

Captura de tela mostrando os resultados da consulta do Log Analytics para retornar a versão do TLS

Consultar solicitações registradas por endereço IP do chamador e cabeçalho do agente do usuário

Os logs do Armazenamento do Azure no Azure Monitor também incluem o endereço IP do chamador e o cabeçalho do agente do usuário para ajudar a avaliar quais aplicações clientes acessaram a conta de armazenamento. Você pode analisar esses valores para decidir se as aplicações cliente precisam ser atualizadas para usar uma versão mais recente do TLS, ou se é aceitável rejeitar a solicitação de um cliente se ela não for enviada com a versão mínima do TLS.

Para determinar quais clientes fizeram solicitações com uma versão do TLS anterior ao TLS 1.2 nos últimos sete dias, cole a consulta a seguir em uma nova consulta de log e execute-a. Não deixe de substituir os valores de espaço reservado entre colchetes pelos seus valores:

StorageBlobLogs
| where TimeGenerated > ago(7d) and AccountName == "<account-name>" and TlsVersion != "TLS 1.2"
| project TlsVersion, CallerIpAddress, UserAgentHeader

Corrigir riscos de segurança com uma versão mínima do TLS

Quando você estiver confiante de que o tráfego de clientes que usam versões mais antigas do TLS é mínimo, ou que é aceitável a falha de solicitações feitas com uma versão mais antiga do TLS, inicie a imposição de uma versão mínima do TLS em sua conta de armazenamento. Exigir que os clientes usem uma versão mínima do TLS para fazer solicitações em uma conta de armazenamento faz parte de uma estratégia para minimizar os riscos de segurança para seus dados.

Importante

Se você está usando um serviço que se conecta ao Armazenamento do Azure, certifique-se de que esse serviço está usando a versão apropriada do TLS para enviar requisições ao Armazenamento do Azure antes de definir a versão mínima exigida para uma conta de armazenamento.

Configurar a versão mínima do TLS para uma conta de armazenamento

Para configurar a versão mínima do TLS para uma conta de armazenamento, defina a versão MinimumTlsVersion para a conta. Essa propriedade está disponível para todas as contas de armazenamento criadas com o modelo de implantação do Azure Resource Manager. Para obter mais informações sobre o Modelo de implantação do Azure Resource Manager, confira Visão geral da conta de armazenamento.

O valor padrão da propriedade MinimumTlsVersion é diferente, dependendo de como você o definiu. Quando você cria uma conta de armazenamento com o portal do Azure, a versão mínima do TLS é definida como 1.2 por padrão. Ao criar uma conta de armazenamento usando PowerShell, CLI do Azure ou um template do Azure Resource Manager, a MinimumTlsVersion propriedade não é definida por padrão e não retorna um valor até que você a configure explicitamente.

Quando a propriedade MinimumTlsVersion não está definida, seu valor pode ser exibido como nulo ou uma string vazia, dependendo do contexto. A conta de armazenamento permite requisições enviadas com TLS versão 1.0 ou superior se a propriedade não estiver definida.

Quando você cria uma conta de armazenamento com o portal do Azure, a versão mínima do TLS é definida como 1.2 por padrão.

Para configurar a versão mínima do TLS para uma conta de armazenamento existente com o portal do Azure, siga estas etapas:

  1. Acesse sua conta de armazenamento no portal do Azure.

  2. Em Configurações, escolha Configuração.

  3. Em Versão mínima do TLS, use a lista suspensa para selecionar a versão mínima do TLS necessária para acessar os dados nessa conta de armazenamento.

    Captura de tela mostrando como configurar a versão mínima do TLS no portal do Azure.

Observação

Depois que você atualiza a versão mínima do TLS para a conta de armazenamento, pode levar até 30 segundos até que a mudança seja totalmente propagada.

Configurar a versão mínima do TLS requer a versão 2019-04-01 ou posterior do provedor de recursos do Armazenamento do Microsoft Azure. Para saber mais, consulte API REST do provedor de recursos do Armazenamento do Azure.

Verificar a versão mínima necessária do TLS para várias contas

Para verificar a versão mínima exigida do TLS em um conjunto de contas de armazenamento com desempenho ideal, use o Azure Resource Graph Explorer no portal Azure. Para saber mais sobre como usar o Resource Graph Explorer, consulte Início Rápido: executar sua primeira consulta de grafo de recursos 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 versão mínima de TLS para cada conta:

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

Testar a versão mínima do TLS de um cliente

Para testar se a versão mínima exigida de TLS para uma conta de armazenamento proíbe chamadas feitas com uma versão mais antiga, configure um cliente para usar uma versão mais antiga do TLS. Para obter mais informações sobre como configurar um cliente para usar uma versão específica do TLS, confira Configurar TLS (segurança da camada de transporte) para um aplicativo cliente.

Quando um cliente acessa uma conta de armazenamento usando uma versão TLS que não atende à versão mínima de TLS configurada para a conta, o Armazenamento do Azure retorna o código de erro 400 (Solicitação Ruim) e uma mensagem indicando que a versão TLS não é permitida para fazer requisições contra essa conta de armazenamento.

Observação

Quando você configura uma versão mínima de TLS para uma conta de armazenamento, a camada de aplicação impõe essa versão mínima. Ferramentas que tentam determinar o suporte a TLS na camada de protocolo podem retornar versões TLS além da versão mínima exigida quando executadas diretamente no endpoint da conta de armazenamento.

Usar Azure Policy para auditar a conformidade

Se você tem um grande número de contas de armazenamento, talvez queira realizar uma auditoria para garantir que todas as contas estejam configuradas para a versão mínima do TLS que sua organização exige. Para auditar um conjunto de contas de armazenamento para sua conformidade, use o Azure Policy. O Azure Policy é um serviço que você pode usar para criar, atribuir e gerenciar políticas que aplicam regras aos recursos do Azure. O Azure Policy ajuda você a manter esses recursos em conformidade com seus padrões corporativos e acordos de nível de serviço. Para saber mais, confira Visão geral do Azure Policy.

Criar uma política com um efeito de auditoria

O Azure Policy oferece suporte a efeitos que determinam o que acontece quando uma regra de política é avaliada em um recurso. O efeito Audit cria um aviso quando um recurso não está em conformidade, mas não impede a solicitação. Para saber mais sobre efeitos, confira Entender os efeitos da Azure Policy.

Para criar uma política com efeito de Auditoria para a versão mínima do TLS usando o portal Azure, siga estes passos:

  1. No portal do Azure, acesse o serviço Azure Policy.

  2. Na seção Criação, escolha Definições.

  3. Escolha Adicionar definição de política para criar uma nova definição de política.

  4. Para o campo Local de definição, escolha o botão Mais para especificar onde o recurso de política de auditoria está localizado.

  5. Insira um nome para a política. Opcionalmente, você pode especificar uma descrição e uma categoria.

  6. Em Regra de política, adicione a seguinte definição de política à seção policyRule.

    {
      "policyRule": {
        "if": {
          "allOf": [
            {
              "field": "type",
              "equals": "Microsoft.Storage/storageAccounts"
            },
            {
                "anyOf": [
                  {
                    "field": "Microsoft.Storage/storageAccounts/minimumTlsVersion",
                    "notEquals": "TLS1_2"
                  },
                  {
                    "field": "Microsoft.Storage/storageAccounts/minimumTlsVersion",
                    "exists": "false"
                  }
                ]
            }
          ]
        },
        "then": {
          "effect": "audit"
        }
      }
    }
    
  7. Salve a política.

Atribuir a política

Em seguida, atribua a política a um recurso. O escopo da política corresponde a esse recurso e a todos os recursos abaixo dele. Para obter mais informações sobre atribuição de política, confira Estrutura de atribuição do Azure Policy.

Para atribuir a política com o portal do Azure, siga estas etapas:

  1. No portal do Azure, acesse o serviço Azure Policy.
  2. Na seção Criação, escolha Atribuições.
  3. Escolha Atribuir política para criar uma nova atribuição de política.
  4. Para o campo Escopo, escolha o escopo de atribuição de política.
  5. Para o campo Definição de política, escolha o botão Mais e, em seguida, escolha a política que você definiu na seção anterior na lista.
  6. Forneça um nome para a atribuição de política. A descrição é opcional.
  7. Mantenha Imposição de política definido como Habilitado. Essa configuração não tem efeito sobre a política de auditoria.
  8. Escolha Examinar + criar para criar a atribuição.

Exibir relatório de conformidade

Depois de atribuir a política, veja o relatório de conformidade. O relatório de conformidade de uma política de auditoria mostra informações sobre quais contas de armazenamento não estão em conformidade com a política. Para obter mais informações, confira Obter dados de conformidade da política.

Pode levar vários minutos para o relatório de conformidade ficar disponível após a criação da atribuição da política.

Para exibir o relatório de conformidade no portal do Azure, siga estas etapas:

  1. No portal do Azure, acesse o serviço Azure Policy.

  2. Selecione Conformidade.

  3. Filtre os resultados para o nome da atribuição de política que você criou na etapa anterior. O relatório mostra quantos recursos não estão em conformidade com a política.

  4. Você pode analisar o relatório para mais detalhes, incluindo uma lista de contas de armazenamento que não estão em conformidade.

    Captura de tela mostrando o relatório de conformidade para a política de auditoria para a versão mínima do TLS

Usar o Azure Policy para impor a versão mínima do TLS

O Azure Policy dá suporte à governança de nuvem, garantindo que os recursos do Azure sigam os requisitos e padrões. Para impor um requisito mínimo de versão TLS para as contas de armazenamento da sua organização, você pode criar uma política que impeça a criação de uma nova conta de armazenamento que defina o requisito mínimo de TLS para uma versão mais antiga do que a exigida pela política. Essa política também impede todas as alterações de configuração em uma conta existente se a configuração mínima de TLS para essa conta não estiver em conformidade com a política.

A política de imposição usa o efeito de negação para evitar uma solicitação que criaria ou mudaria uma conta de armazenamento de maneira que a versão mínima do TLS deixasse de respeitar os padrões da organização. Para saber mais sobre efeitos, confira Entender os efeitos da Azure Policy.

Para criar uma política com efeito de Negação para uma versão mínima do TLS que seja menor que o TLS 1.2, siga os mesmos passos descritos em Use Azure Policy para auditar a conformidade, mas forneça o seguinte JSON na seção policyRule da definição da política:

{
  "policyRule": {
    "if": {
      "allOf": [
        {
          "field": "type",
          "equals": "Microsoft.Storage/storageAccounts"
        },
        {
            "anyOf": [
              {
                "field": "Microsoft.Storage/storageAccounts/minimumTlsVersion",
                "notEquals": "TLS1_2"
              },
              {
                "field": "Microsoft.Storage/storageAccounts/minimumTlsVersion",
                "exists": "false"
              }
            ]
        }
      ]
    },
    "then": {
      "effect": "deny"
    }
  }
}

Depois de criar a política com o efeito Negar e atribuí-la a um escopo, um usuário não pode criar uma conta de armazenamento com uma versão mínima de TLS mais antiga que a 1.2. Também um usuário não pode fazer alterações de configuração em uma conta de armazenamento existente que atualmente exija uma versão mínima do TLS mais antiga que a 1.2. Caso isso seja feito, será gerado um erro. A versão mínima necessária do TLS para a conta de armazenamento deve ser definida como 1.2 para prosseguir com a criação ou configuração da conta.

A imagem a seguir mostra o erro que ocorre se você tentar criar uma conta de armazenamento com a versão mínima do TLS definida como TLS 1.0 (o padrão para uma nova conta) quando uma política com um efeito de negação exigir que a versão mínima do TLS seja definida como TLS 1.2.

Captura de tela mostrando o erro que ocorre ao criar uma conta de armazenamento em violação da política

Permissões necessárias para exigir uma versão mínima do TLS

Para definir a propriedade MinimumTlsVersion para a conta de armazenamento, você precisa de permissões para criar e gerenciar contas de armazenamento. As funções do 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 via 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, você pode usar as chaves de acesso da conta para acessar todos os dados em uma conta de armazenamento.

As atribuições de funções devem ser definidas no escopo do nível da conta de armazenamento ou superior para permitir que você exija uma versão mínima do TLS 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 do menor privilégio para garantir que os usuários tenham o menor número possível de 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.

Considerações de rede

Quando um cliente envia uma solicitação para uma conta de armazenamento, o cliente primeiro se conecta ao endpoint público da conta de armazenamento antes de processar qualquer solicitação. A configuração de versão mínima do TLS é verificada depois que a conexão é estabelecida. Se a requisição usar uma versão anterior do TLS à versão especificada pela configuração, a conexão continua a ter sucesso, mas a solicitação eventualmente falha. Para obter mais informações sobre pontos de extremidade públicos para o Armazenamento do Microsoft Azure, confira Sintaxe de URI de recurso.

Próximas etapas