Démarrage rapide : Créer un coffre de clés Azure et un certificat à l’aide de Bicep

Azure Key Vault est un service cloud qui fournit un magasin sécurisé pour les secrets, tels que les clés, les mots de passe et les certificats. Ce guide de démarrage rapide se concentre sur le processus de déploiement d’un fichier Bicep pour créer un coffre de clés et un certificat auto-signé.

Bicep est un langage spécifique à un domaine (DSL) qui utilise la syntaxe déclarative pour déployer des ressources Azure. Il fournit une syntaxe concise, une sécurité de type fiable et une prise en charge de la réutilisation du code. Bicep offre la meilleure expérience de création pour vos solutions d’infrastructure en tant que code dans Azure.

Prerequisites

  • Si vous n’avez pas d’abonnement Azure, créez un compte gratuit avant de commencer.

Passez en revue le fichier Bicep

Le modèle utilisé dans ce démarrage rapide est tiré des modèles de démarrage rapide Azure.

@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]

Deux ressources Azure sont définies dans le fichier Bicep :

  • Microsoft.KeyVault/vaults : créer un coffre de clés Azure avec l’autorisation Azure RBAC activée (enableRbacAuthorization: true).
  • Microsoft. Ressources/déploiements : déploiement imbriqué qui exécute le module de registre create-kv-certificate pour créer un certificat auto-signé dans le coffre. Les certificats sont une ressource de plan de données et ne peuvent pas être créés directement avec un type de ressource ARM.

Déployer le fichier Bicep

  1. Enregistrez le fichier Bicep en tant que main.bicep sur votre ordinateur local.

  2. Déployez le fichier Bicep en utilisant Azure CLI ou 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

    Remplacez <vault-name> par le nom du coffre de clés, qui doit être globalement unique dans l’espace de noms vault.azure.net.

    Une fois le déploiement terminé, vous devez voir un message indiquant que le déploiement a réussi.

Attribuer un rôle RBAC pour Key Vault

Le coffre de clés créé par ce fichier Bicep utilise Azure RBAC pour l’autorisation. Pour accéder aux certificats via le plan de données (par exemple, en utilisant le Azure CLI ou Azure PowerShell), vous devez vous attribuer un rôle approprié.

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

Les attributions de rôles peuvent prendre une minute ou deux pour se propager.

Vérifier les ressources déployées

Vous pouvez utiliser le portail Azure pour vérifier le coffre de clés et le certificat, ou utiliser le Azure CLI ou le script Azure PowerShell suivant pour répertorier le certificat créé.

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

Nettoyer les ressources

Quand vous n’avez plus besoin du groupe de ressources ni de ses ressources, utilisez le portail Azure, Azure CLI ou Azure PowerShell pour les supprimer.

az group delete --name myResourceGroup

Note

La suppression du groupe de ressources supprime également le coffre de clés, mais le coffre entre ensuite dans un état supprimé de manière réversible et reste récupérable pendant la période de rétention (90 jours par défaut). Le nom du coffre reste réservé globalement pendant cette période et, comme la protection contre la purge est activée, le coffre ne peut pas être purgé de manière anticipée. Pour les coffres de clés standard, les coffres supprimés de façon réversible n’entraînent pas de frais. Pour plus d’informations, consultez la vue d’ensemble de la suppression réversible dans Key Vault.

Étapes suivantes

Dans ce guide de démarrage rapide, vous avez créé un coffre de clés et un certificat à l’aide de Bicep, puis validé le déploiement. Pour en savoir plus sur Key Vault et Bicep, passez aux articles ci-dessous.