Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
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 le certificat. Ce guide de démarrage rapide se concentre sur le processus de déploiement d’un modèle Azure Resource Manager (modèle ARM) pour créer un coffre de clés et une clé.
Un modèle Azure Resource Manager est un fichier JSON (JavaScript Object Notation) qui définit l’infrastructure et la configuration de votre projet. Le modèle utilise la syntaxe déclarative. Vous décrivez votre déploiement prévu sans écrire la séquence de commandes de programmation pour créer le déploiement.
Si votre environnement remplit les prérequis et que vous êtes déjà familiarisé avec l’utilisation des modèles ARM, sélectionnez le bouton Déployer sur Azure. Le modèle s’ouvre dans le portail Azure.
Prerequisites
Pour terminer cet article :
- Si vous n’avez pas d’abonnement Azure, créez un compte gratuit avant de commencer.
- L’utilisateur doit disposer d’un rôle prédéfini d’Azure attribué, rôle recommandé contributeur. En savoir plus ici
Vérifier le modèle
Le modèle utilisé dans ce démarrage rapide est tiré des modèles de démarrage rapide Azure.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"metadata": {
"_generator": {
"name": "bicep",
"version": "0.42.1.51946",
"templateHash": "9113739717796369919"
}
},
"parameters": {
"vaultName": {
"type": "string",
"metadata": {
"description": "The name of the key vault to be created."
}
},
"keyName": {
"type": "string",
"metadata": {
"description": "The name of the key to be created."
}
},
"location": {
"type": "string",
"defaultValue": "[resourceGroup().location]",
"metadata": {
"description": "The location of the resources."
}
},
"skuName": {
"type": "string",
"defaultValue": "standard",
"allowedValues": [
"standard",
"premium"
],
"metadata": {
"description": "The SKU of the vault to be created."
}
},
"keyType": {
"type": "string",
"defaultValue": "RSA",
"allowedValues": [
"EC",
"EC-HSM",
"RSA",
"RSA-HSM"
],
"metadata": {
"description": "The JsonWebKeyType of the key to be created."
}
},
"keyOps": {
"type": "array",
"defaultValue": [],
"metadata": {
"description": "The permitted JSON web key operations of the key to be created."
}
},
"keySize": {
"type": "int",
"defaultValue": 2048,
"metadata": {
"description": "The size in bits of the key to be created."
}
},
"curveName": {
"type": "string",
"defaultValue": "",
"allowedValues": [
"",
"P-256",
"P-256K",
"P-384",
"P-521"
],
"metadata": {
"description": "The JsonWebKeyCurveName of the key to be created."
}
}
},
"resources": [
{
"type": "Microsoft.KeyVault/vaults",
"apiVersion": "2023-07-01",
"name": "[parameters('vaultName')]",
"location": "[parameters('location')]",
"properties": {
"enableRbacAuthorization": true,
"enableSoftDelete": true,
"softDeleteRetentionInDays": 90,
"enablePurgeProtection": true,
"enabledForDeployment": false,
"enabledForDiskEncryption": false,
"enabledForTemplateDeployment": false,
"tenantId": "[subscription().tenantId]",
"sku": {
"name": "[parameters('skuName')]",
"family": "A"
},
"networkAcls": {
"defaultAction": "Allow",
"bypass": "AzureServices"
}
}
},
{
"type": "Microsoft.KeyVault/vaults/keys",
"apiVersion": "2023-07-01",
"name": "[format('{0}/{1}', parameters('vaultName'), parameters('keyName'))]",
"properties": {
"kty": "[parameters('keyType')]",
"keyOps": "[parameters('keyOps')]",
"keySize": "[parameters('keySize')]",
"curveName": "[parameters('curveName')]"
},
"dependsOn": [
"[resourceId('Microsoft.KeyVault/vaults', parameters('vaultName'))]"
]
}
],
"outputs": {
"proxyKey": {
"type": "object",
"value": "[reference(resourceId('Microsoft.KeyVault/vaults/keys', parameters('vaultName'), parameters('keyName')), '2023-07-01')]"
},
"location": {
"type": "string",
"value": "[parameters('location')]"
},
"name": {
"type": "string",
"value": "[parameters('vaultName')]"
},
"resourceGroupName": {
"type": "string",
"value": "[resourceGroup().name]"
},
"resourceId": {
"type": "string",
"value": "[resourceId('Microsoft.KeyVault/vaults', parameters('vaultName'))]"
}
}
}
Deux ressources sont définies dans le modèle :
- Microsoft. KeyVault/vaults : créez un coffre de clés Azure.
- Microsoft.KeyVault/vaults/keys: créer une clé de coffre de clés.
Le modèle crée le coffre de clés avec l’autorisation Azure RBAC activée. Cela signifie que le coffre utilise le contrôle d’accès en fonction du rôle Azure (Azure RBAC) pour l’autorisation sur le plan de données, plutôt que des stratégies d’accès.
Vous trouverez d’autres exemples de modèles Azure Key Vault dans les modèles de démarrage rapide Azure.
Paramètres de modèle
| Paramètre | Description |
|---|---|
| vaultName | Nom du nouveau coffre de clés. Doit être globalement unique dans l’espace de noms vault.azure.net. |
| Keyname | Nom de la clé à créer dans le coffre. |
| emplacement | Région Azure pour les ressources. La valeur par défaut est l’emplacement du groupe de ressources. |
| skuName | SKU du coffre.
standard (par défaut) ou premium. |
| keyType | Type de clé à créer. Un des RSA, RSA-HSM, EC, EC-HSM. La valeur par défaut est RSA. Voir JsonWebKeyType. |
| keySize | Taille en bits de la clé (RSA uniquement). La valeur par défaut est 2048. |
| curveName | Nom de courbe elliptique (pour les clés EC uniquement). Un des P-256, P-256K, P-384, P-521. Voir JsonWebKeyCurveName. |
| keyOps | Opérations de clé web JSON autorisées pour la clé (par exemple). ["sign","verify","encrypt","decrypt","wrapKey","unwrapKey"] Le tableau vide (valeur par défaut) autorise toutes les opérations. |
Déployer le modèle
Cliquez sur l’image ci-après pour vous connecter à Azure et ouvrir un modèle. Le modèle crée un coffre de clés et une clé.
Sélectionnez ou entrez les valeurs suivantes. Sauf s’il est spécifié, utilisez la valeur par défaut.
- Abonnement : sélectionnez un abonnement Azure.
- Groupe de ressources : sélectionnez Créer, entrez un nom unique pour le groupe de ressources, puis sélectionnez OK.
- Région : sélectionnez un emplacement. Par exemple, USA Centre.
-
Nom du coffre : entrez un nom pour le coffre de clés, qui doit être globalement unique dans l’espace
vault.azure.netde noms. - Nom de la clé : entrez un nom pour la clé que vous stockez dans le coffre de clés.
- Nom de la référence SKU : sélectionnez standard ou Premium. La valeur par défaut est standard.
- Type de clé : sélectionnez un type de clé. La valeur par défaut est RSA.
- Taille de clé : entrez une taille de clé (clés RSA). La valeur par défaut est 2048.
- Nom de la courbe : pour les touches EC, sélectionnez une courbe. Laissez vide pour les clés RSA.
Sélectionnez Vérifier + créer, puis sélectionnez Créer. Lorsque le coffre de clés et la clé ont été déployés avec succès, vous recevez une notification.
Vous pouvez également utiliser Azure PowerShell, le Azure CLI ou l’API REST pour déployer le modèle. Pour découvrir d’autres méthodes de déploiement, consultez Déployer des modèles.
Attribuer un rôle RBAC pour Key Vault
Le coffre de clés créé par ce modèle utilise Azure RBAC pour l’autorisation. Pour accéder aux clés via le plan de données (par exemple, à l’aide de la Azure CLI ou Azure PowerShell), vous devez vous attribuer un rôle approprié.
Obtenez votre ID d’objet utilisateur Microsoft Entra :
az ad signed-in-user show --query id -o tsvAttribuez le rôle Responsable crypto Key Vault à vous-même sur le coffre de clés :
echo "Enter your key vault name:" && read keyVaultName && az role assignment create --role "Key Vault Crypto 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.
Passer en revue les ressources déployées
Vous pouvez utiliser le portail Azure pour vérifier l'Azure Key Vault et la clé. Vous pouvez également utiliser l’interface de ligne de commande Azure ou le script Azure PowerShell suivant pour répertorier la clé créée.
echo "Enter your key vault name:" &&
read keyVaultName &&
az keyvault key list --vault-name $keyVaultName &&
echo "Press [ENTER] to continue ..."
La création de clé à l’aide d’un modèle ARM diffère de la création de clé via le plan de données
Création d’une clé via ARM
Il est uniquement possible de créer de nouvelles clés. Il n’est pas possible de mettre à jour des clés existantes, ni de créer de nouvelles versions de clés existantes. Si la clé existe déjà, la clé existante est récupérée à partir du stockage et utilisée (aucune opération d’écriture ne se produit).
Pour être autorisé à utiliser cette API, l’appelant doit disposer de l’action de contrôle d’accès en fonction du rôle (Azure RBAC) « Microsoft.KeyVault/vaults/keys/write ». Le rôle intégré « Contributeur Key Vault » est suffisant, car il autorise toutes les actions RBAC Azure qui correspondent au modèle « Microsoft.KeyVault/* ».
API existante (création d’une clé via le plan de données)
- Il est possible de créer de nouvelles clés, de mettre à jour des clés existantes et de créer de nouvelles versions de clés existantes.
- L’appelant doit être autorisé à utiliser cette API. Si le coffre est activé pour Azure RBAC, l’appelant doit disposer de la DataAction Azure RBAC « Microsoft.KeyVault/vaults/keys/create/action ».
Nettoyer les ressources
D’autres guides de démarrage rapide et didacticiels Key Vault s’appuient sur ce guide de démarrage rapide. Si vous avez l'intention de continuer à travailler avec d'autres démarrages rapides et didacticiels, vous pouvez souhaiter laisser ces ressources en place. Quand vous n’en avez plus besoin, supprimez le groupe de ressources, qui supprime le coffre de clés et les ressources associées. Pour supprimer le groupe de ressources avec Azure CLI ou Azure PowerShell :
echo "Enter the Resource Group name:" &&
read resourceGroupName &&
az group delete --name $resourceGroupName &&
echo "Press [ENTER] to continue ..."
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-fort de clés et une clé en utilisant un gabarit ARM, puis validé le déploiement. Pour en savoir plus sur Key Vault et Azure Resource Manager, consultez ces articles.
- Lire un aperçu d’Azure Key Vault
- En savoir plus sur Azure Resource Manager
- Passer en revue la Vue d’ensemble de la sécurité de Key Vault