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


Самостоятельное использование минимальной версии 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.

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

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

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

  • MongoDB: TLS 1.2

  • Cassandra: 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. Выберите "Сеть" в меню слева, а затем перейдите на вкладку Подключение ivity.

  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 свойство опущено в запросе PUT, свойство сбрасывается до значения по умолчанию, начиная с версии API 2022-11-15.

Как проверить минимальное применение версий 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, выполните команду:

$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 ".