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 interfejsu API samoobsługi.

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ć dla poszczególnych kont, 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, dla każdego konta bazy danych Cosmos DB jest widoczna nowa właściwość o nazwie minimalTlsVersion. Akceptuje jedną z następujących wartości:

  • Tls dla ustawienia minimalnej wersji na 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 kont to Tls12.

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

Ta funkcja samoobsługi 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

Procedura 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 rodzaj 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 Minimum Transport Layer Security Protocol jest dostępna. Możesz zmienić wybrany protokół, klikając listę rozwijaną i wybierając odpowiedni protokół.

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

Po skonfigurowaniu konta możesz przejrzeć kartę 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.

Procedura ustawiania minimalnego protokołu TLS podczas edytowania konta

  1. Przejdź do swojego konta usługi Azure Cosmos DB w witrynie Azure Portal.

  2. Wybierz pozycję Sieć z menu po lewej stronie, a następnie wybierz kartę Połączenie ivity.

  3. Znajdziesz opcję Protokół zabezpieczeń minimalnej 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ę protokołu zabezpieczeń minimalnej 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 po zakończeniu aktualizacji konfiguracji może upłynąć do 15 minut.

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

Ustawianie za pomocą programu Azure PowerShell

Aby ustawić przy użyciu programu 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 za pomocą 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 w taki sposób, jak jest lub spowoduje zresetowanie wszystkich właściwości konta.

W przypadku nowych kont

Możesz utworzyć konta z ustawioną minimalTlsVersion właściwością przy użyciu powyższego szablonu usługi ARM lub zmienić metodę PATCH na PUT w interfejsie wiersza polecenia platformy Azure lub w programie 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ść jest pomijana 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ą zawodne do testowania wymuszania w usłudze Cosmos DB. Aby zweryfikować wymuszanie, zapoznaj się z oficjalnym narzędziem cosmos-source cosmos-tls-scanner.

Możesz również uzyskać bieżącą wartość właściwości przy użyciu interfejsu minimalTlsVersion wiersza polecenia platformy Azure lub programu 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 programu Azure PowerShell

Aby uzyskać bieżącą wartość właściwości przy użyciu programu 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 .