Zelf afdwingen van minimale TLS-versie in Azure Cosmos DB

VAN TOEPASSING OP: Nosql MongoDB Cassandra Gremlin Tabel

In dit artikel wordt beschreven hoe u een minimale versie van het TLS-protocol voor uw Cosmos DB-account kunt afdwingen met behulp van een selfservice-API.

Hoe minimale TLS-versie afdwingen werkt in Azure Cosmos DB

Vanwege het multitenant karakter van Cosmos DB is de service vereist om te voldoen aan de toegangs- en beveiligingsbehoeften van elke gebruiker. Om dit te bereiken, dwingt Cosmos DB minimale TLS-protocollen af op de toepassingslaag en niet lagere lagen in de netwerkstack waar TLS actief is. Deze afdwinging vindt plaats bij elke geverifieerde aanvraag voor een specifiek databaseaccount, volgens de instellingen die door de klant voor dat account zijn ingesteld.

De minimale servicebrede geaccepteerde versie is TLS 1.0. Deze selectie kan per account worden gewijzigd, zoals in de volgende sectie wordt besproken.

De minimale TLS-versie instellen voor mijn Cosmos DB-databaseaccount

Vanaf de API-versie 2022-11-15 van de Azure Cosmos DB Resource Provider-API wordt voor elk Cosmos DB-databaseaccount een nieuwe eigenschap weergegeven, genaamd minimalTlsVersion. Deze accepteert een van de volgende waarden:

  • Tls voor het instellen van de minimale versie op TLS 1.0.
  • Tls11 voor het instellen van de minimale versie op TLS 1.1.
  • Tls12 voor het instellen van de minimale versie op TLS 1.2.

De standaardwaarde voor nieuwe en bestaande accounts is Tls.

Belangrijk

Vanaf 1 april 2023 wordt de standaardwaarde voor nieuwe accounts overgezet naar Tls12.

Minimaal TLS-protocol instellen in Azure Cosmos DB met behulp van de portal

Deze selfservicefunctie is beschikbaar in de portal tijdens het maken en bewerken van een account. Azure Cosmos DB-accounts dwingen het TLS 1.2-protocol af. Azure Cosmos DB ondersteunt echter ook de volgende TLS-protocollen, afhankelijk van het geselecteerde API-type.

  • MongoDB: TLS 1.2

  • Cassandra: TLS 1.2

  • Table, SQL en Graph: TLS 1.0, TLS 1.1 en TLS 1.2

Stappen voor het instellen van minimaal TLS-protocol tijdens het maken van een account

Als u een API-type gebruikt dat alleen TLS 1.2 ondersteunt, ziet u op het tabblad Netwerken onderaan dat het TLS-protocol is uitgeschakeld.

Schermopname van API-type dat alleen TLS 1.2 ondersteunt.

Als u een API-type gebruikt dat meerdere TLS-protocollen accepteert, kunt u naar het tabblad Netwerken navigeren en is de optie Minimum Transport Layer Security Protocol beschikbaar. U kunt het geselecteerde protocol wijzigen door op de vervolgkeuzelijst te klikken en het gewenste protocol te selecteren.

Schermopname van API-type dat meerdere TLS-protocollen accepteert.

Nadat u uw account hebt ingesteld, kunt u op het tabblad Controleren en maken, onderaan in de sectie Netwerken, controleren of het geselecteerde TLS-protocol is ingesteld zoals u hebt opgegeven.

Schermopname van het geselecteerde TLS-protocol is ingesteld zoals u hebt opgegeven.

Stappen voor het instellen van het minimale TLS-protocol tijdens het bewerken van een account

  1. Navigeer naar uw Azure Cosmos DB-account op de Azure Portal.

  2. Selecteer Netwerken in het linkermenu en selecteer vervolgens het tabblad Connectiviteit.

  3. U vindt de optie Minimum Transport Layer Security Protocol. Als u een API-type gebruikt dat alleen TLS 1.2 ondersteunt, ziet u dat deze optie is uitgeschakeld. Anders kunt u het gewenste TLS-protocol selecteren door erop te klikken.

Schermopname van de optie minimale transportlaagbeveiligingsprotocol.

  1. Klik op Opslaan nadat u het TLS-protocol hebt gewijzigd.

Schermopname van opslaan na wijziging.

  1. Zodra het is opgeslagen, ontvangt u een melding dat het is gelukt. Het kan echter tot 15 minuten duren voordat deze wijziging van kracht wordt nadat de configuratie-update is voltooid.

Schermopname van de melding dat het is gelukt.

Instellen via Azure CLI

Als u wilt instellen met behulp van Azure CLI, gebruikt u de opdracht:

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

Instellen via Azure PowerShell

Als u wilt instellen met behulp van Azure PowerShell, gebruikt u de opdracht:

$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

Instellen via ARM-sjabloon

Als u deze eigenschap wilt instellen met behulp van een ARM-sjabloon, werkt u de bestaande sjabloon bij of exporteert u een nieuwe sjabloon voor uw huidige implementatie en voegt u vervolgens toe "minimalTlsVersion" aan de eigenschappen voor de databaseAccounts resources, met de gewenste minimale TLS-versiewaarde. Hier volgt een eenvoudig voorbeeld van een Azure Resource Manager-sjabloon met deze eigenschapsinstelling, met behulp van een parameter.

{
    {
      "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')]",
      }
    }
}

Belangrijk

Zorg ervoor dat u de andere eigenschappen voor uw account en onderliggende resources opneemt bij het opnieuw implementeren met deze eigenschap. Implementeer deze sjabloon niet in de huidige staat, anders worden alle accounteigenschappen opnieuw ingesteld.

Voor nieuwe accounts

U kunt accounts maken met de minimalTlsVersion eigenschap die is ingesteld met behulp van de bovenstaande ARM-sjabloon of door de PATCH-methode te wijzigen in een PUT op Azure CLI of Azure PowerShell. Zorg ervoor dat u de andere eigenschappen voor uw account opneemt.

Belangrijk

Als het account bestaat en de minimalTlsVersion eigenschap wordt ommited in een PUT-aanvraag, wordt de standaardwaarde van de eigenschap opnieuw ingesteld vanaf de API-versie 2022-11-15.

Het afdwingen van minimale TLS-versies controleren

Omdat Cosmos DB de minimale TLS-versie afdwingt op de toepassingslaag, zijn conventionele TLS-scanners die controleren of handshakes worden geaccepteerd door de service voor een specifieke TLS-versie onbetrouwbaar om afdwinging in Cosmos DB te testen. Raadpleeg het officiƫle opensource-hulpprogramma cosmos-tls-scanner om de afdwinging te controleren.

U kunt de huidige waarde van de minimalTlsVersion eigenschap ook ophalen met behulp van Azure CLI of Azure PowerShell.

Huidige waarde ophalen via Azure CLI

Voer de opdracht uit om de huidige waarde van de eigenschap op te halen met behulp van Azure CLI:

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

Huidige waarde ophalen via Azure PowerShell

Voer de opdracht uit om de huidige waarde van de eigenschap op te halen met behulp van Azure PowerShell:

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

Volgende stappen

Zie Overzicht van databasebeveiliging in Azure Cosmos DB voor meer informatie over beveiliging in Azure Cosmos DB .