【问题标题】:Terraform Azure provider - How do I add via terraform more than one key and/or secret for my key vault?Terraform Azure 提供程序 - 如何通过 terraform 为我的密钥保管库添加多个密钥和/或机密?
【发布时间】:2020-09-10 06:30:33
【问题描述】:

我看到的所有示例都提供了 1 个密钥和或 q 个密钥。 有没有办法添加另一个(或更多)?

【问题讨论】:

    标签: azure-keyvault terraform-provider-azure secret-key


    【解决方案1】:

    要为您的密钥保管库添加多个密钥或机密,您只需多次添加资源 azurerm_key_vault_key 和 azurerm_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 循环提示。

    【讨论】:

    • 现在,我收到以下错误,关于资源 "azurerm_disk_encryption_set" "example" { name = "example-set" resource_group_name = "${azurerm_resource_group.example.name}" location = "$ {azurerm_resource_group.example.location}" key_vault_key_id = "${azurerm_key_vault_key.example.id}" main.tf 第 116 行资源“azurerm_disk_encryption_set”“示例”中的属性值类型不正确:116:key_vault_key_id = “${azurerm_key_vault_key.example [count.index]}" 属性“key_vault_key_id”的值不合适:需要字符串。
    • 您想要其中一个密钥来加密磁盘吗?尝试使用key_vault_key_id = azurerm_key_vault_key.example[count.index].id 或key_vault_key_id = azurerm_key_vault_key.example[0].id?
    • key_vault_key_id = "${azurerm_key_vault_key.example[0].id}" 看起来不错。谢谢。
    猜你喜欢
    • 2021-01-16
    • 1970-01-01
    • 2016-10-13
    • 2021-08-09
    • 1970-01-01
    • 2020-12-04
    • 2020-06-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多