<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: How to Create Azure Key Vault and Assign Key Vault Administrator Role Using Terraform in Get Started Discussions</title>
    <link>https://community.databricks.com/t5/get-started-discussions/how-to-create-azure-key-vault-and-assign-key-vault-administrator/m-p/106725#M4762</link>
    <description>&lt;P&gt;Hi&amp;nbsp;&lt;a href="https://community.databricks.com/t5/user/viewprofilepage/user-id/145294"&gt;@naveen0142&lt;/a&gt;&amp;nbsp;,&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;U&gt;1. Create the Key Vault&lt;/U&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;DIV class="w-full md:max-w-[90vw]"&gt;
&lt;DIV class="codeWrapper text-textMainDark selection:!text-superDark selection:bg-superDuper/10 bg-offset dark:bg-offsetDark my-md relative flex flex-col rounded font-mono text-sm font-thin"&gt;
&lt;DIV class="-mt-xl"&gt;
&lt;DIV class="pr-lg"&gt;&lt;SPAN&gt;&lt;CODE&gt;resource "azurerm_key_vault" "example" &lt;/CODE&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV class="pr-lg"&gt;&lt;SPAN&gt;&lt;CODE&gt;{
  name                = var.key_vault_name
&lt;/CODE&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV class="pr-lg"&gt;&lt;SPAN&gt;&lt;CODE&gt;  location            = azurerm_resource_group.example.location
&lt;/CODE&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV class="pr-lg"&gt;&lt;SPAN&gt;&lt;CODE&gt;  resource_group_name = azurerm_resource_group.example.name
&lt;/CODE&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV class="pr-lg"&gt;&lt;SPAN&gt;&lt;CODE&gt;  sku_name            = "standard"
&lt;/CODE&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV class="pr-lg"&gt;&lt;SPAN&gt;&lt;CODE&gt;  tenant_id          = var.tenant_id

  # Enable soft delete and purge protection (recommended)
  soft_delete_retention_days = 7
&lt;/CODE&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV class="pr-lg"&gt;&lt;SPAN&gt;&lt;CODE&gt;  purge_protection_enabled    = true
&lt;/CODE&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV class="pr-lg"&gt;&lt;SPAN&gt;&lt;CODE&gt;}&lt;/CODE&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV class="pr-lg"&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV class="pr-lg"&gt;&lt;U&gt;&lt;STRONG&gt;2.&amp;nbsp;Assign Role to a User or Service Principal&lt;/STRONG&gt;&lt;/U&gt;&lt;/DIV&gt;
&lt;DIV class="pr-lg"&gt;# Assign Key Vault Administrator role&lt;/DIV&gt;
&lt;DIV class="pr-lg"&gt;data "azurerm_client_config" "example" {&amp;nbsp;&lt;BR /&gt;}&lt;BR /&gt;resource "azurerm_role_assignment" "key_vault_admin" {&lt;BR /&gt;principal_id = data.azurerm_client_config.example.object_id&lt;BR /&gt;role_definition_name = "Key Vault Administrator"&lt;BR /&gt;scope = azurerm_key_vault.example.id&lt;BR /&gt;}&lt;/DIV&gt;
&lt;DIV class="pr-lg"&gt;Ref -&amp;nbsp;&lt;A href="https://registry.terraform.io/providers/hashicorp/azurerm/latest/docs/resources/role_assignment" target="_blank"&gt;https://registry.terraform.io/providers/hashicorp/azurerm/latest/docs/resources/role_assignment&lt;/A&gt;&lt;/DIV&gt;
&lt;DIV class="pr-lg"&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV class="pr-lg"&gt;&lt;U&gt;&lt;STRONG&gt;3.&amp;nbsp;Create Secrets in the Key Vault&lt;/STRONG&gt;&lt;/U&gt;&lt;/DIV&gt;
&lt;DIV class="pr-lg"&gt;ephemeral "azurerm_key_vault_secret" "example_secret" {&lt;BR /&gt;name = "example-secret"&lt;BR /&gt;value = "your-secret-value" # Replace with your actual secret value&lt;BR /&gt;key_vault_id = azurerm_key_vault.example.id&lt;BR /&gt;}&lt;/DIV&gt;
&lt;DIV class="pr-lg"&gt;Ref -&amp;nbsp;&lt;A href="https://registry.terraform.io/providers/hashicorp/azurerm/latest/docs/ephemeral-resources/key_vault_secret" target="_blank"&gt;https://registry.terraform.io/providers/hashicorp/azurerm/latest/docs/ephemeral-resources/key_vault_secret&lt;/A&gt;&lt;/DIV&gt;
&lt;DIV class="pr-lg"&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV class="pr-lg"&gt;This is example code blocks and might need to be updated based on requirement.&lt;/DIV&gt;
&lt;DIV class="pr-lg"&gt;For other Azure resources, here is the reference -&amp;nbsp;&lt;A href="https://registry.terraform.io/providers/hashicorp/azurerm/latest/docs/" target="_blank"&gt;https://registry.terraform.io/providers/hashicorp/azurerm/latest/docs/&lt;/A&gt;&lt;/DIV&gt;
&lt;DIV class="pr-lg"&gt;&lt;SPAN&gt;&lt;CODE&gt;&lt;/CODE&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;</description>
    <pubDate>Wed, 22 Jan 2025 20:03:31 GMT</pubDate>
    <dc:creator>parthSundarka</dc:creator>
    <dc:date>2025-01-22T20:03:31Z</dc:date>
    <item>
      <title>How to Create Azure Key Vault and Assign Key Vault Administrator Role Using Terraform</title>
      <link>https://community.databricks.com/t5/get-started-discussions/how-to-create-azure-key-vault-and-assign-key-vault-administrator/m-p/106653#M4760</link>
      <description>&lt;P&gt;Hi all,&lt;/P&gt;&lt;P&gt;I’m currently working with Terraform to set up Azure resources, including OpenAI services, and I’d like to extend my configuration to create an Azure Key Vault. Specifically, I want to:&lt;/P&gt;&lt;OL&gt;&lt;LI&gt;Create an Azure Key Vault to store secrets/keys.&lt;/LI&gt;&lt;LI&gt;Assign the &lt;STRONG&gt;&lt;STRONG&gt;Key Vault Administrator role to a specific user or service principal to manage the vault.&lt;/STRONG&gt;&lt;/STRONG&gt;&lt;P&gt;Here's the existing Terraform configuration I have for the OpenAI service:&lt;/P&gt;&lt;PRE&gt;terraform {
  required_version = "&amp;gt;= 1.0.0"

  required_providers {
 &amp;nbsp;&amp;nbsp; azurerm = {
 &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; source&amp;nbsp; = "hashicorp/azurerm"
 &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; version = "&amp;gt;= 2.0.0"
 &amp;nbsp;&amp;nbsp; }
  }
}

