Samodzielne wymuszanie wersji protokołu TLS w usłudze Azure Cosmos DB
DOTYCZY: NoSQL MongoDB Kasandra Gremlin Stół
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
.
Ważne
Od 31 sierpnia 2025 r. wszystkie konta bazy danych usługi Cosmos DB muszą korzystać z protokołu Transport Layer Security (TLS) 1.2 lub nowszego, ponieważ obsługa protokołów TLS 1.0 i 1.1 zostanie przerwana.
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.
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ół.
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.
Procedura ustawiania minimalnego protokołu TLS podczas edytowania konta
Przejdź do swojego konta usługi Azure Cosmos DB w witrynie Azure Portal.
Wybierz pozycję Sieć z menu po lewej stronie, a następnie wybierz kartę Łączność.
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.
- Kliknij przycisk Zapisz po zmianie protokołu TLS.
- Po zapisaniu otrzymasz powiadomienie o powodzeniu. Mimo to po zakończeniu aktualizacji konfiguracji może upłynąć do 15 minut.
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ść 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ą 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