Quickstart: Een Azure sleutelkluis en een certificaat maken met behulp van Bicep

Azure Key Vault is een cloudservice die een beveiligd archief biedt voor geheimen, zoals sleutels, wachtwoorden en certificaten. Deze quickstart is gericht op het implementeren van een Bicep-bestand om een sleutelkluis en een zelfondertekend certificaat te maken.

Bicep is een domeinspecifieke taal (DSL) die declaratieve syntaxis gebruikt om Azure-resources te implementeren. Deze taal voorziet in een beknopte syntaxis, betrouwbare typeveiligheid en ondersteuning voor hergebruik van code. Bicep biedt de beste ontwerpervaring voor uw infrastructuur als code-oplossingen in Azure.

Prerequisites

  • Als je geen Azure-abonnement hebt, maak dan een gratis account aan voordat je begint.

Het Bicep-bestand bekijken

De sjabloon die in deze quickstart wordt gebruikt, is afkomstig uit Azure Quickstart-sjablonen.

@description('The name of the key vault to be created.')
param vaultName string

@description('The name of the certificate to be created.')
param certificateName string

@description('The location of the resources.')
param location string = resourceGroup().location

@description('The SKU of the vault to be created.')
@allowed([
  'standard'
  'premium'
])
param skuName string = 'standard'

@description('The common name (subject) for the self-signed certificate. Defaults to the certificate name.')
param certificateCommonName string = certificateName

@description('The validity of the certificate in months.')
@minValue(1)
@maxValue(1200)
param validityInMonths int = 12

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

// Key Vault certificates are a data-plane concept and cannot be created
// directly through ARM. Use the public Bicep registry module which wraps
// `az keyvault certificate create` in a deployment script (it provisions a
// user-assigned managed identity with the Key Vault Certificate Officer
// role on the vault for the duration of the deployment).
module certificate 'br/public:deployment-scripts/create-kv-certificate:3.4.2' = {
  name: 'create-${certificateName}'
  params: {
    akvName: vault.name
    location: location
    certificateNames: [certificateName]
    certificateCommonNames: [certificateCommonName]
    validity: validityInMonths
  }
}

output location string = location
output name string = vault.name
output resourceGroupName string = resourceGroup().name
output resourceId string = vault.id
output certificateSecretId string = certificate.outputs.certificateSecretIds[0][0]
output certificateThumbprint string = certificate.outputs.certificateThumbprintHexs[0][0]

Er worden twee Azure-resources gedefinieerd in het Bicep-bestand:

  • Microsoft.KeyVault/vaults: maak een Azure-sleutelkluis met ingeschakelde Azure RBAC-autorisatie (enableRbacAuthorization: true).
  • Microsoft. Resources/implementaties: geneste implementatie waarop de registermodule create-kv-certificate wordt uitgevoerd om een zelfondertekend certificaat in de kluis te maken. Certificaten zijn een gegevensvlakresource en kunnen niet rechtstreeks worden gemaakt met een ARM-resourcetype.

Het Bicep-bestand implementeren

  1. Sla het bestand Bicep op als main.bicep naar uw lokale computer.

  2. Implementeer het Bicep-bestand met behulp van de Azure CLI of Azure PowerShell.

    az group create --name myResourceGroup --location eastus
    az deployment group create --resource-group myResourceGroup --template-file main.bicep --parameters vaultName=<vault-name> certificateName=myCert
    

    Note

    Vervang <vault-name> door de naam van de sleutelkluis, die globaal uniek moet zijn binnen de vault.azure.net naamruimte.

    Wanneer de implementatie is voltooid, ziet u een bericht waarin wordt aangegeven dat de implementatie is voltooid.

Een Key Vault RBAC-rol toewijzen

De sleutelkluis die door dit Bicep-bestand is gemaakt, maakt gebruik van Azure RBAC voor autorisatie. Als u toegang wilt krijgen tot certificaten via het gegevensvlak (bijvoorbeeld met behulp van de Azure CLI of Azure PowerShell), moet u uzelf een juiste rol toewijzen.

echo "Enter your key vault name:" &&
read keyVaultName &&
az role assignment create --role "Key Vault Certificates Officer" \
    --assignee-object-id $(az ad signed-in-user show --query id -o tsv) \
    --scope $(az keyvault show --name $keyVaultName --query id -o tsv)

Note

Het kan een paar minuten duren voordat roltoewijzingen zijn doorgegeven.

Geïmplementeerde middelen beoordelen

U kunt de Azure-portal gebruiken om de sleutelkluis en het certificaat te controleren, of het volgende Azure CLI of Azure PowerShell script gebruiken om het gemaakte certificaat weer te geven.

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

De hulpbronnen opschonen

Gebruik de Azure-portal, Azure CLI of Azure PowerShell om de resourcegroep en de bijbehorende resources te verwijderen wanneer u deze niet meer nodig hebt.

az group delete --name myResourceGroup

Note

Als u de resourcegroep verwijdert, wordt ook de sleutelkluis verwijderd, maar de kluis krijgt vervolgens de status Voorlopig verwijderd en blijft gedurende de bewaarperiode (standaard 90 dagen) herstelbaar. De naam van de kluis blijft gedurende die periode wereldwijd gereserveerd en, omdat beveiliging tegen definitief verwijderen is ingeschakeld, kan de kluis niet eerder definitief worden verwijderd. Voor standaardsleutelkluizen worden er geen kosten in rekening gebracht voor voorlopig verwijderde kluizen. Zie Overzicht van voorlopig verwijderen in Key Vault voor meer informatie.

Volgende stappen 

In deze quickstart hebt u een sleutelkluis en een certificaat gemaakt met behulp van Bicep en vervolgens de implementatie gevalideerd. Ga verder met de onderstaande artikelen voor meer informatie over Key Vault en Bicep.