Terraform 从中央密钥库填充机密

Terraform Populate secrets from central key vault

我是 Terraform Scripts 的新手我正在使用 Terraform 在 Azure 上工作我已经创建了一个资源组并且在该资源组中我已经创建了一个 Key Vault 我想从 Central Key Vault 填充秘密有什么办法吗?

是的,您可以使用数据源导入机密 key_vault_secret https://www.terraform.io/docs/providers/azurerm/d/key_vault_secret.html

data "azurerm_key_vault" "existing" {
  name                = "Test1-KV"
  resource_group_name = "Test1-RG"
}

data "azurerm_key_vault_secret" "existing-sauce" {
  name         = "secret-sauce"
  key_vault_id = data.azurerm_key_vault.existing.id
}

resource "azurerm_key_vault" "new" {
  name                        = "New-KV"
  resource_group_name         = "New-RG"
 ...
}

resource "azurerm_key_vault_secret" "new-sauce" {
  name         = "secret-sauce"
  value        = data.azurerm_key_vault_secret.existing_sauce.value
  key_vault_id = azurerm_key_vault.new.id
}

当然,您 运行 Terraform 的 user/service 原则需要在 KeyVault 上具有访问策略以允许读取机密。

//edit:正如我从评论中了解到的那样,您想遍历 KeyVault 中的所有现有机密并将它们复制到另一个 KV 中。这对于今天的 Terraform 来说是不可能的,因为没有 TF 数据源可以列出 KV 中的所有秘密。要使用上述数据源,您需要指定每个秘密的名称。

要实现您想做的事情,您需要 powershell or az CLI.