#azure-keyvault #terraform-provider-azure #secret-key
#azure-keyvault #terraform-provider-azure #секретный ключ
Вопрос:
Все примеры, которые я видел, содержат 1 ключ и / или q секретов. Есть ли способ добавить еще один (или более)?
Ответ №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
}
Вы можете прочитать этот блог для получения дополнительных советов по циклу Terraform.
Комментарии:
1. Теперь я получаю следующую ошибку, касающуюся ресурса «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» «example»: 116: key_vault_key_id = «${azurerm_key_vault_key.example[count.index]}» Неподходящее значение для атрибута «key_vault_key_id»: требуется строка.
2. Вы хотите, чтобы один из ключей зашифровал диск? Попробуйте использовать
key_vault_key_id = azurerm_key_vault_key.example[count.index].id
илиkey_vault_key_id = azurerm_key_vault_key.example[0].id
?3. key_vault_key_id = «${azurerm_key_vault_key.example[0].id}» выглядит хорошо. Спасибо.