Sdílet prostřednictvím


Samoobslužné vynucení minimální verze protokolu TLS ve službě Azure Cosmos DB

PLATÍ PRO: NoSQL MongoDB Cassandra Skřítek Stůl

Tento článek popisuje, jak vynutit minimální verzi protokolu TLS (Transport Layer Security) pro váš účet Cosmos DB pomocí samoobslužného rozhraní API.

Jak funguje minimální vynucování verzí protokolu TLS ve službě Azure Cosmos DB

Multitenantní povaha služby Cosmos DB vyžaduje, aby služba splňovala požadavky na přístup a zabezpečení každého uživatele. Aby toho bylo dosaženo, Služba Cosmos DB vynucuje minimální protokoly TLS v aplikační vrstvě, a ne v nižších vrstvách v zásobníku sítě, kde funguje protokol TLS. K tomuto vynucení dochází u všech ověřených požadavků na konkrétní databázový účet podle nastavení nastaveného zákazníkem.

Minimální přijatá verze pro celou službu je TLS 1.2. Tento výběr lze změnit na základě jednotlivých účtů, jak je popsáno v následující části.

Nastavení minimální verze protokolu TLS pro účet databáze Cosmos DB

Od verze 2022-11-15 rozhraní API poskytovatele prostředků Azure Cosmos DB se pro každý účet databáze Cosmos DB, který se nazývá minimalTlsVersion, zpřístupněna nová vlastnost . Přijímá následující hodnotu:

  • Tls12 pro nastavení minimální verze na TLS 1.2

Výchozí hodnota pro nové účty je Tls12.

Důležité

Od 31. srpna 2025 musí všechny účty databáze Cosmos DB používat protokol TLS (Transport Layer Security) 1.2 nebo vyšší, protože podpora protokolu TLS 1.0 a 1.1 je vyřazena.

Od 31. března 2025 je pro Službu Azure Cosmos DB povolená podpora protokolu TLS 1.3 .

Nastavení minimálního protokolu TLS pomocí webu Azure Portal

Tato samoobslužná funkce je k dispozici na webu Azure Portal při vytváření a úpravách účtu. Účty Azure Cosmos DB vynucuje protokol TLS 1.2. Azure Cosmos DB ale podporuje také následující protokoly TLS v závislosti na vybraném typu rozhraní API.

  • MongoDB: TLS 1.2
  • Cassandra: TLS 1.2
  • Tabulka, SQL a Graf: TLS 1.2

Postup nastavení minimálního protokolu TLS při vytváření účtu

Pokud používáte druh rozhraní API, který podporuje pouze protokol TLS 1.2, na kartě Sítě si všimnete, že protokol TLS je zakázaný.

Snímek obrazovky typu API, který podporuje pouze protokol TLS 1 bod 2

Pokud používáte druh rozhraní API, který přijímá více protokolů TLS, můžete přejít na kartu Sítě a je k dispozici možnost Minimum Transport Layer Security Protocol . Vybraný protokol můžete změnit tak, že kliknete na rozevírací seznam a vyberete požadovaný protokol.

Snímek obrazovky typu API, který přijímá více protokolů TLS

Po nastavení účtu si můžete projít kartu Zkontrolovat a vytvořit v části Sítě, že vybraný protokol TLS je nastavený podle vámi zadaného nastavení.

Snímek obrazovky s vybraným protokolem TLS je nastavený tak, jak jste zadali.

Postup nastavení minimálního protokolu TLS při úpravě účtu

  1. Na webu Azure Portal přejděte ke svému účtu služby Azure Cosmos DB.

  2. V nabídce bočního panelu vyberte Sítě a pak vyberte kartu Připojení .

  3. Najdete možnost Minimální protokol TLS (Transport Layer Security Protocol ). Pokud používáte druh rozhraní API, který podporuje jenom protokol TLS 1.2, všimnete si, že tato možnost je zakázaná. V opačném případě můžete požadovaný protokol TLS vybrat tak, že na něj kliknete.

    Snímek obrazovky s možností minimálního protokolu zabezpečení přenosové vrstvy

  4. Po změně protokolu TLS vyberte Uložit .

    Snímek obrazovky uložené změny

  5. Po uložení obdržíte oznámení o úspěchu. Tato změna může trvat až 15 minut, než se projeví po dokončení aktualizace konfigurace.

    Snímek obrazovky s oznámením o úspěchu

Nastavení přes Azure CLI

K nastavení pomocí Azure CLI použijte příkaz:

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

Nastavení přes Azure PowerShell

K nastavení pomocí Azure PowerShellu použijte příkaz:

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

Nastavení prostřednictvím šablony ARM

Pokud chcete tuto vlastnost nastavit pomocí šablony ARM, aktualizujte stávající šablonu nebo vyexportujte novou šablonu pro aktuální nasazení a pak přidejte "minimalTlsVersion" do vlastností prostředků databaseAccounts požadovanou minimální hodnotu verze protokolu TLS. Následující příklad ukazuje základní šablonu Azure Resource Manageru s tímto nastavením vlastnosti pomocí parametru.

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

Důležité

Při opětovném nasazení s touto vlastností nezapomeňte zahrnout další atributy vašeho účtu a podřízených prostředků. Tuto šablonu nenasazujte tak, jak je, nebo resetuje všechny vlastnosti vašeho účtu.

Pro nové účty

Účty se minimalTlsVersion sadou vlastností můžete vytvářet pomocí předchozí šablony ARM nebo pomocí Azure CLI nebo Azure PowerShellu:

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"

Jak ověřit vynucení minimální verze protokolu TLS

Vzhledem k tomu, že Cosmos DB vynucuje minimální verzi protokolu TLS na aplikační vrstvě, konvenční skenery TLS, které kontrolují, zda služba přijme handshake pro konkrétní verzi protokolu TLS, nejsou spolehlivé pro testování vynucení v Cosmos DB. K ověření vynucování využijte oficiální open-source nástroj cosmos-tls-scanner.

Aktuální hodnotu minimalTlsVersion vlastnosti můžete získat také pomocí Azure CLI nebo Azure PowerShellu.

Získání aktuální hodnoty prostřednictvím Azure CLI

Pokud chcete získat aktuální hodnotu vlastnosti pomocí Azure CLI, spusťte příkaz:

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

Získání aktuální hodnoty přes Azure PowerShell

Pokud chcete získat aktuální hodnotu vlastnosti pomocí Azure PowerShellu, spusťte příkaz:

Get-AzCosmosDBAccount -ResourceGroupName myresourcegroup -Name mycosmosdbaccount