provider "azurerm" {
  features {}
 &amp;nbsp; # Authentication with Service Principal
  client_id&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = var.client_id
  client_secret&amp;nbsp;&amp;nbsp; = var.client_secret
  tenant_id&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = var.tenant_id
  subscription_id = var.subscription_id
}

# Define the resource group
resource "azurerm_resource_group" "example" {
  name&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = var.resource_group_name
  location = var.location&amp;nbsp; # Update to a supported region
}

# Define the Cognitive Services account
resource "azurerm_cognitive_account" "openai" {
  name&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = var.cognitive_account_name
  resource_group_name = azurerm_resource_group.example.name
  location&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = azurerm_resource_group.example.location
  kind&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = "OpenAI"
  sku_name&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = "S0"&amp;nbsp; # Ensure this attribute is specified

  identity {
 &amp;nbsp;&amp;nbsp; type = "SystemAssigned"
  }
}

# Define the Cognitive Services model deployment
resource "azurerm_cognitive_deployment" "model" {
  name&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = var.model_name
  cognitive_account_id&amp;nbsp; = azurerm_cognitive_account.openai.id

  model {
 &amp;nbsp;&amp;nbsp; name&amp;nbsp;&amp;nbsp; = var.model_name
 &amp;nbsp;&amp;nbsp; format = "OpenAI"
  }

  sku {
 &amp;nbsp;&amp;nbsp; name = "Standard"&amp;nbsp; # Ensure this is a supported SKU for the chosen region
  }
}

