【发布时间】:2018-03-26 20:35:02
【问题描述】:
有什么方法可以从 Azure Key Vault 中获取密钥的值?
看起来value 不会暴露在密钥库机密对象here 中。
【问题讨论】:
-
在报告一些问题和寻求帮助时,您需要提供详细信息,例如错误、与
azurerm_key_vault_secret一起使用的代码等。
标签: azure terraform azure-keyvault
有什么方法可以从 Azure Key Vault 中获取密钥的值?
看起来value 不会暴露在密钥库机密对象here 中。
【问题讨论】:
azurerm_key_vault_secret 一起使用的代码等。
标签: azure terraform azure-keyvault
现在您可以使用azurerm_key_vault_secret 数据源来实现。
没有任何脚本我很享受。
data "azurerm_key_vault_secret" "test" {
name = "secret-sauce"
vault_uri = "https://rickslab.vault.azure.net/"
}
output "secret_value" {
value = "${data.azurerm_key_vault_secret.test.value}"
}
【讨论】:
您首先需要创建一个数据资源到 azure key vault 以获取 key vault 资源 ID:
data "azurerm_key_vault" "keyvault" {
name = "${var.keyvault_name}"
resource_group_name = "${var.resourcegroup_name}"
}
然后使用azurerm_key_vault_secret 获取带有密钥库资源 ID 的秘密:
data "azurerm_key_vault_secret" "win_admin_pass" {
name = "${var.secret_name}"
key_vault_id = "${data.azurerm_key_vault.keyvault.id}"
}
请注意,azurerm_key_vault_secret 中的vault_uri 已被弃用且不推荐使用。
【讨论】:
我一直在努力从密钥库机密中获取密码。下面的代码对我有用,试试看。
data "azurerm_key_vault" "terrakv" {
name = "terrakv" // KeyVault name
resource_group_name = "mykv" // resourceGroup
}
data "azurerm_key_vault_secret" "kvsecret" {
name = "secret" // Name of secret
key_vault_id = data.azurerm_key_vault.terrakv.id
}
os_profile {
computer_name = "vm-01"
admin_username = "testadmin"
admin_password = data.azurerm_key_vault_secret.kvsecret.value // Toget actual value
}
希望对你有帮助。
【讨论】:
不幸的是,目前这在 Terraform 中是不可能的。 Terraform 只会输出秘密 ID 和版本。如果您需要检索 azure keyvault 机密,最好的方法是使用 Azure-CLI,如果不可用,则使用 Powershell。
使用 Azure-CLI (2.0)
az keyvault secret show --vault-name <vault-name> --name <secret-name>
语法:
az keyvault secret show --name
--vault-name
[--version]
更多信息请见:Managing Azure Keyvault Secrets with Azure-CLi
使用 Powershell:Get-AzureKeyVaultSecret
get-azurekeyvaultsecret -vaultName "<vault-name>" -name "<secret-name>"
【讨论】: