我是Terraform脚本的新手,我正在与Terraform一起在Azure上工作,我创建了一个资源组,并且在该资源组中,我创建了一个密钥库,我想从中央密钥库中填充秘密吗?
答案 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中的所有机密。要使用上述数据源,您需要通过每个秘密的名称来指定它。
要实现您想要的目标,您需要类似powershell或az CLI之类的东西。