# Define the output blocks
output "api_base" {
  value&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = azurerm_cognitive_account.openai.endpoint
  sensitive = true
}

output "api_key" {
  value&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = azurerm_cognitive_account.openai.primary_access_key
  sensitive = true
}

output "api_type" {
  value = "azure"
}

output "api_version" {
  value = "2024-08-01-preview"&amp;nbsp; # Use the latest version
}

output "engine" {
  value = azurerm_cognitive_deployment.model.name
}
&amp;nbsp;&lt;/PRE&gt;&lt;P&gt;&lt;STRONG&gt;What I want to add:&lt;/STRONG&gt;&lt;/P&gt;&lt;OL&gt;&lt;LI&gt;Create a Key Vault.&lt;/LI&gt;&lt;LI&gt;Add a &lt;STRONG&gt;Key Vault Administrator role assignment for a service principal or a user (please specify how to do this).&lt;/STRONG&gt;&lt;/LI&gt;&lt;LI&gt;Store keys/secrets in the Key Vault.&lt;P&gt;Can someone provide an example or guide me on how to extend my Terraform configuration to include these steps?&lt;/P&gt;&lt;P&gt;Thank you in advance for your help!&lt;/P&gt;&lt;/LI&gt;&lt;/OL&gt;&lt;/LI&gt;&lt;/OL&gt;</description>
      <pubDate>Wed, 22 Jan 2025 13:18:57 GMT</pubDate>
      <guid>https://community.databricks.com/t5/get-started-discussions/how-to-create-azure-key-vault-and-assign-key-vault-administrator/m-p/106653#M4760</guid>
      <dc:creator>naveen0142</dc:creator>
      <dc:date>2025-01-22T13:18:57Z</dc:date>
    </item>
    <item>
      <title>Re: How to Create Azure Key Vault and Assign Key Vault Administrator Role Using Terraform</title>
      <link>https://community.databricks.com/t5/get-started-discussions/how-to-create-azure-key-vault-and-assign-key-vault-administrator/m-p/106725#M4762</link>
      <description>&lt;P&gt;Hi&amp;nbsp;&lt;a href="https://community.databricks.com/t5/user/viewprofilepage/user-id/145294"&gt;@naveen0142&lt;/a&gt;&amp;nbsp;,&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;U&gt;1. Create the Key Vault&lt;/U&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;DIV class="w-full md:max-w-[90vw]"&gt;
