Самостоятельное обеспечение минимальной версии TLS в Azure Cosmos DB

В этой статье описывается, как применить минимальную версию протокола TLS для учетной записи Cosmos DB с помощью API самообслуживания.

Как работает применение минимальной версии TLS в Azure Cosmos DB

Мультитенантный характер Cosmos DB требует, чтобы служба соответствовала потребностям доступа и безопасности каждого пользователя. Для этого Cosmos DB применяет минимальные протоколы TLS на уровне приложения, а не на более низких уровнях в сетевом стеке, где работает TLS. Это исполнение происходит на любых аутентифицированных запросах к определенной учетной записи базы данных в соответствии с настройками, установленными на этой учетной записи клиентом.

Минимальная версия, принимаемая во всех службах, — TLS 1.2. Этот выбор можно изменить для каждой учетной записи отдельно, как описано в следующем разделе.

Как установить минимальную версию TLS для моего аккаунта базы данных Cosmos DB

Начиная с версии 2022-11-15 API поставщика ресурсов Azure Cosmos DB, новое свойство становится доступным для каждой учетной записи базы данных Cosmos DB, называемое minimalTlsVersion. Она принимает следующее значение:

  • Tls12 для установки минимальной версии TLS 1.2

Значением по умолчанию для новых учетных записей является Tls12.

Important

Начиная с 31 августа 2025 г. все учетные записи базы данных Cosmos DB должны использовать tls 1.2 или более поздней версии, так как поддержка TLS 1.0 и 1.1 прекращена.

С 31 марта 2025 г. поддержка TLS 1.3 включена для Azure Cosmos DB.

Настройка минимального протокола TLS с помощью портала Azure

Эта функция самообслуживания доступна на портале Azure при создании и редактировании учетной записи. Учетные записи Azure Cosmos DB применяют протокол TLS 1.2. Однако Azure Cosmos DB также поддерживает следующие протоколы TLS в зависимости от выбранного типа API.

  • Mongodb: TLS 1.2
  • Кассандра: TLS 1.2
  • Таблица, SQL и Граф: TLS 1.2

Действия по настройке минимального протокола TLS при создании учетной записи

Если вы используете тип API, поддерживающий только TLS 1.2, вы заметите на вкладке "Сеть" , что протокол TLS отключен.

Снимок экрана: вид API, поддерживающий только TLS 1.2.

Если вы используете тип API, принимающий несколько протоколов TLS, можно перейти на вкладку "Сеть" , а также доступен параметр "Минимальный протокол безопасности транспортного уровня ". Вы можете изменить выбранный протокол, просто щелкнув по выпадающему списку и выбрав нужный протокол.

Снимок экрана: тип API, принимаюющий несколько протоколов TLS.

После настройки учетной записи вы можете на вкладке "Проверка и создание", в разделе "Сеть", убедиться, что выбранный протокол TLS установлен в соответствии с вашими указаниями.

Снимок экрана выбранного протокола TLS установлен в соответствии с вашими указаниями.

Действия по настройке минимального протокола TLS при редактировании учетной записи

  1. Перейдите к своей учетной записи Azure Cosmos DB на портале Azure.

  2. Выберите "Сеть " в боковом меню, а затем перейдите на вкладку "Подключение ".

  3. Вы найдете параметр "Минимальный протокол безопасности транспортного уровня ". Если вы используете тип API, который поддерживает только TLS 1.2, вы заметите, что эта опция отключена. В противном случае можно выбрать нужный протокол TLS, просто щелкнув его.

    Снимок экрана с вариантом минимального протокола безопасности транспортного уровня.

  4. Нажмите кнопку "Сохранить", когда вы изменили протокол TLS.

    Снимок экрана сохранения после изменений.

  5. После сохранения вы получите уведомление об успешном выполнении. Тем не менее изменение может занять до 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-шаблона, обновите ваш существующий шаблон или экспортируйте новый шаблон для текущего развертывания, затем добавьте "minimalTlsVersion" в свойства ресурсов databaseAccounts с необходимым значением минимальной версии TLS. В следующем примере показан базовый шаблон Azure Resource Manager с заданием этого свойства, в котором используется параметр.

{
  "resources": [
    {
      "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": "[variables('locations')]",
        "databaseAccountOfferType": "Standard",
        "minimalTlsVersion": "[parameters('minimalTlsVersion')]"
      }
    }
  ]
}

Important

Убедитесь, что включили другие свойства для вашей учетной записи и дочерних ресурсов при повторном развертывании с этим свойством. Не развертывайте этот шаблон в текущем виде или это сбросит все свойства вашей учетной записи.

Для новых аккаунтов

Учетные записи с minimalTlsVersion набором свойств можно создать с помощью предыдущего шаблона ARM или с помощью Azure CLI или Azure PowerShell:

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-сканера с открытым исходным кодом.

Вы также можете получить текущее значение свойства minimalTlsVersion, используя Azure CLI или Azure PowerShell.

Получите текущее значение с помощью 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