Freigeben über


Erzwingen von TLS-Mindestversionen in Azure Cosmos DB als Self-Service

GILT FÜR: NoSQL MongoDB Kassandra Kobold Tabelle

In diesem Artikel wird erläutert, wie Sie mithilfe einer Self-Service-API eine Mindestversion des TLS-Protokolls (Transport Layer Security) für Ihr Cosmos DB-Konto erzwingen.

Funktionsweise der Erzwingung der TLS-Mindestversion in Azure Cosmos DB

Die mehrinstanzenfähige Natur von Cosmos DB erfordert den Dienst, um die Zugriffs- und Sicherheitsanforderungen jedes Benutzers zu erfüllen. Um dies zu erreichen, erzwingt Cosmos DB mindeste TLS-Protokolle auf der Anwendungsebene und nicht auf niedrigeren Ebenen im Netzwerkstapel, in dem TLS betrieben wird. Diese Erzwingung erfolgt bei jeder authentifizierten Anforderung an ein bestimmtes Datenbankkonto gemäß den Einstellungen, die der Kunde für dieses Konto festgelegt hat.

Die mindestens serviceweite akzeptierte Version ist TLS 1.2. Diese Auswahl kann auf Kontobasis geändert werden, wie im folgenden Abschnitt erläutert.

Festlegen der TLS-Mindestversion für mein Cosmos DB-Datenbankkonto

Ab Version 2022-11-15 der Azure Cosmos DB-Ressourcenanbieter-API wird für jedes Cosmos DB-Datenbankkonto eine neue Eigenschaft verfügbar gemacht, die aufgerufen minimalTlsVersionwird. Er akzeptiert den folgenden Wert:

  • Tls12 zum Festlegen der Mindestversion auf TLS 1.2

Der Standardwert für neue Konten lautet Tls12.

Wichtig

Ab dem 31. August 2025 müssen alle Cosmos DB-Datenbankkonten Transport Layer Security (TLS) 1.2 oder höher verwenden, da die Unterstützung für TLS 1.0 und 1.1 eingestellt wird.

Ab dem 31. März 2025 ist die Unterstützung für TLS 1.3 für Azure Cosmos DB aktiviert.

Festlegen des mindesten TLS-Protokolls mithilfe des Azure-Portals

Dieses Self-Serve-Feature ist im Azure-Portal beim Erstellen und Bearbeiten eines Kontos verfügbar. Azure Cosmos DB-Konten erzwingen das TLS 1.2-Protokoll. Azure Cosmos DB unterstützt jedoch je nach ausgewählter API-Art auch die folgenden TLS-Protokolle.

  • MongoDB: TLS 1.2
  • Cassandra: TLS 1.2
  • Tabelle, SQL und Graph: TLS 1.2

Schritte zum Festlegen des mindesten TLS-Protokolls beim Erstellen eines Kontos

Wenn Sie eine API-Art verwenden, die nur TLS 1.2 unterstützt, werden Sie auf der Registerkarte "Netzwerk " feststellen, dass das TLS-Protokoll deaktiviert ist.

Screenshot der API-Art, die nur TLS 1 Punkt 2 unterstützt.

Wenn Sie eine API-Art verwenden, die mehrere TLS-Protokolle akzeptiert, können Sie zur Registerkarte " Netzwerk " navigieren und die Option "Minimum Transport Layer Security Protocol " verfügbar sein. Sie können das ausgewählte Protokoll ändern, indem Sie einfach auf die Dropdownliste klicken und das gewünschte Protokoll auswählen.

Screenshot des API-Typs, der mehrere TLS-Protokolle akzeptiert.

Nach dem Einrichten Ihres Kontos können Sie auf der Registerkarte " Überprüfen + erstellen " unter "Netzwerk" überprüfen, dass das ausgewählte TLS-Protokoll wie angegeben festgelegt ist.

Screenshot des ausgewählten TLS-Protokolls, das wie angegeben festgelegt ist.

