Share via


Imposição de versão mínima do TLS self-service no Azure Cosmos DB

APLICA-SE A: NoSQL MongoDB Cassandra Gremlin Tabela

Este artigo aborda como impor uma versão mínima do protocolo TLS para a sua conta do Cosmos DB através de uma API self-service.

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

Devido à natureza multi-inquilino do Cosmos DB, o serviço é necessário para satisfazer as necessidades de acesso e segurança de cada utilizador. Para tal, o Cosmos DB impõe protocolos TLS mínimos na camada da aplicação e não camadas inferiores na pilha de rede onde o TLS opera. Esta imposição ocorre em qualquer pedido autenticado para uma conta de base de dados específica, de acordo com as definições definidas nessa conta pelo cliente.

A versão mínima aceite em todo o serviço é o TLS 1.0. Esta seleção pode ser alterada numa base por conta, conforme discutido na secção seguinte.

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

A partir da versão da API 2022-11-15 da API do Fornecedor de Recursos do Azure Cosmos DB, é exposta uma nova propriedade para cada conta de base de dados do Cosmos DB, denominada minimalTlsVersion. Aceita um dos seguintes valores:

  • Tls para definir a versão mínima como TLS 1.0.
  • Tls11 para definir a versão mínima como TLS 1.1.
  • Tls12 para definir a versão mínima como TLS 1.2.

O valor predefinido para contas novas e existentes é Tls.

Importante

A 1 de abril de 2023, o valor predefinido para novas contas será mudado para Tls12.

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

Esta funcionalidade self-service está disponível no Portal ao criar e editar uma conta. As Contas do Azure Cosmos DB impõem o protocolo TLS 1.2. No entanto, o Azure Cosmos DB também suporta os seguintes protocolos TLS, consoante o tipo de API selecionado.

  • MongoDB: TLS 1.2

  • Cassandra: TLS 1.2

  • Tabela, SQL e Gráfico: TLS 1.0, TLS 1.1 e TLS 1.2

Passos para definir o Protocolo TLS Mínimo ao criar uma conta

Se estiver a utilizar um Tipo de API que suporte apenas o TLS 1.2, irá reparar no separador Rede na parte inferior do protocolo TLS desativado.

Captura de ecrã do Tipo de API que suporta apenas o TLS 1.2.

Se estiver a utilizar um Tipo de API que aceita vários protocolos TLS, pode navegar para o separador Rede e a opção Protocolo de Segurança de Camada de Transporte Mínimo está disponível. Pode alterar o protocolo selecionado ao clicar no menu pendente e selecionar o protocolo pretendido.

Captura de ecrã do Tipo de API que aceita vários protocolos TLS.

Depois de configurar a sua conta, pode rever no separador Rever + criar, na parte inferior da secção Rede, que o Protocolo TLS selecionado está definido conforme especificou.

Captura de ecrã a mostrar o Protocolo TLS selecionado, conforme especificou.

Passos para definir o Protocolo TLS Mínimo ao editar uma conta

  1. Navegue para a sua conta do Azure Cosmos DB no portal do Azure.

  2. Selecione Rede no menu esquerdo e, em seguida, selecione o separador Conectividade.

  3. Encontrará a opção Protocolo Mínimo de Segurança de Camada de Transporte. Se estiver a utilizar um Tipo de API que suporte apenas o TLS 1.2, irá reparar que esta opção está desativada. Caso contrário, poderá selecionar o Protocolo TLS pretendido ao clicar no mesmo.

Captura de ecrã a mostrar a opção de protocolo de segurança de camada de transporte mínima.

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

Captura de ecrã a mostrar a opção Guardar após a alteração.

  1. Assim que for guardada, receberá uma notificação de êxito. Ainda assim, esta alteração pode demorar até 15 minutos a entrar em vigor após a conclusão da atualização de configuração.

Captura de ecrã a mostrar a notificação de êxito.

Definir através da CLI do Azure

Para definir com a CLI do Azure, utilize o comando :

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

Definir através de Azure PowerShell

Para definir com Azure PowerShell, utilize o comando :

$minimalTlsVersion = 'Tls12'
$patchParameters = @{
  ResourceGroupName = 'myresourcegroup'
  Name = 'mycosmosdbaccount'
  ResourceProviderName = 'Microsoft.DocumentDB'
  ResourceType = 'databaseaccounts'
  ApiVersion = '2022-11-15'
  Payload = "{ 'properties': {
      'minimalTlsVersion': '$minimalTlsVersion'
  } }"
  Method = 'PATCH'
}
Invoke-AzRestMethod @patchParameters

Definir através do modelo do ARM

Para definir esta propriedade com um modelo do ARM, atualize o modelo existente ou exporte um novo modelo para a implementação atual e, em seguida, adicione "minimalTlsVersion" às propriedades dos databaseAccounts recursos, com o valor de versão TLS mínimo pretendido. Fornecido aqui é um exemplo básico de um modelo de Resource Manager do Azure com esta definição de propriedade, através de 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 que inclui as outras propriedades para a sua conta e recursos subordinados ao reimplementar com esta propriedade. Não implemente este modelo tal como está ou irá repor todas as propriedades da sua conta.

Para novas contas

Pode criar contas com a minimalTlsVersion propriedade definida através do modelo arm acima ou ao alterar o método PATCH para um PUT na CLI do Azure ou Azure PowerShell. Certifique-se de que inclui as outras propriedades da sua conta.

Importante

Se a conta existir e a minimalTlsVersion propriedade for omitida num pedido PUT, a propriedade será reposta para o valor predefinido, a partir da versão da API 2022-11-15.

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

Uma vez que o Cosmos DB impõe a versão mínima do TLS na camada da 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 a imposição, consulte a ferramenta oficial de cosmos-tls-scanner de código aberto.

Também pode obter o valor atual da propriedade com a minimalTlsVersion CLI do Azure ou Azure PowerShell.

Obter o valor atual através da CLI do Azure

Para obter o valor atual da propriedade com 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

Obter o valor atual através de Azure PowerShell

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

$getParameters = @{
  ResourceGroupName = 'myresourcegroup'
  Name = 'mycosmosdbaccount'
  ResourceProviderName = 'Microsoft.DocumentDB'
  ResourceType = 'databaseaccounts'
  ApiVersion = '2022-11-15'
  Method = 'GET'
}
Invoke-AzRestMethod @getParameters

Passos seguintes

Para obter mais informações sobre segurança no Azure Cosmos DB, veja Descrição geral da segurança da base de dados no Azure Cosmos DB .