Samodzielne wymuszanie wersji protokołu TLS w usłudze Azure Cosmos DB

DOTYCZY: Nosql Mongodb Cassandra Gremlin Tabeli

W tym artykule omówiono sposób wymuszania minimalnej wersji protokołu TLS dla konta usługi Cosmos DB przy użyciu samoobsługowego interfejsu API.

Jak działa minimalne wymuszanie wersji protokołu TLS w usłudze Azure Cosmos DB

Ze względu na wielodostępny charakter usługi Cosmos DB usługa jest wymagana do spełnienia wymagań dotyczących dostępu i zabezpieczeń każdego użytkownika. Aby to osiągnąć, usługa Cosmos DB wymusza minimalne protokoły TLS w warstwie aplikacji, a nie niższe warstwy w stosie sieciowym, w którym działa protokół TLS. To wymuszanie występuje na dowolnym uwierzytelnionych żądaniach do określonego konta bazy danych, zgodnie z ustawieniami ustawionymi na tym koncie przez klienta.

Minimalna zaakceptowana wersja usługi to TLS 1.0. Ten wybór można zmienić na podstawie konta, zgodnie z opisem w poniższej sekcji.

Jak ustawić minimalną wersję protokołu TLS dla konta bazy danych usługi Cosmos DB

Począwszy od wersji interfejsu API 2022-11-15 interfejsu API dostawcy zasobów usługi Azure Cosmos DB, nowa właściwość jest uwidoczniona dla każdego konta bazy danych usługi Cosmos DB o nazwie minimalTlsVersion. Akceptuje jedną z następujących wartości:

  • Tls aby ustawić minimalną wersję protokołu TLS 1.0.
  • Tls11 aby ustawić minimalną wersję protokołu TLS 1.1.
  • Tls12 aby ustawić minimalną wersję protokołu TLS 1.2.

Wartość domyślna dla nowych i istniejących kont to Tls.

Ważne

Patrząc 1 kwietnia 2023 r., wartość domyślna dla nowych kont zostanie przełączona na Tls12.

Ustawianie minimalnego protokołu TLS w usłudze Azure Cosmos DB przy użyciu portalu

Ta funkcja samoobsługowa jest dostępna w portalu podczas tworzenia i edytowania konta. Konta usługi Azure Cosmos DB wymuszają protokół TLS 1.2. Jednak usługa Azure Cosmos DB obsługuje również następujące protokoły TLS w zależności od wybranego typu interfejsu API.

  • Mongodb: TLS 1.2

  • Cassandra: TLS 1.2

  • Tabela, SQL i Graph: TLS 1.0, TLS 1.1 i TLS 1.2

Kroki ustawiania minimalnego protokołu TLS podczas tworzenia konta

Jeśli używasz typu interfejsu API, który obsługuje tylko protokół TLS 1.2, zauważysz na karcie Sieć w dolnej części wyłączonego protokołu TLS.

Zrzut ekranu przedstawiający typ interfejsu API, który obsługuje tylko protokół TLS 1.2.

Jeśli używasz typu interfejsu API, który akceptuje wiele protokołów TLS, możesz przejść do karty Sieć, a opcja Minimalna warstwa zabezpieczeń warstwy transportu jest dostępna. Możesz zmienić wybrany protokół, klikając listę rozwijaną i wybierając żądany protokół.

Zrzut ekranu przedstawiający rodzaj interfejsu API, który akceptuje wiele protokołów TLS.

Po skonfigurowaniu konta możesz przejrzeć na karcie Przeglądanie i tworzenie w dolnej części sekcji Sieć, że wybrany protokół TLS jest ustawiony zgodnie z określonymi ustawieniami.

Zrzut ekranu przedstawiający wybrany protokół TLS został ustawiony zgodnie z określonymi ustawieniami.

