如何在 azure cosmos 中设置最低 TLS 版本

问题描述 投票:0回答:2

Terraform 允许在某些 Azure 资源中设置最低 TLS 版本,例如

resource "azurerm_linux_web_app" "myApp" {
  site_config {
    ...
    minimum_tls_version = "1.2"
  }
  ...

我找不到使用 terraform 配置为 cosmosdb_account 资源设置它的方法。有办法吗?

我可以看到配置存在于天蓝色门户中: enter image description here

azure terraform azure-cosmosdb
2个回答
1
投票

github 问题中所述,当前

TLS_version
不支持设置
azurerm_cosmosdb_account
。要启用它,您可以使用
azapi_resource
azapi_update_resource
(如果资源已存在)。

我尝试了下面的代码来实现您的要求,部署成功,如图所示。

terraform {
 required_providers {
   azapi = {
     source = "Azure/azapi"
   }
 }
}

provider "azapi" {
}

provider "azurerm"{
 features{}
}

data "azurerm_resource_group" "example" {
 name     = "DefaultResourceGroup-EUS"
}

data "azurerm_cosmosdb_account" "db" {
 name                = "newcb"
 resource_group_name = data.azurerm_resource_group.example.name
}

resource "azapi_update_resource" "azurerm_cosmosdb_account_tls_update" {
 type        = "Microsoft.DocumentDB/databaseAccounts@2023-03-15"
 resource_id = data.azurerm_cosmosdb_account.db.id
 body = jsonencode({
   properties = {
     minimalTlsVersion = "Tls12"
   }
 })
}

之前我的 cosmos dB 帐户已将

minimum_tls_version
设置为
TLS1.1

enter image description here

使用上面给出的代码成功部署后,它已升级到如图所示的

TLS 1.2

enter image description here

enter image description here

或者,作为解决方法,您可以使用 Azure 策略来设置 Cosmos DB 帐户的 TLS 版本设置。要实现此目标,请创建一个要求 Cosmos DB 帐户使用指定 TLS 版本的策略,然后将其附加到您的资源组。

使用一组规则和操作定义策略后,使用

New-AzPolicyAssignment
以及
scope
参数将其分配为 cosmos dB 范围。

$policy=New-AzPolicyDefinition -Name 'xxx' -Policy <policypath>
New-AzPolicyAssignment -Name 'xxxx' -PolicyDefinition  $Policy -Scope "cosmosdb account resourceID"

注意: 根据您的要求创建策略规则。


© www.soinside.com 2019 - 2024. All rights reserved.