通过 Terraform 更新 SP 和更新密钥库
SP renewal and update keyvault through terraform
我想通过 Terraform 更新过期 SP 的详细信息。我可以通过更改 SP 的到期日期来重新生成 SP。但 SP 详细信息存储在密钥库中。因此,在使用相同的 id/secret 更新密钥库时,它会出错。有没有办法通过 terraform update/delete key_vault 秘密?
resource "azurerm_key_vault_secret" "sp_arm_client_id"
{
name = "ARM-CLIENT-ID"
value = az_sp.app_id key_vault_id = data.azurerm_key_vault.storable_kvs[each.key].id
}
我在我的环境中测试了你的场景,我成功地进行了更改,它被存储在当前版本中,而前一个是使用以下代码的旧版本:
provider "azuread" {}
provider "azurerm" {
features{}
}
data "azuread_client_config" "current" {}
data "azuread_application" "appreg" {
display_name="ansumanterraformtest"
}
resource "azuread_application_password" "apppass" {
application_object_id = data.azuread_application.appreg.object_id
end_date_relative = "3h"
}
data "azurerm_key_vault" "kv" {
name = "kvname"
resource_group_name = "ansumantest"
}
resource "azurerm_key_vault_secret" "demo_sp_client_id" {
name = "demo-sp-client-id"
value = data.azuread_application.appreg.application_id
key_vault_id = data.azurerm_key_vault.kv.id
}
resource "azurerm_key_vault_secret" "demo_sp_client_secret" {
name = "demo-sp-client-secret"
value =azuread_application_password.apppass.value
key_vault_id = data.azurerm_key_vault.kv.id
}
输出:
注意:如果 keyvault 中的秘密不是从 terraform 创建的,您可能会收到错误消息。如果它是从门户或任何其他来源创建的,那么您必须首先将该秘密导入到 terraform 状态,然后更改它以便 terraform 可以管理它。
导入命令:
terraform import azurerm_key_vault_secret.example "https://example-keyvault.vault.azure.net/secrets/example/fdf067c93bbb4b22bff4d8b7a9a56217"
参考:
azurerm_key_vault_secret | Resources | hashicorp/azurerm | Terraform Registry
我想通过 Terraform 更新过期 SP 的详细信息。我可以通过更改 SP 的到期日期来重新生成 SP。但 SP 详细信息存储在密钥库中。因此,在使用相同的 id/secret 更新密钥库时,它会出错。有没有办法通过 terraform update/delete key_vault 秘密?
resource "azurerm_key_vault_secret" "sp_arm_client_id"
{
name = "ARM-CLIENT-ID"
value = az_sp.app_id key_vault_id = data.azurerm_key_vault.storable_kvs[each.key].id
}
我在我的环境中测试了你的场景,我成功地进行了更改,它被存储在当前版本中,而前一个是使用以下代码的旧版本:
provider "azuread" {}
provider "azurerm" {
features{}
}
data "azuread_client_config" "current" {}
data "azuread_application" "appreg" {
display_name="ansumanterraformtest"
}
resource "azuread_application_password" "apppass" {
application_object_id = data.azuread_application.appreg.object_id
end_date_relative = "3h"
}
data "azurerm_key_vault" "kv" {
name = "kvname"
resource_group_name = "ansumantest"
}
resource "azurerm_key_vault_secret" "demo_sp_client_id" {
name = "demo-sp-client-id"
value = data.azuread_application.appreg.application_id
key_vault_id = data.azurerm_key_vault.kv.id
}
resource "azurerm_key_vault_secret" "demo_sp_client_secret" {
name = "demo-sp-client-secret"
value =azuread_application_password.apppass.value
key_vault_id = data.azurerm_key_vault.kv.id
}
输出:
注意:如果 keyvault 中的秘密不是从 terraform 创建的,您可能会收到错误消息。如果它是从门户或任何其他来源创建的,那么您必须首先将该秘密导入到 terraform 状态,然后更改它以便 terraform 可以管理它。
导入命令:
terraform import azurerm_key_vault_secret.example "https://example-keyvault.vault.azure.net/secrets/example/fdf067c93bbb4b22bff4d8b7a9a56217"
参考:
azurerm_key_vault_secret | Resources | hashicorp/azurerm | Terraform Registry