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

A comunicação entre um aplicativo cliente e uma conta do Armazenamento do Microsoft Azure é criptografada usando o protocolo 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.

Atualmente, o Armazenamento do Microsoft Azure permite três versões do protocolo TLS: 1.0, 1.1 e 1.2. O Armazenamento do Microsoft Azure usa o TLS 1.2 em pontos de extremidade HTTPS públicos, mas ainda há suporte para TLS 1.0 e TLS 1.1 para compatibilidade com versões anteriores.

Dica

O Armazenamento do Azure conta com a implantação de SSL do Windows, que não é baseada em OpenSSL. Isso significa que ele não está exposto a vulnerabilidades relacionadas ao OpenSSL.

As contas do Armazenamento do Azure permitem que os clientes enviem e recebam dados com a versão mais antiga do TLS, com o TLS 1.0 e superior. Para impor medidas de segurança mais estritas, você pode configurar sua conta de armazenamento para exigir que os clientes enviem e recebam dados com uma versão mais recente do TLS. Se uma conta de armazenamento exigir uma versão mínima do TLS, todas as solicitações feitas com uma versão mais antiga falharão.

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 pacote de criptografia utilizado quando os clientes enviam e recebem os dados de uma conta de armazenamento depende da versão de TLS utilizada. Não é possível configurar uma conta de armazenamento para bloquear o uso de criptografias específicas, exceto exigindo uma versão mínima de 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.

Detectar a versão do TLS usada por aplicativos cliente

Ao impor uma versão mínima do TLS para sua conta de armazenamento, você corre o risco de rejeitar solicitações de clientes que estão enviando dados com uma versão mais antiga do TLS. Para entender como a configuração da versão mínima do TLS pode afetar os aplicativos cliente, a Microsoft recomenda que você habilite o registro em log para sua conta do Armazenamento do Microsoft Azure e analise os logs após um intervalo de tempo para detectar quais versões dos aplicativos cliente TLS estão usando.

Para registrar solicitações em sua conta de Armazenamento do Microsoft Azure e determinar a versão do TLS usada pelo cliente, você pode usar 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, 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.

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 o registro em log para sua conta de armazenamento, os logs estarão disponíveis no workspace do Log Analytics. Para obter mais informações, confira Criar um workspace do Log Analytics no portal do Azure.

  2. Navegue até 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. Selecione Adicionar configuração 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 registrará em log as solicitações de leitura e gravação para o 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 de criar a configuração de diagnóstico, as solicitações para a conta de armazenamento são registradas subsequentemente 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 Microsoft 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 aplicativos cliente acessaram a conta de armazenamento. Você pode analisar esses valores para decidir se os aplicativos cliente devem ser atualizados para usar uma versão mais recente do TLS ou se é aceitável uma falha na solicitação do cliente se ele não for enviado 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, você pode iniciar 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ê estiver usando um serviço que se conecta ao Armazenamento do Microsoft Azure, verifique se o serviço está usando a versão apropriada do TLS para enviar solicitações ao Armazenamento do Azure antes de definir a versão mínima necessária 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. Quando você cria uma conta de armazenamento com o PowerShell, a CLI do Azure ou um modelo do Azure Resource Manager, a propriedade MinimumTlsVersion não é definida por padrão e não retorna um valor até que você a defina explicitamente.

Quando a propriedade MinimumTlsVersion não está definida, seu valor pode ser exibido como uma cadeia de caracteres nula ou vazia, dependendo do contexto. A conta de armazenamento permitirá solicitações enviadas com o 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. Navegue até 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 de atualizar a versão mínima do TLS para a conta de armazenamento, pode levar até 30 segundos até que a alteração 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 necessária do TLS 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 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 necessária do TLS para uma conta de armazenamento proíbe chamadas feitas com uma versão mais antiga, você pode configurar 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 de TLS que não atende à versão mínima do TLS configurada para a conta, o Armazenamento do Microsoft Azure retorna o código de erro 400 (solicitação incorreta) e uma mensagem indicando que a versão do TLS usada não é permitida para fazer solicitações nessa conta de armazenamento.

Observação

Quando você configura uma versão do TLS mínima para uma conta de armazenamento, essa versão mínima é imposta na camada do aplicativo. As ferramentas que tentam determinar o suporte a TLS na camada de protocolo podem retornar versões do TLS além da versão mínima necessária quando são executadas diretamente no ponto de extremidade da conta de armazenamento.

Usar Azure Policy para auditar a conformidade

Se você tiver um grande número de contas de armazenamento, convém realizar uma auditoria para garantir que todas as contas sejam configuradas para a versão mínima do TLS que sua organização requer. Para auditar um conjunto de contas de armazenamento para sua conformidade, use o Azure Policy. 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 a manter esses recursos compatíveis com seus padrões empresariais e contratos 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 da auditoria cria um aviso quando um recurso não está em conformidade, mas não interrompe a solicitação. Para saber mais sobre efeitos, confira Entender os efeitos da Azure Policy.

Para criar uma política com um efeito de auditoria para a versão mínima do TLS com o portal do Azure, siga estas etapas:

  1. No portal do Azure, navegue até 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. Especifique 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, navegue até 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, você poderá visualizar 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 que o relatório de conformidade fique disponível depois que a atribuição de política for criada.

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

  1. No portal do Azure, navegue até 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 fazer uma busca detalhada no relatório para obter 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 em sua organização, você pode criar uma política que impeça a criação de uma nova conta de armazenamento que define o requisito mínimo de TLS para uma versão mais antiga do TLS do que a que é ditada pela política. Essa política também impedirá todas as alterações de configuração em uma conta existente se a configuração de versã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 forma que a versão mínima do TLS não respeitasse mais os padrões da sua organização. Para saber mais sobre efeitos, confira Entender os efeitos da Azure Policy.

Para criar uma política com um efeito de negação para uma versão mínima de TLS que seja menos que TLS 1.2, siga as mesmas etapas descritas em Usar Azure Policy para auditar a conformidade, mas forneça o JSON a seguir na seção policyRule da definição de 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 de negação e atribuí-la a um escopo, um usuário não poderá criar uma conta de armazenamento com uma versão de TLS mínima que seja mais antiga que 1.2. O usuário também não pode fazer alterações na configuração de uma conta de armazenamento existente que atualmente requer uma versão mínima de TLS anterior 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, um usuário deve ter 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 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 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 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.

Considerações de rede

Quando um cliente envia uma solicitação para a conta de armazenamento, o cliente estabelece uma conexão com o ponto de extremidade público da conta de armazenamento primeiro, antes de processar solicitações. A configuração de versão mínima do TLS é verificada depois que a conexão é estabelecida. Se a solicitação usar uma versão anterior do TLS do que a especificada pela configuração, a conexão continuará a ser bem-sucedida, mas a solicitação eventualmente falhará. 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