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 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á minimalTlsVersion
nová 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
.
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 bude ukončena.
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.
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.
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í.
Postup nastavení minimálního protokolu TLS při úpravě účtu
Na webu Azure Portal přejděte ke svému účtu služby Azure Cosmos DB.
V nabídce vlevo vyberte Sítě a pak vyberte kartu Připojení.
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.
- Po změně protokolu TLS klikněte na Uložit.
- 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.
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