Zelf afdwingen van minimale TLS-versie in Azure Cosmos DB
VAN TOEPASSING OP: Nosql MongoDB Cassandra Gremlin Tabel
In dit artikel wordt beschreven hoe u een minimale versie van het TLS-protocol voor uw Cosmos DB-account kunt afdwingen met behulp van een selfservice-API.
Hoe minimale TLS-versie afdwingen werkt in Azure Cosmos DB
Vanwege het multitenant karakter van Cosmos DB is de service vereist om te voldoen aan de toegangs- en beveiligingsbehoeften van elke gebruiker. Om dit te bereiken, dwingt Cosmos DB minimale TLS-protocollen af op de toepassingslaag en niet lagere lagen in de netwerkstack waar TLS actief is. Deze afdwinging vindt plaats bij elke geverifieerde aanvraag voor een specifiek databaseaccount, volgens de instellingen die door de klant voor dat account zijn ingesteld.
De minimale servicebrede geaccepteerde versie is TLS 1.0. Deze selectie kan per account worden gewijzigd, zoals in de volgende sectie wordt besproken.
De minimale TLS-versie instellen voor mijn Cosmos DB-databaseaccount
Vanaf de API-versie 2022-11-15 van de Azure Cosmos DB Resource Provider-API wordt voor elk Cosmos DB-databaseaccount een nieuwe eigenschap weergegeven, genaamd minimalTlsVersion
. Deze accepteert een van de volgende waarden:
Tls
voor het instellen van de minimale versie op TLS 1.0.Tls11
voor het instellen van de minimale versie op TLS 1.1.Tls12
voor het instellen van de minimale versie op TLS 1.2.
De standaardwaarde voor nieuwe en bestaande accounts is Tls
.
Belangrijk
Vanaf 1 april 2023 wordt de standaardwaarde voor nieuwe accounts overgezet naar Tls12
.
Minimaal TLS-protocol instellen in Azure Cosmos DB met behulp van de portal
Deze selfservicefunctie is beschikbaar in de portal tijdens het maken en bewerken van een account. Azure Cosmos DB-accounts dwingen het TLS 1.2-protocol af. Azure Cosmos DB ondersteunt echter ook de volgende TLS-protocollen, afhankelijk van het geselecteerde API-type.
MongoDB: TLS 1.2
Cassandra: TLS 1.2
Table, SQL en Graph: TLS 1.0, TLS 1.1 en TLS 1.2
Stappen voor het instellen van minimaal TLS-protocol tijdens het maken van een account
Als u een API-type gebruikt dat alleen TLS 1.2 ondersteunt, ziet u op het tabblad Netwerken onderaan dat het TLS-protocol is uitgeschakeld.
Als u een API-type gebruikt dat meerdere TLS-protocollen accepteert, kunt u naar het tabblad Netwerken navigeren en is de optie Minimum Transport Layer Security Protocol beschikbaar. U kunt het geselecteerde protocol wijzigen door op de vervolgkeuzelijst te klikken en het gewenste protocol te selecteren.
Nadat u uw account hebt ingesteld, kunt u op het tabblad Controleren en maken, onderaan in de sectie Netwerken, controleren of het geselecteerde TLS-protocol is ingesteld zoals u hebt opgegeven.
Stappen voor het instellen van het minimale TLS-protocol tijdens het bewerken van een account
Navigeer naar uw Azure Cosmos DB-account op de Azure Portal.
Selecteer Netwerken in het linkermenu en selecteer vervolgens het tabblad Connectiviteit.
U vindt de optie Minimum Transport Layer Security Protocol. Als u een API-type gebruikt dat alleen TLS 1.2 ondersteunt, ziet u dat deze optie is uitgeschakeld. Anders kunt u het gewenste TLS-protocol selecteren door erop te klikken.
- Klik op Opslaan nadat u het TLS-protocol hebt gewijzigd.
- Zodra het is opgeslagen, ontvangt u een melding dat het is gelukt. Het kan echter tot 15 minuten duren voordat deze wijziging van kracht wordt nadat de configuratie-update is voltooid.
Instellen via Azure CLI
Als u wilt instellen met behulp van Azure CLI, gebruikt u de opdracht:
rg="myresourcegroup"
dbName="mycosmosdbaccount"
minimalTlsVersion="Tls12"
az cosmosdb update -n $dbName -g $rg --minimal-tls-version $minimalTlsVersion
Instellen via Azure PowerShell
Als u wilt instellen met behulp van Azure PowerShell, gebruikt u de opdracht:
$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
Instellen via ARM-sjabloon
Als u deze eigenschap wilt instellen met behulp van een ARM-sjabloon, werkt u de bestaande sjabloon bij of exporteert u een nieuwe sjabloon voor uw huidige implementatie en voegt u vervolgens toe "minimalTlsVersion"
aan de eigenschappen voor de databaseAccounts
resources, met de gewenste minimale TLS-versiewaarde. Hier volgt een eenvoudig voorbeeld van een Azure Resource Manager-sjabloon met deze eigenschapsinstelling, met behulp van een parameter.
{
{
"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')]",
}
}
}
Belangrijk
Zorg ervoor dat u de andere eigenschappen voor uw account en onderliggende resources opneemt bij het opnieuw implementeren met deze eigenschap. Implementeer deze sjabloon niet in de huidige staat, anders worden alle accounteigenschappen opnieuw ingesteld.
Voor nieuwe accounts
U kunt accounts maken met de minimalTlsVersion
eigenschap die is ingesteld met behulp van de bovenstaande ARM-sjabloon of door de PATCH-methode te wijzigen in een PUT op Azure CLI of Azure PowerShell. Zorg ervoor dat u de andere eigenschappen voor uw account opneemt.
Belangrijk
Als het account bestaat en de minimalTlsVersion
eigenschap wordt ommited in een PUT-aanvraag, wordt de standaardwaarde van de eigenschap opnieuw ingesteld vanaf de API-versie 2022-11-15.
Het afdwingen van minimale TLS-versies controleren
Omdat Cosmos DB de minimale TLS-versie afdwingt op de toepassingslaag, zijn conventionele TLS-scanners die controleren of handshakes worden geaccepteerd door de service voor een specifieke TLS-versie onbetrouwbaar om afdwinging in Cosmos DB te testen. Raadpleeg het officiƫle opensource-hulpprogramma cosmos-tls-scanner om de afdwinging te controleren.
U kunt de huidige waarde van de minimalTlsVersion
eigenschap ook ophalen met behulp van Azure CLI of Azure PowerShell.
Huidige waarde ophalen via Azure CLI
Voer de opdracht uit om de huidige waarde van de eigenschap op te halen met behulp van Azure CLI:
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
Huidige waarde ophalen via Azure PowerShell
Voer de opdracht uit om de huidige waarde van de eigenschap op te halen met behulp van Azure PowerShell:
$getParameters = @{
ResourceGroupName = 'myresourcegroup'
Name = 'mycosmosdbaccount'
ResourceProviderName = 'Microsoft.DocumentDB'
ResourceType = 'databaseaccounts'
ApiVersion = '2022-11-15'
Method = 'GET'
}
Invoke-AzRestMethod @getParameters
Volgende stappen
Zie Overzicht van databasebeveiliging in Azure Cosmos DB voor meer informatie over beveiliging in Azure Cosmos DB .