Snabbstart: Skapa ett Azure nyckelvalv och en hemlighet med hjälp av Bicep

Azure Key Vault är en molntjänst som tillhandahåller ett säkert arkiv för hemligheter, till exempel nycklar, lösenord, certifikat och andra hemligheter. Den här snabbstarten fokuserar på processen att distribuera en Bicep fil för att skapa ett nyckelvalv och en hemlighet.

Bicep är ett domänspecifikt språk (DSL) som använder deklarativ syntax för att distribuera Azure resurser. Det ger koncis syntax, tillförlitlig typsäkerhet och stöd för återanvändning av kod. Bicep erbjuder den bästa redigeringsupplevelsen för dina infrastruktur-som-kod-lösningar i Azure.

Förutsättningar

  • Om du inte har någon Azure prenumeration skapar du ett free-konto innan du börjar.

  • Ditt Microsoft Entra användarobjekt-ID krävs av mallen för att konfigurera behörigheter. Följande procedur hämtar objekt-ID (GUID).

    1. Kör följande kommando Azure PowerShell eller Azure CLI genom att välja Try it och klistra sedan in skriptet i gränssnittsfönstret. Om du vill klistra in skriptet högerklickar du på gränssnittet och väljer sedan Klistra in.

      echo "Enter your email address that is used to sign in to Azure:" &&
      read upn &&
      az ad user show --id $upn --query "id" &&
      echo "Press [ENTER] to continue ..."
      
    2. Skriv ned objekt-ID:t. Du behöver det i nästa avsnitt i den här snabbstarten.

Granska filen Bicep

Viktigt!

Den här snabbstarten använder en extern mall som skapar ett valv med äldre åtkomstprinciper. För produktionsdistributioner använder du Azure RBAC-auktorisering i stället. Se Skapa en Azure key vault och en nyckel med hjälp av Bicep för en Bicep mall som använder enableRbacAuthorization: true, eller se Skydda din Azure Key Vault för omfattande säkerhetsvägledning.

Mallen som används i den här snabbstarten kommer från Azure snabbstartsmallar.

@description('Specifies the name of the key vault.')
param keyVaultName string

@description('Specifies the Azure location where the key vault should be created.')
param location string = resourceGroup().location

@description('Specifies whether Azure Virtual Machines are permitted to retrieve certificates stored as secrets from the key vault.')
param enabledForDeployment bool = false

@description('Specifies whether Azure Disk Encryption is permitted to retrieve secrets from the vault and unwrap keys.')
param enabledForDiskEncryption bool = false

@description('Specifies whether Azure Resource Manager is permitted to retrieve secrets from the key vault.')
param enabledForTemplateDeployment bool = false

@description('Specifies the Azure Active Directory tenant ID that should be used for authenticating requests to the key vault. Get it by using Get-AzSubscription cmdlet.')
param tenantId string = subscription().tenantId

@description('Specifies whether the key vault is a standard vault or a premium vault.')
@allowed([
  'standard'
  'premium'
])
param skuName string = 'standard'

@description('Specifies the name of the secret that you want to create.')
param secretName string

@description('Specifies the value of the secret that you want to create.')
@secure()
param secretValue string

resource kv 'Microsoft.KeyVault/vaults@2023-07-01' = {
  name: keyVaultName
  location: location
  properties: {
    enabledForDeployment: enabledForDeployment
    enabledForDiskEncryption: enabledForDiskEncryption
    enabledForTemplateDeployment: enabledForTemplateDeployment
    enableRbacAuthorization: true
    tenantId: tenantId
    enableSoftDelete: true
    softDeleteRetentionInDays: 90
    sku: {
      name: skuName
      family: 'A'
    }
    networkAcls: {
      defaultAction: 'Allow'
      bypass: 'AzureServices'
    }
  }
}

resource secret 'Microsoft.KeyVault/vaults/secrets@2023-07-01' = {
  parent: kv
  name: secretName
  properties: {
    value: secretValue
  }
}

output location string = location
output name string = kv.name
output resourceGroupName string = resourceGroup().name
output resourceId string = kv.id

Två Azure resurser definieras i filen Bicep:

Distribuera Bicep-filen

  1. Spara filen Bicep som main.bicep till den lokala datorn.

  2. Distribuera Bicep-filen med antingen Azure CLI eller Azure PowerShell.

    az group create --name myResourceGroup --location eastus
    az deployment group create --resource-group myResourceGroup --template-file main.bicep --parameters keyVaultName=<vault-name> objectId=<object-id>
    

    Anmärkning

    Ersätt <vault-name> med namnet på nyckelvalvet. Ersätt <object-id> med objekt-ID:t för en användare, tjänstens huvudkonto eller säkerhetsgrupp i Microsoft Entra-konto för valvet. Objekt-ID:t måste vara unikt för listan över åtkomstprinciper. Hämta det med hjälp av Get-AzADUser eller Get-AzADServicePrincipal cmdlets.

    När distributionen är klar bör du se ett meddelande som anger att distributionen lyckades.

Granska distribuerade resurser

Du kan antingen använda Azure-portalen för att kontrollera nyckelvalvet och hemligheten, eller använda följande Azure CLI eller Azure PowerShell skript för att visa den hemlighet som skapats.

echo "Enter your key vault name:" &&
read keyVaultName &&
az keyvault secret list --vault-name $keyVaultName &&
echo "Press [ENTER] to continue ..."

Rensa resurser

När den inte längre behövs använder du Azure-portalen, Azure CLI eller Azure PowerShell för att ta bort resursgruppen och dess resurser.

az group delete --name myResourceGroup

Nästa steg

I den här snabbstarten skapade du ett nyckelvalv och en sekretess med hjälp av Bicep, och därefter verifierade du distributionen. Om du vill veta mer om Key Vault och Bicep fortsätter du till artiklarna nedan.