Terraform Azure提供程序-如何通过terraform为我的密钥库添加多个密钥和/或秘密?

问题描述

我看到的所有示例都提供1个密钥或q个秘密。 是否可以添加一个(或多个)?

解决方法

要为密钥库添加多个密钥或机密,您只需多次添加资源azurerm_key_vault_keyazurerm_key_vault_secret

建议在循环中创建此类资源。 Terraform提供了几种不同的循环结构,每种结构都打算在稍微不同的情况下使用:

  • count参数:遍历资源。
  • for_each表达式:遍历资源和资源中的内联块。
  • for表达式:循环遍历列表和地图。

例如,使用count参数创建一个或多个密钥和机密。

variable "key_lists" {
    type = list(string)
    default = ["key1","key2","key3"]
    
}

variable "secret_maps" {
    type = map(string)
    default = {
        "name1"= "value1"
        "aaa" = "111"
        "bbb" = "222"
    }
}

resource "azurerm_key_vault_key" "generated" {
  count        = length(var.key_lists)
  name         = var.key_lists[count.index]
  key_vault_id = azurerm_key_vault.example.id
  key_type     = "RSA"
  key_size     = 2048

  key_opts = [
    "decrypt","encrypt","sign","unwrapKey","verify","wrapKey",]
}

resource "azurerm_key_vault_secret" "example" {
  count = length(var.secret_maps)
  name         = keys(var.secret_maps)[count.index]
  value        = values(var.secret_maps)[count.index]
  key_vault_id = azurerm_key_vault.example.id

}

您可以阅读this blog以获得更多Terraform循环提示。