適用対象:
NoSQL
MongoDB
カサンドラ
グレムリン
テーブル
この記事では、セルフサービス API を使用して、Cosmos DB アカウントにトランスポート層セキュリティ (TLS) プロトコルの最小バージョンを適用する方法について説明します。
Azure Cosmos DB で最小 TLS バージョンの適用が機能する方法
Cosmos DB のマルチテナントの性質により、サービスはすべてのユーザーのアクセスとセキュリティのニーズを満たす必要があります。 これを実現するために、Cosmos DB は、TLS が動作するネットワーク スタック内の下位レイヤーではなく、 アプリケーション層に最小 TLS プロトコルを適用します。 顧客によってそのアカウントに設定された設定に従って、特定のデータベース アカウントに対する認証された要求で、この適用が実施されます。
サービス全体で許容される最小バージョンは TLS 1.2 です。 この選択は、次のセクションで説明するように、アカウントごとに変更できます。
自分の Cosmos DB データベース アカウントに対して最小 TLS バージョンを設定する方法
Azure Cosmos DB リソース プロバイダー API のバージョン 2022-11-15 以降では、 minimalTlsVersionと呼ばれるすべての Cosmos DB データベース アカウントに対して新しいプロパティが公開されます。 次の値を受け入れます。
-
Tls12最小バージョンを TLS 1.2 に設定する場合
新しいアカウントの既定値はTls12。
重要
2025 年 8 月 31 日より、TLS 1.0 と 1.1 のサポートが廃止されるため、すべての Cosmos DB データベース アカウントでトランスポート層セキュリティ (TLS) 1.2 以降を使用する必要があります。
2025 年 3 月 31 日より、Azure Cosmos DB では TLS 1.3 のサポートが有効になります。
Azure portal を使用して最小 TLS プロトコルを設定する
このセルフサービス機能は、アカウントの作成と編集中に Azure portal で使用できます。 Azure Cosmos DB アカウントでは、TLS 1.2 プロトコルが適用されます。 ただし、Azure Cosmos DB では、選択した API の種類に応じて、次の TLS プロトコルもサポートされています。
- MongoDB: TLS 1.2
- カサンドラ: TLS 1.2
- テーブル、SQL、グラフ: TLS 1.2
アカウントの作成時に最小 TLS プロトコルを設定する手順
TLS 1.2 のみをサポートする API Kind を使用している場合は、[ ネットワーク ] タブで TLS プロトコルが無効になっていることがわかります。
複数の TLS プロトコルを受け入れる API の種類を使用している場合は、[ ネットワーク ] タブに移動して、[ トランスポート層の最小セキュリティ プロトコル ] オプションを使用できます。 選択したプロトコルは、ドロップダウンをクリックして目的のプロトコルを選択するだけで変更できます。
アカウントを設定したら、[ 確認と作成 ] タブの [ ネットワーク] で、選択した TLS プロトコルが指定したとおりに設定されていることを確認できます。
アカウントの編集中に最小 TLS プロトコルを設定する手順
Azure portal で Azure Cosmos DB アカウントに移動します。
サイドバー メニューから [ネットワーク ] を選択し、[ 接続 ] タブを選択します。
[最小トランスポート層セキュリティ プロトコル] オプションがあります。 TLS 1.2 のみをサポートする API の種類を使用している場合、このオプションは無効になっています。 それ以外の場合は、目的の TLS プロトコルをクリックするだけで選択できます。
TLS プロトコルを変更したら 、[保存] を選択します 。
保存されると、成功通知が届きます。 ただし、構成の更新が完了してから変更が有効になるまでに最大 15 分かかる可能性があります。
Azure CLI を使用して設定する
Azure CLI を使用して設定するには、このコマンドを使用します。
rg="myresourcegroup"
dbName="mycosmosdbaccount"
minimalTlsVersion="Tls12"
az cosmosdb update -n $dbName -g $rg --minimal-tls-version $minimalTlsVersion
Azure PowerShell を使用して設定する
Azure PowerShell を使用して有効にするには、このコマンドを使用します。
$minimalTlsVersion = "Tls12"
Update-AzCosmosDBAccount -ResourceGroupName myresourcegroup -Name mycosmosdbaccount -MinimalTlsVersion $minimalTlsVersion
ARM テンプレートを使用して設定する
ARM テンプレートを使用してこのプロパティを設定するには、既存のテンプレートを更新するか、現在のデプロイ用の新しいテンプレートをエクスポートしてから、目的の最小 TLS バージョンの値を指定して、"minimalTlsVersion" を databaseAccounts リソースのプロパティに追加します。 次の例は、パラメーターを使用して、このプロパティ設定を使用した基本的な Azure Resource Manager テンプレートを示しています。
{
{
"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')]",
}
}
}
重要
このプロパティを使用して再デプロイする場合は、アカウントと子リソースの他のプロパティを必ず含めてください。 このテンプレートをそのままデプロイしないでください。そうしないと、すべてのアカウント プロパティがリセットされます。
新しいアカウントの場合
前の ARM テンプレートを使用するか、Azure CLI または Azure PowerShell を使用して、 minimalTlsVersion プロパティが設定されたアカウントを作成できます。
az cosmosdb create --name <CosmosDBAccountName> \
--resource-group <ResourceGroupName> \
--kind GlobalDocumentDB \
--locations regionName=<Region> \
--minimal-tls-version "Tls12"
New-AzCosmosDBAccount `
-ResourceGroupName "<YourResourceGroupName>" `
-Name "<YourCosmosDBAccountName>" `
-Location "<AzureRegion>" `
-Kind GlobalDocumentDB `
-EnableAutomaticFailover $true `
-MinimalTlsVersion "Tls12"
最小 TLS バージョンの適用を確認する方法
Cosmos DB ではアプリケーション層で TLS の最小バージョンが適用されるため、特定の TLS バージョンのサービスによってハンドシェイクが受け入れられるかどうかをチェックする従来の TLS スキャナーでは、Cosmos DB での適用のテストは信頼できません。 適用を確認する方法については、オープンソース cosmos-tls-scanner ツールに関する公式情報を参照してください。
Azure CLI または Azure PowerShell を使用して、minimalTlsVersion プロパティの現在の値を取得することもできます。
Azure CLI を使用して現在の値を取得する
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
Azure PowerShell を使用して現在の値を取得する
Azure PowerShell を使用してプロパティの現在の値を取得するには、このコマンドを実行します。
Get-AzCosmosDBAccount -ResourceGroupName myresourcegroup -Name mycosmosdbaccount