Sdílet prostřednictvím


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

PLATÍ PRO: NoSQL MongoDB Cassandra Gremlin Tabulka

Tento článek popisuje, jak vynutit minimální verzi protokolu TLS 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

Vzhledem k povaze služby Cosmos DB s více tenanty je služba nutná ke splnění požadavků 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 na aplikační vrstvě a ne nižší vrstvy 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.0. 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 rozhraní API služby Azure Cosmos DB z roku 20222-11-15 se pro každý účet databáze Cosmos DB volaná minimalTlsVersionnová vlastnost. Přijímá jednu z následujících hodnot:

  • Tls pro nastavení minimální verze na TLS 1.0.
  • Tls11 pro nastavení minimální verze na TLS 1.1.
  • Tls12 pro nastavení minimální verze na TLS 1.2.

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

Nastavení minimálního protokolu TLS ve službě Azure Cosmos DB pomocí portálu

Tato samoobslužná funkce je k dispozici na portálu při vytváření a úpravách účtu. Účty Služby 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.0, TLS 1.1 a TLS 1.2

Postup nastavení minimálního protokolu TLS během vytváření účtu

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

Snímek obrazovky typu API, který podporuje pouze protokol TLS 1.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 dolní části oddílu 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 vlevo vyberte Sítě a pak vyberte kartu Připojení ivity.

  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ě budete moct vybrat požadovaný protokol TLS tak, že na něj kliknete.

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

  1. Po změně protokolu TLS klikněte na Uložit.

Snímek obrazovky s uložením po změně

  1. Po uložení se zobrazí 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'
$patchParameters = @{
  ResourceGroupName = 'myresourcegroup'
  Name = 'mycosmosdbaccount'
  ResourceProviderName = 'Microsoft.DocumentDB'
  ResourceType = 'databaseaccounts'
  ApiVersion = '2022-11-15'
  Payload = "{ 'properties': {
      'minimalTlsVersion': '$minimalTlsVersion'
  } }"
  Method = 'PATCH'
}
Invoke-AzRestMethod @patchParameters

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. Tady je základní příklad šablony 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í této vlastnosti nezapomeňte zahrnout další vlastnosti vašeho účtu a podřízených prostředků. Nenasazujte tuto šablonu tak, jak je, nebo obnoví všechny vlastnosti vašeho účtu.

Pro nové účty

Účty se minimalTlsVersion sadou vlastností můžete vytvořit pomocí výše uvedené šablony ARM nebo změnou metody PATCH na PUT v Azure CLI nebo Azure PowerShellu. Nezapomeňte zahrnout další vlastnosti vašeho účtu.

Důležité

Pokud účet existuje a minimalTlsVersion vlastnost je vynechána v požadavku PUT, vlastnost se obnoví na výchozí hodnotu počínaje verzí rozhraní API 2022-11-15.

Ověření minimálního vynucení 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í, jestli služba přijme metodu handshake pro konkrétní verzi protokolu TLS, nespolehlivý test vynucování ve službě Cosmos DB. Pokud chcete ověřit vynucování, projděte si oficiální opensourcový 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:

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

Další kroky

Další informace o zabezpečení ve službě Azure Cosmos DB najdete v tématu Přehled zabezpečení databáze ve službě Azure Cosmos DB .