Schritte zum Festlegen des minimalen TLS-Protokolls beim Bearbeiten eines Kontos

  1. Navigieren Sie im Azure-Portal zu Ihrem Azure Cosmos DB-Konto.

  2. Wählen Sie im Randleistenmenü " Netzwerk " und dann die Registerkarte "Konnektivität " aus.

  3. Sie finden die Option "Minimum Transport Layer Security Protocol" . Wenn Sie eine API-Art verwenden, die nur TLS 1.2 unterstützt, werden Sie feststellen, dass diese Option deaktiviert ist. Andernfalls können Sie das gewünschte TLS-Protokoll auswählen, indem Sie einfach darauf klicken.

    Screenshot der Option „Minimum Transport Layer Security Protocol“.

  4. Wählen Sie "Speichern" aus, nachdem Sie das TLS-Protokoll geändert haben.

    Screenshot des Speicherns nach der Änderung.

  5. Nachdem sie gespeichert wurde, erhalten Sie eine Erfolgsbenachrichtigung. Dennoch kann es bis zu 15 Minuten dauern, bis diese Änderung wirksam wird, nachdem das Konfigurationsupdate abgeschlossen ist.

    Screenshot: Erfolgsbenachrichtigung.

Festlegen über die Azure-Befehlszeilenschnittstelle

Verwenden Sie zum Festlegen über die Azure CLI den Befehl:

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

Festlegen über Azure PowerShell

Verwenden Sie zum Festlegen über Azure PowerShell den Befehl:

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

Festlegen per ARM-Vorlage

Wenn Sie diese Eigenschaft mithilfe einer ARM-Vorlage festlegen möchten, aktualisieren Sie Ihre vorhandene Vorlage, oder exportieren Sie eine neue Vorlage für Ihre aktuelle Bereitstellung. Fügen Sie dann "minimalTlsVersion" mit dem gewünschten Wert für die TLS-Mindestversion zu den Eigenschaften für die databaseAccounts-Ressourcen hinzu. Das folgende Beispiel zeigt eine einfache Azure Resource Manager-Vorlage mit dieser Eigenschaftseinstellung mithilfe eines Parameters.

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

Wichtig

Schließen Sie bei der erneuten Bereitstellung mit dieser Eigenschaft auch die anderen Eigenschaften für Ihr Konto und Ihre untergeordneten Ressourcen mit ein. Stellen Sie diese Vorlage nicht wie folgt bereit, oder sie setzt alle Ihre Kontoeigenschaften zurück.

Für neue Konten

Sie können Konten mit dem Eigenschaftensatz mithilfe der minimalTlsVersion vorherigen ARM-Vorlage oder mit Azure CLI oder Azure PowerShell erstellen:

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"

Überprüfen der Erzwingung der TLS-Mindestversion

Da Cosmos DB die TLS-Mindestversion auf Anwendungsebene erzwingt, sind herkömmliche TLS-Scanner, die überprüfen, ob Handshakes vom Dienst für eine bestimmte TLS-Version akzeptiert werden, zum Testen der Erzwingung in Cosmos DB unzuverlässig. Um die Durchsetzung zu überprüfen, verwenden Sie das offizielle Open-Source-Tool „cosmos-tls-scanner“.

Sie können den aktuellen Wert der minimalTlsVersion-Eigenschaft auch mithilfe der Azure CLI oder mit Azure PowerShell abrufen.

Abrufen des aktuellen Werts über die Azure CLI

Führen Sie den Befehl aus, um den aktuellen Wert der Eigenschaft mithilfe der Azure CLI abzurufen:

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

Abrufen des aktuellen Werts über Azure PowerShell

Führen Sie den Befehl aus, um den aktuellen Wert der Eigenschaft mithilfe von Azure PowerShell abzurufen:

Get-AzCosmosDBAccount -ResourceGroupName myresourcegroup -Name mycosmosdbaccount