Принудительное применение минимальной версии 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, перейдите на вкладку Сеть и будет доступен параметр Минимальный протокол безопасности транспортного уровня. Вы можете изменить выбранный протокол, просто щелкнув раскрывающийся список и выбрав нужный протокол.
После настройки учетной записи на вкладке Проверка и создание в нижней части раздела Сеть можно проверить, что выбранный протокол TLS задан так, как вы указали.
Действия по настройке минимального протокола TLS при редактировании учетной записи
На портале Azure перейдите к своей учетной записи Azure Cosmos DB.
Выберите Сеть в меню слева, а затем перейдите на вкладку Подключение.
Вы найдете параметр Минимальный протокол безопасности транспортного уровня. Если вы используете тип API, который поддерживает только TLS 1.2, этот параметр будет отключен. В противном случае вы сможете выбрать нужный протокол 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'
$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 .