Kroki konfigurowania minimalnego protokołu TLS podczas edytowania konta

  1. Przejdź do konta usługi Azure Cosmos DB na Azure Portal.

  2. Wybierz pozycję Sieć z menu po lewej stronie, a następnie wybierz kartę Łączność.

  3. Znajdziesz opcję Minimalny protokół zabezpieczeń warstwy transportu. Jeśli używasz typu interfejsu API, który obsługuje tylko protokół TLS 1.2, zauważysz, że ta opcja jest wyłączona. W przeciwnym razie będzie można wybrać żądany protokół TLS, klikając go po prostu.

Zrzut ekranu przedstawiający opcję minimalnego protokołu zabezpieczeń warstwy transportu.

  1. Kliknij przycisk Zapisz po zmianie protokołu TLS.

Zrzut ekranu przedstawiający zapisywanie po zmianie.

  1. Po zapisaniu otrzymasz powiadomienie o powodzeniu. Mimo to ta zmiana może potrwać do 15 minut po zakończeniu aktualizacji konfiguracji.

Zrzut ekranu przedstawiający powiadomienie o powodzeniu.

Ustawianie za pomocą interfejsu wiersza polecenia platformy Azure

Aby ustawić przy użyciu interfejsu wiersza polecenia platformy Azure, użyj polecenia :

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

Ustaw za pomocą Azure PowerShell

Aby ustawić użycie Azure PowerShell, użyj polecenia :

$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

Ustawianie za pomocą szablonu usługi ARM

Aby ustawić tę właściwość przy użyciu szablonu usługi ARM, zaktualizuj istniejący szablon lub wyeksportuj nowy szablon dla bieżącego wdrożenia, a następnie dodaj "minimalTlsVersion" do właściwości databaseAccounts zasobów z żądaną minimalną wartością wersji protokołu TLS. Poniżej przedstawiono podstawowy przykład szablonu usługi Azure Resource Manager z tym ustawieniem właściwości przy użyciu 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')]",
      }
    }
}

Ważne

Upewnij się, że podczas ponownego wdrażania tej właściwości uwzględnisz inne właściwości dla twojego konta i zasobów podrzędnych. Nie wdrażaj tego szablonu jako jest lub spowoduje zresetowanie wszystkich właściwości konta.

W przypadku nowych kont

Konta z zestawem minimalTlsVersion właściwości można utworzyć przy użyciu powyższego szablonu usługi ARM lub zmienić metodę PATCH na PUT w interfejsie wiersza polecenia platformy Azure lub Azure PowerShell. Pamiętaj, aby uwzględnić inne właściwości twojego konta.

Ważne

Jeśli konto istnieje i minimalTlsVersion właściwość zostanie pominięta w żądaniu PUT, właściwość zostanie zresetowana do wartości domyślnej, począwszy od wersji interfejsu API 2022-11-15.

Jak zweryfikować minimalne wymuszanie wersji protokołu TLS

Ponieważ usługa Cosmos DB wymusza minimalną wersję protokołu TLS w warstwie aplikacji, konwencjonalne skanery TLS sprawdzające, czy uzgadnianie są akceptowane przez usługę dla określonej wersji protokołu TLS, są niewiarygodne do testowania wymuszania w usłudze Cosmos DB. Aby zweryfikować wymuszanie, zapoznaj się z oficjalnym narzędziem do skanera cosmos-tls-source typu open source.

Możesz również uzyskać bieżącą wartość właściwości przy użyciu interfejsu minimalTlsVersion wiersza polecenia platformy Azure lub Azure PowerShell.

Pobieranie bieżącej wartości za pośrednictwem interfejsu wiersza polecenia platformy Azure

Aby uzyskać bieżącą wartość właściwości przy użyciu interfejsu wiersza polecenia platformy Azure, uruchom polecenie:

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

Pobieranie bieżącej wartości za pośrednictwem Azure PowerShell

Aby uzyskać bieżącą wartość właściwości przy użyciu Azure PowerShell, uruchom polecenie:

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

Następne kroki

Aby uzyskać więcej informacji na temat zabezpieczeń w usłudze Azure Cosmos DB, zobacz Omówienie zabezpieczeń bazy danych w usłudze Azure Cosmos DB .