Принудительное применение минимальной версии TLS самообслуживания в Azure Cosmos DB

ПРИМЕНИМО К: Nosql Mongodb Кассандра Гремлин Таблица

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

Принцип работы минимального принудительного применения версий TLS в Azure Cosmos DB

Из-за мультитенантного характера Cosmos DB служба необходима для удовлетворения потребностей каждого пользователя в доступе и безопасности. Для этого Cosmos DB применяет минимальные протоколы TLS на уровне приложения, а не на более низких уровнях сетевого стека, где работает ПРОТОКОЛ TLS. Это принудительное применение применяется при любом запросе, прошедшем проверку подлинности, к определенной учетной записи базы данных в соответствии с параметрами, заданными клиентом для этой учетной записи.

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

Установка минимальной версии TLS для учетной записи базы данных Cosmos DB

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

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

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

Важно!

При просмотре 1 апреля 2023 г. значение по умолчанию для новых учетных записей будет переключено на Tls12.

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

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

  • Mongodb: TLS 1.2

  • Кассандра: TLS 1.2

  • Таблица, SQL и Граф: TLS 1.0, TLS 1.1 и TLS 1.2

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

Если вы используете тип API, который поддерживает только ПРОТОКОЛ TLS 1.2, на вкладке Сеть в нижней части вы увидите, что протокол TLS отключен.

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

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

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

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

Снимок экрана: выбранный протокол TLS задан так, как вы указали.

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

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

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

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

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

  1. После изменения протокола TLS нажмите кнопку Сохранить.

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

  1. После сохранения вы получите уведомление об успешном выполнении. Тем не менее, после завершения обновления конфигурации это изменение может ввести в силу до 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'
$patchParameters = @{
  ResourceGroupName = 'myresourcegroup'
  Name = 'mycosmosdbaccount'
  ResourceProviderName = 'Microsoft.DocumentDB'
  ResourceType = 'databaseaccounts'
  ApiVersion = '2022-11-15'
  Payload = "{ 'properties': {
      'minimalTlsVersion': '$minimalTlsVersion'
  } }"
  Method = 'PATCH'
}
Invoke-AzRestMethod @patchParameters

Настройка с помощью шаблона 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 или путем изменения метода PATCH на PUT в Azure CLI или Azure PowerShell. Обязательно включите другие свойства для вашей учетной записи.

Важно!

Если учетная запись существует и minimalTlsVersion свойство ommited в запросе PUT, свойство сбрасывается до значения по умолчанию, начиная с версии API 2022-11-15.

Проверка минимального принудительного применения версии TLS

Так как Cosmos DB применяет минимальную версию TLS на уровне приложения, обычные сканеры TLS, которые проверка, принимаются ли службой подтверждения для определенной версии TLS, ненадежны для проверки принудительного применения в Cosmos DB. Чтобы проверить принудительное применение, обратитесь к официальному средству cosmos-tls-scanner с открытым кодом.

Вы также можете получить текущее 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, выполните команду :

$getParameters = @{
  ResourceGroupName = 'myresourcegroup'
  Name = 'mycosmosdbaccount'
  ResourceProviderName = 'Microsoft.DocumentDB'
  ResourceType = 'databaseaccounts'
  ApiVersion = '2022-11-15'
  Method = 'GET'
}
Invoke-AzRestMethod @getParameters

Дальнейшие действия

Дополнительные сведения о безопасности в Azure Cosmos DB см. в статье Общие сведения о безопасности базы данных в Azure Cosmos DB .