Partilhar via


Imposição de versão mínima de TLS autogerida no Azure Cosmos DB

APLICA-SE A: NoSQL MongoDB Cassandra Gremlin Tabela

Este artigo descreve como impor uma versão mínima do protocolo TLS para sua conta do Cosmos DB, usando uma API de autoatendimento.

Como funciona a imposição de versão mínima de TLS no Azure Cosmos DB

Devido à natureza multilocatária do Cosmos DB, o serviço é necessário para atender às necessidades de acesso e segurança de cada usuário. Para conseguir isso, o Cosmos DB impõe protocolos TLS mínimos na camada de aplicativo, e não camadas inferiores na pilha de rede onde o TLS opera. Essa imposição ocorre em qualquer solicitação autenticada para uma conta de banco de dados específica, de acordo com as configurações definidas nessa conta pelo cliente.

A versão mínima aceita em todo o serviço é TLS 1.2. Essa seleção pode ser alterada por conta, conforme discutido na seção a seguir.

Como definir a versão mínima do TLS para minha conta de banco de dados do Cosmos DB

A partir da versão 2022-11-15 da API do Provedor de Recursos do Azure Cosmos DB, uma nova propriedade é exposta para cada conta de banco de dados do Cosmos DB, chamada minimalTlsVersion. Aceita o seguinte valor:

  • Tls12 para definir a versão mínima para TLS 1.2

O valor padrão para novas contas é Tls12.

Definir Protocolo TLS Mínimo no Azure Cosmos DB usando o Portal

Este recurso de autoatendimento está disponível no Portal durante a criação e edição de uma conta. As Contas do Azure Cosmos DB impõem o protocolo TLS 1.2. No entanto, o Azure Cosmos DB também dá suporte aos seguintes protocolos TLS, dependendo do tipo de API selecionado.

  • MongoDB: TLS 1,2

  • Cassandra: TLS 1,2

  • Tabela, SQL e Gráfico: TLS 1,2

Etapas para definir o protocolo TLS mínimo ao criar uma conta

Se você estiver usando um tipo de API que suporte apenas TLS 1.2, você notará na guia Rede na parte inferior o protocolo TLS desativado.

Screenshot do Kind de API que suporta somente TLS 1.2.

Se você estiver usando um tipo de API que aceite vários protocolos TLS, poderá navegar até a guia Rede e a opção Protocolo de segurança da camada de transporte mínimo estará disponível. Você pode alterar o protocolo selecionado apenas clicando na lista suspensa e selecionando o protocolo desejado.

Captura de tela do tipo de API que aceita vários protocolos TLS.

Depois de configurar sua conta, você pode verificar na guia Revisar + criar, na parte inferior da seção Rede, se o Protocolo TLS selecionado está definido como você especificou.

A captura de tela do Protocolo TLS selecionado é definida como você especificou.

Etapas para definir o protocolo TLS mínimo ao editar uma conta

  1. Navegue até sua conta do Azure Cosmos DB no portal do Azure.

  2. Selecione Rede no menu esquerdo e, em seguida, selecione a guia Conectividade.

  3. Você encontrará a opção Protocolo Mínimo de Segurança da Camada de Transporte. Se você estiver usando um tipo de API que suporte apenas TLS 1.2, você notará essa opção desativada. Caso contrário, você poderá selecionar o protocolo TLS desejado apenas clicando nele.

Captura de tela da opção de protocolo de segurança da camada de transporte mínimo.

  1. Clique em Salvar depois de alterar o protocolo TLS.

Captura de tela de salvar após a alteração.

  1. Depois de salvo, você receberá uma notificação de sucesso. Ainda assim, essa alteração pode levar até 15 minutos para entrar em vigor após a conclusão da atualização de configuração.

Captura de tela da notificação de sucesso.

Definir via CLI do Azure

Para definir usando a CLI do Azure, use o comando:

