如何从多个密钥库中提取密钥?地形



我正在努力弄清楚这一点,并努力把它做好。所以我有3个密钥库,每个地区1个,美国,欧洲,亚洲,所以我通过数据块传递这个

data "azurerm_key_vault" "existing" {
name                = "mykeyvault"
resource_group_name = "myrg"
}
data "azurerm_key_vault_secret" "userlist1" {
name = "secret1" 
key_vault_id = "${data.azurerm_key_vault.existing.id}" 
}
data "azurerm_key_vault_secret" "userlist2"{
name = "secret2" 
key_vault_id = "${data.azurerm_key_vault.existing.id}" 
}

output "secret_value1" {
value = "${data.azurerm_key_vault_secret.userlist1.value}"
}
output "secret_value2" {
value = "${data.azurerm_key_vault_secret.userlist2.value}"
}

现在,我正在努力解决的问题是,如果我的管道设置在region=europe上运行,我如何传递下面的秘密值?

module "testmod" {
source                    = "./test
password                  = "${data.azurerm_key_vault_secret.**IFREGIONISEUROPETHENPASSTHISSECRET**.value}"
}

首先,您计划使用的方法会将您的机密放入状态文件中,因此请确保您的状态文件是加密的并且安全的。

因为您想要动态引用值,所以您想要的可能是像对象一样的数据结构,而不是变量序列。

使用locals:收集对象中的值

locals {
secret_by_region = {
"asia" = data.azurerm_key_vault_secret.userlist1.value,
"europe" = data.azurerm_key_vault_secret.userlist2.value
}
}

然后引用本地变量的值:

module "testmod" {
source                    = "./test
password                  = local.secret_by_region[var.region]
}

最新更新