Impor uma versão mínima necessária do Transport Layer Security (TLS) para solicitações a uma conta de armazenamento

A comunicação entre um aplicativo cliente e uma conta de Armazenamento do Azure é criptografada usando TLS (Transport Layer Security). 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, consulte Transport Layer Security.

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

Gorjeta

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

As contas de Armazenamento do Azure permitem que os clientes enviem e recebam dados com a versão mais antiga do TLS, TLS 1.0 e superior. Para impor medidas de segurança mais rigorosas, 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 (Detection-Remediation-Audit-Governance) para gerenciar continuamente 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, consulte Configurar TLS (Transport Layer Security) para um aplicativo cliente.

Nota

O conjunto de codificação usado quando os clientes enviam e recebem dados de uma conta de armazenamento depende da versão TLS usada. Não é possível 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 você precisar da capacidade de permitir apenas pacotes de codificação específicos ao se conectar à sua conta de armazenamento, considere usar 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 TLS e pacotes de codificação no Gateway de Aplicativo do Azure.

Detetar a versão 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 log para sua conta de Armazenamento do Azure e analise os logs após um intervalo de tempo para detetar quais versões dos aplicativos cliente TLS estão usando.

Para registrar solicitações em sua conta de Armazenamento do Azure e determinar a versão TLS usada pelo cliente, você pode usar o log do Armazenamento do Azure no Azure Monitor. Para obter mais informações, consulte Monitorar o Armazenamento do Azure.

O registo do Armazenamento do Azure no Azure Monitor suporta a utilização de consultas de registo para analisar dados de registo. Para consultar logs, você pode usar um espaço de trabalho do Azure Log Analytics. Para saber mais sobre consultas de log, consulte Tutorial: Introdução às consultas do Log Analytics.

Para registar dados do Armazenamento do Azure com o Azure Monitor e analisá-los com o Azure Log Analytics, primeiro tem de criar uma definição de diagnóstico que indique quais os tipos de pedidos e para quais serviços de armazenamento pretende registar os dados. Para criar uma definição de diagnóstico no portal do Azure, siga estes passos:

  1. Crie uma nova área de trabalho do Log Analytics na subscrição que contém a sua conta de Armazenamento do Azure. Depois de configurar o registo para a sua conta de armazenamento, os registos estarão disponíveis na área de trabalho do Log Analytics. Para obter mais informações, consulte Criar uma área de trabalho do Log Analytics no portal do Azure.

  2. Navegue para a sua conta de armazenamento no portal do Azure.

  3. Na secção Monitorização, selecione Definiçõ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 no armazenamento de Blob.

  5. Selecione Adicionar definição de diagnóstico.

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

  7. Em Detalhes da categoria, na seção log , escolha quais tipos de solicitações registrar. Você pode registrar solicitações de leitura, gravação e exclusão. Por exemplo, escolher StorageRead e StorageWrite registrará 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 espaço de trabalho do Log Analytics criado anteriormente, conforme mostrado na imagem a seguir.

    Captura de ecrã a mostrar como criar uma definição de diagnóstico para registar pedidos

Depois de criar a definição de diagnóstico, os pedidos para a conta de armazenamento são registados posteriormente de acordo com essa definição. Para obter mais informações, consulte Criar configuração de diagnóstico para coletar logs de recursos e métricas no Azure.

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

Consultar solicitações registradas por versão TLS

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

Para determinar quantas solicitações foram feitas no armazenamento de Blob com diferentes versões do TLS nos últimos sete dias, abra o espaço de trabalho do Log Analytics. Em seguida, cole a consulta a seguir em uma nova consulta de log e execute-a. Lembre-se de substituir os valores de espaço reservado entre colchetes pelos seus próprios 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 de análise de log para retornar a versão 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 ajudá-lo 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 falhar 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 mais antiga que o TLS 1.2 nos últimos sete dias, cole a consulta a seguir em uma nova consulta de log e execute-a. Lembre-se de substituir os valores de espaço reservado entre colchetes pelos seus próprios valores:

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

Corrija os 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 falhar solicitações feitas com uma versão mais antiga do TLS, você pode começar a aplicar 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 Azure, verifique se esse 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, consulte 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 PowerShell, 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ê o defina explicitamente.

Quando a propriedade MinimumTlsVersion não está definida, seu valor pode ser exibido como null ou uma cadeia de caracteres vazia, dependendo do contexto. A conta de armazenamento permitirá solicitaçõ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. Navegue para a sua conta de armazenamento no portal do Azure.

  2. Em Definições, selecione 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 ecrã a mostrar como configurar a versão mínima do TLS no portal do Azure.

Nota

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.

A configuração da versão mínima do TLS requer a versão 2019-04-01 ou posterior do provedor de recursos de Armazenamento do Azure. Para obter mais informações, consulte Azure Storage Resource Provider REST API.

Verifique 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 desempenho ideal, você pode usar o Azure Resource Graph Explorer no portal do Azure. Para saber mais sobre como usar o Gerenciador de Gráficos de Recursos, consulte Guia de início rápido: executar sua primeira consulta do Gráfico 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 do 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 TLS mínima necessária 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, consulte Configurar TLS (Transport Layer Security) para um aplicativo cliente.

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

