azure - 如何使用多个密钥库并使用循环?地形
问题描述
我有 5 个密钥库和 5 个秘密问题是不希望我的 terraform 文件有 10 个这样的数据块:
data "azurerm_key_vault" "kv1" {
name = "mykeyvault"
resource_group_name = "myrg"
}
data "azurerm_key_vault_secret" "kv1" {
name = var.secret_name
key_vault_id = var..key_vault_id
}
data "azurerm_key_vault" "kv2" {
name = "mykeyvault"
resource_group_name = "myrg"
}
data "azurerm_key_vault_secret" "kv2" {
name = var.secret_name
key_vault_id = var..key_vault_id
}
data "azurerm_key_vault" "kv3" {
name = "mykeyvault"
resource_group_name = "myrg"
}
data "azurerm_key_vault_secret" "kv3" {
name = var.secret_name
key_vault_id = var..key_vault_id
}
data "azurerm_key_vault" "kv4" {
name = "mykeyvault"
resource_group_name = "myrg"
}
data "azurerm_key_vault_secret" "kv4" {
name = var.secret_name
key_vault_id = var..key_vault_id
}
data "azurerm_key_vault" "kv5" {
name = "mykeyvault"
resource_group_name = "myrg"
}
data "azurerm_key_vault_secret" "kv5" {
name = var.secret_name
key_vault_id = var..key_vault_id
}
.....
我可以在一个块中使用任何其他方法来分配 5 个 keyvaults 数据块和 5 个秘密数据块吗?
谢谢
解决方案
根据您的要求,您最好使用for_each
来获取不同 Key Vault 中的不同机密,这是一个示例:
variable "secrets" {
type = map(string)
default = {
"keyvault1" = "secret1"
"keyvault2" = "secret2"
}
}
data "azurerm_key_vault" "kv" {
for_each = var.secrets
name = each.key
resource_group_name = var.resource_group
}
data "azurerm_key_vault_secret" "secret" {
for_each = var.secrets
name = each.value
key_vault_id = data.azurerm_key_vault.kv[each.key].id
}
推荐阅读
- php - Wordpress 空白前空白页不起作用
- java - 抽象类的 Hibernate/JPA 映射
- c++ - 在基于范围的 for 循环中使用 shared_ptr 到 std::vector
- javascript - 将Javascript变量发送到文件中的PHP函数参数中?
- node.js - Nodejs SSL-证书验证
- linux - 配置 apache webserver 以使用 ip 地址公开查看 web 上的默认页面(动态)
- javascript - 使用 Angular 4/5 与 iframe(相同域)通信
- elasticsearch - 用于 ElasticSearch 6.2.4 的 filebeat-index-template.json
- php - 如何使用 javascript 和 php 在表格中显示数据
- office-js - 是否需要在 Azure AD 中注册 Outlook Web 插件才能提交到卖方仪表板?