rg="myresourcegroup"
dbName="mycosmosdbaccount"
minimalTlsVersion="Tls12"
az cosmosdb update -n $dbName -g $rg --minimal-tls-version $minimalTlsVersion

Definir através do Azure PowerShell

Para definir usando o Azure PowerShell, use o comando:

$minimalTlsVersion = "Tls12"
Update-AzCosmosDBAccount -ResourceGroupName myresourcegroup -Name mycosmosdbaccount -MinimalTlsVersion $minimalTlsVersion

Definir via modelo ARM

Para definir essa propriedade usando um modelo ARM, atualize seu modelo existente ou exporte um novo modelo para sua implantação atual e, em seguida, adicione "minimalTlsVersion" às propriedades dos databaseAccounts recursos, com o valor mínimo desejado da versão TLS. Fornecido aqui está um exemplo básico de um modelo do Azure Resource Manager com essa configuração de propriedade, usando um parâmetro.

{
    {
      "type": "Microsoft.DocumentDB/databaseAccounts",
      "name": "mycosmosdbaccount",
      "apiVersion": "2022-11-15",
      "location": "[parameters('location')]",
      "kind": "GlobalDocumentDB",
      "properties": {
        "consistencyPolicy": {
          "defaultConsistencyLevel": "[parameters('defaultConsistencyLevel')]",
          "maxStalenessPrefix": 1,
          "maxIntervalInSeconds": 5
        },
        "locations": [
          {
            "locationName": "[parameters('location')]",
            "failoverPriority": 0
          }
        ],
        "locations": "[variable('locations')]",
        "databaseAccountOfferType": "Standard",
        "minimalTlsVersion": "[parameters('minimalTlsVersion')]",
      }
    }
}

Importante

Certifique-se de incluir as outras propriedades na sua conta e nos recursos filho ao reimplantar com esta propriedade. Não implante este modelo como está ou ele redefinirá todas as propriedades da sua conta.

Para novas contas

Você pode criar contas com a propriedade minimalTlsVersion definida usando o modelo ARM acima, ou usando a CLI do Azure ou o Azure PowerShell. Execute o comando:

az cosmosdb create --name <CosmosDBAccountName> \
  --resource-group <ResourceGroupName> \
  --kind GlobalDocumentDB \
  --locations regionName=<Region> \
  --minimal-tls-version "Tls12"
New-AzCosmosDBAccount `
  -ResourceGroupName "<YourResourceGroupName>" `
  -Name "<YourCosmosDBAccountName>" `
  -Location "<AzureRegion>" `
  -Kind GlobalDocumentDB `
  -EnableAutomaticFailover $true `
  -MinimalTlsVersion "Tls12"

Como verificar a imposição de versão mínima do TLS

Como o Cosmos DB impõe a versão mínima do TLS na camada de aplicação, os scanners TLS convencionais que verificam se os handshakes são aceites pelo serviço para uma versão específica do TLS não são fiáveis para testar a imposição no Cosmos DB. Para verificar o cumprimento, consulte a ferramenta oficial de código aberto cosmos-tls-scanner.

Você também pode obter o valor atual da propriedade usando a CLI do Azure ou o minimalTlsVersion Azure PowerShell.

Obtenha o valor atual por meio da CLI do Azure

Para obter o valor atual da propriedade usando a CLI do Azure, execute o comando:

subId=$(az account show --query id -o tsv)
rg="myresourcegroup"
dbName="mycosmosdbaccount"
az rest --uri "/subscriptions/$subId/resourceGroups/$rg/providers/Microsoft.DocumentDB/databaseAccounts/$dbName?api-version=2022-11-15" --method GET

Obtenha o valor atual por meio do Azure PowerShell

Para obter o valor atual da propriedade usando o Azure PowerShell, execute o comando:

Get-AzCosmosDBAccount -ResourceGroupName myresourcegroup -Name mycosmosdbaccount