Terraform填充中央密钥库中的秘密

时间:2020-08-25 10:35:14

标签: azure terraform azure-keyvault

我是Terraform脚本的新手,我正在与Terraform一起在Azure上工作,我创建了一个资源组,并且在该资源组中,我创建了一个密钥库,我想从中央密钥库中填充秘密吗?

1 个答案:

答案 0 :(得分:0)

是的,您可以使用数据源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的用户/服务原理需要在KeyVault上具有访问策略以允许读取机密。

// edit:据我所知,您想遍历KeyVault中的所有现有机密并将其复制到另一个KV中。到目前为止,这对于Terraform来说是不可能的,因为没有TF数据源可以列出KV中的所有机密。要使用上述数据源,您需要通过每个秘密的名称来指定它。

要实现您想要的目标,您需要类似powershellaz CLI之类的东西。