Nota

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

Usar a Política do Azure para auditar a conformidade

Se você tiver um grande número de contas de armazenamento, convém executar uma auditoria para certificar-se de que todas as contas estão configuradas para a versão mínima do TLS que sua organização exige. Para auditar um conjunto de contas de armazenamento quanto à sua conformidade, use a Política do Azure. 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-o a manter esses recursos em conformidade com os seus padrões empresariais e contratos de nível de serviço. Para obter mais informações, consulte Visão geral da Política do Azure.

Criar uma política com um efeito de auditoria

A Política do Azure dá suporte a efeitos que determinam o que acontece quando uma regra de política é avaliada em relação a um recurso. O efeito Auditoria cria um aviso quando um recurso não está em conformidade, mas não interrompe a solicitação. Para obter mais informações sobre efeitos, consulte Compreender os efeitos da Política do Azure.

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 para o serviço Azure Policy.

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

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

  4. Para o campo Local da definição, selecione 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, 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. Guardar a política.

Atribuir a política

Em seguida, atribua a política a um recurso. O âmbito da política corresponde a esse recurso e a quaisquer recursos por baixo deste. Para obter mais informações sobre atribuição de política, consulte Estrutura de atribuição de política do Azure.

Para atribuir a política com o portal do Azure, siga estes passos:

  1. No portal do Azure, navegue para o serviço Azure Policy.
  2. Na seção Criação, selecione Atribuições.
  3. Selecione Atribuir política para criar uma nova atribuição de política.
  4. Para o campo Escopo , selecione o escopo da atribuição de política.
  5. Para o campo Definição de política , selecione o botão Mais e, em seguida, selecione a política definida na seção anterior na lista.
  6. Indique um nome para a atribuição de política. A descrição é opcional.
  7. Deixe a aplicação da política definida como Habilitada. Esta definição não tem efeito na política de auditoria.
  8. Selecione Rever + criar para criar a atribuição.

Ver relatório de conformidade

Depois de atribuir a política, você pode exibir o relatório de conformidade. O relatório de conformidade de uma política de auditoria fornece informações sobre quais contas de armazenamento não estão em conformidade com a política. Para obter mais informações, consulte Obter dados de conformidade de políticas.

Pode levar vários minutos para que o relatório de conformidade fique disponível após a atribuição de política ser criada.

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

  1. No portal do Azure, navegue para 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 detalhar o relatório para obter detalhes adicionais, 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 a Política do Azure para impor a versão mínima do TLS

A Política do Azure dá suporte à governança da nuvem, garantindo que os recursos do Azure cumpram 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 defina o requisito mínimo de TLS para uma versão mais antiga do TLS do que a 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 do TLS para essa conta não estiver em conformidade com a política.

A política de imposição usa o efeito Negar para impedir uma solicitação que criaria ou modificaria uma conta de armazenamento para que a versão mínima do TLS não aderisse mais aos padrões da sua organização. Para obter mais informações sobre efeitos, consulte Compreender os efeitos da Política do Azure.

Para criar uma política com um efeito Deny para uma versão mínima do TLS menor que o TLS 1.2, siga as mesmas etapas descritas em Usar a Política do Azure para auditar a conformidade, mas forneça o seguinte JSON 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 Negar e atribuí-la a um escopo, um usuário não pode criar uma conta de armazenamento com uma versão TLS mínima anterior à 1.2. Um usuário também não pode fazer alterações de configuração em uma conta de armazenamento existente que atualmente requer uma versão mínima do TLS mais antiga que a 1.2. Tentar fazer isso resulta em 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 Deny requer que a versão mínima do TLS seja definida como TLS 1.2.

Captura de ecrã a mostrar 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 de controle de acesso baseado em função do Azure (Azure RBAC) que fornecem essas permissões incluem a ação Microsoft.Storage/storageAccounts/write ou Microsoft.Storage/storageAccounts/* . As funções incorporadas com esta 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, eles incluem 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 ter o escopo definido no 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, consulte Entender o escopo do RBAC do Azure.

Tenha cuidado para restringir a atribuição dessas funções apenas àqueles 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 de permissões de que precisam para realizar suas tarefas. Para obter mais informações sobre como gerenciar o acesso com o RBAC do Azure, consulte Práticas recomendadas para o RBAC do Azure.

Nota

As funções clássicas de administrador de subscrição Administrador de Serviços e Coadministrador incluem o equivalente à função de Proprietário do Azure Resource Manager. A função Proprietário inclui todas as ações, para que um usuário com uma dessas funções administrativas também possa criar e gerenciar contas de armazenamento. Para obter mais informações, consulte Funções do Azure, Funções do Microsoft Entra e funções clássicas de administrador de assinatura.

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 quaisquer 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 do TLS anterior à especificada pela configuração, a conexão continuará a ser bem-sucedida, mas a solicitação acabará falhando. Para obter mais informações sobre pontos de extremidade públicos para o Armazenamento do Azure, consulte Sintaxe de URI de recurso.

Próximos passos