&lt;DIV class="codeWrapper text-textMainDark selection:!text-superDark selection:bg-superDuper/10 bg-offset dark:bg-offsetDark my-md relative flex flex-col rounded font-mono text-sm font-thin"&gt;
&lt;DIV class="-mt-xl"&gt;
&lt;DIV class="pr-lg"&gt;&lt;SPAN&gt;&lt;CODE&gt;resource "azurerm_key_vault" "example" &lt;/CODE&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV class="pr-lg"&gt;&lt;SPAN&gt;&lt;CODE&gt;{
  name                = var.key_vault_name
&lt;/CODE&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV class="pr-lg"&gt;&lt;SPAN&gt;&lt;CODE&gt;  location            = azurerm_resource_group.example.location
&lt;/CODE&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV class="pr-lg"&gt;&lt;SPAN&gt;&lt;CODE&gt;  resource_group_name = azurerm_resource_group.example.name
&lt;/CODE&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV class="pr-lg"&gt;&lt;SPAN&gt;&lt;CODE&gt;  sku_name            = "standard"
&lt;/CODE&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV class="pr-lg"&gt;&lt;SPAN&gt;&lt;CODE&gt;  tenant_id          = var.tenant_id

  # Enable soft delete and purge protection (recommended)
  soft_delete_retention_days = 7
&lt;/CODE&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV class="pr-lg"&gt;&lt;SPAN&gt;&lt;CODE&gt;  purge_protection_enabled    = true
&lt;/CODE&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV class="pr-lg"&gt;&lt;SPAN&gt;&lt;CODE&gt;}&lt;/CODE&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV class="pr-lg"&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV class="pr-lg"&gt;&lt;U&gt;&lt;STRONG&gt;2.&amp;nbsp;Assign Role to a User or Service Principal&lt;/STRONG&gt;&lt;/U&gt;&lt;/DIV&gt;
&lt;DIV class="pr-lg"&gt;# Assign Key Vault Administrator role&lt;/DIV&gt;
&lt;DIV class="pr-lg"&gt;data "azurerm_client_config" "example" {&amp;nbsp;&lt;BR /&gt;}&lt;BR /&gt;resource "azurerm_role_assignment" "key_vault_admin" {&lt;BR /&gt;principal_id = data.azurerm_client_config.example.object_id&lt;BR /&gt;role_definition_name = "Key Vault Administrator"&lt;BR /&gt;scope = azurerm_key_vault.example.id&lt;BR /&gt;}&lt;/DIV&gt;
&lt;DIV class="pr-lg"&gt;Ref -&amp;nbsp;&lt;A href="https://registry.terraform.io/providers/hashicorp/azurerm/latest/docs/resources/role_assignment" target="_blank"&gt;https://registry.terraform.io/providers/hashicorp/azurerm/latest/docs/resources/role_assignment&lt;/A&gt;&lt;/DIV&gt;
&lt;DIV class="pr-lg"&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV class="pr-lg"&gt;&lt;U&gt;&lt;STRONG&gt;3.&amp;nbsp;Create Secrets in the Key Vault&lt;/STRONG&gt;&lt;/U&gt;&lt;/DIV&gt;
&lt;DIV class="pr-lg"&gt;ephemeral "azurerm_key_vault_secret" "example_secret" {&lt;BR /&gt;name = "example-secret"&lt;BR /&gt;value = "your-secret-value" # Replace with your actual secret value&lt;BR /&gt;key_vault_id = azurerm_key_vault.example.id&lt;BR /&gt;}&lt;/DIV&gt;
&lt;DIV class="pr-lg"&gt;Ref -&amp;nbsp;&lt;A href="https://registry.terraform.io/providers/hashicorp/azurerm/latest/docs/ephemeral-resources/key_vault_secret" target="_blank"&gt;https://registry.terraform.io/providers/hashicorp/azurerm/latest/docs/ephemeral-resources/key_vault_secret&lt;/A&gt;&lt;/DIV&gt;
&lt;DIV class="pr-lg"&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV class="pr-lg"&gt;This is example code blocks and might need to be updated based on requirement.&lt;/DIV&gt;
&lt;DIV class="pr-lg"&gt;For other Azure resources, here is the reference -&amp;nbsp;&lt;A href="https://registry.terraform.io/providers/hashicorp/azurerm/latest/docs/" target="_blank"&gt;https://registry.terraform.io/providers/hashicorp/azurerm/latest/docs/&lt;/A&gt;&lt;/DIV&gt;
&lt;DIV class="pr-lg"&gt;&lt;SPAN&gt;&lt;CODE&gt;&lt;/CODE&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;</description>
      <pubDate>Wed, 22 Jan 2025 20:03:31 GMT</pubDate>
      <guid>https://community.databricks.com/t5/get-started-discussions/how-to-create-azure-key-vault-and-assign-key-vault-administrator/m-p/106725#M4762</guid>
      <dc:creator>parthSundarka</dc:creator>
      <dc:date>2025-01-22T20:03:31Z</dc:date>
    </item>
  </channel>
</rss>

