Search code examples
azureterraformdevopsazure-keyvaultdevops-services

assign key and value while provsioing azure keyvault


All I am provisioning azure key vault by terraform. Is there any way to set key and value during provision not after provision. My requirement is some sort of custome key and value should set during provision and utlize in other module.

resource "azurerm_resource_group" "test" {
  name     = "example-resources"
  location = "West Europe"
}

resource "azurerm_storage_account" "test" {
  name                     = "storageaccountname"
  resource_group_name      = "${azurerm_resource_group.test.name}"
  location                 = "${azurerm_resource_group.test.location}"
  account_tier             = "Standard"
  account_replication_type = "GRS"

  tags = {
    environment = "staging"
  }
}
resource "azurerm_resource_group" "test" {
  name     = "${var.azurerm_resource_group_name}"
  location = "${var.location}"
}

resource "azurerm_key_vault" "test" {
  name                        = "${var.azurerm_key_vault}"
  location                    = "${var.location}"
  resource_group_name         = "${var.azurerm_resource_group_name}"
  enabled_for_disk_encryption = true
  tenant_id                   = "${var.tenant_id}"

  sku_name = "standard"

  access_policy {
    tenant_id = "${var.tenant_id}"
    object_id = "${var.object_id}"

    key_permissions = [
      "get",
    ]

    secret_permissions = [
      "get",
    ]

    storage_permissions = [
      "get",
    ]
  }

  network_acls {
    default_action = "Allow"
    bypass         = "AzureServices"
  }

  tags = {
    environment = "${var.tags_environment}"
  }
}
`


Solution

  • You can use azurerm_key_vault_secret to set a secret using Terraform

    resource "azurerm_key_vault_secret" "test" {
      name         = "secret-sauce"
      value        = "szechuan"
      key_vault_id = "${azurerm_key_vault.test.id}"
    
      tags = {
        environment = "Production"
      }
    }