Поделиться через


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

ОТНОСИТСЯ К: NoSQL MongoDB Кассандра Гремлин Таблица

В этой статье описывается, как применить минимальную версию протокола 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.

Важно

Начиная с 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 с этим параметром свойства с помощью параметра.

{
    {
      "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')]",
      }
    }
}

Важно

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

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

Учетные записи с 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