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, les certificats et d’autres secrets. Ce guide de démarrage rapide se concentre sur le processus de déploiement d’un modèle de Azure Resource Manager (modèle ARM) pour créer un coffre de clés et un secret.
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 répond aux prérequis et que vous connaissez l'utilisation de modèles ARM, sélectionnez le bouton Deploy to 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 free avant de commencer.
Vérifier le modèle
Le modèle utilisé dans ce guide de démarrage rapide provient de Azure modèles de démarrage rapide.
{
"$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": "10998800669048245550"
}
},
"parameters": {
"keyVaultName": {
"type": "string",
"metadata": {
"description": "Specifies the name of the key vault."
}
},
"location": {
"type": "string",
"defaultValue": "[resourceGroup().location]",
"metadata": {
"description": "Specifies the Azure location where the key vault should be created."
}
},
"enabledForDeployment": {
"type": "bool",
"defaultValue": false,
"metadata": {
"description": "Specifies whether Azure Virtual Machines are permitted to retrieve certificates stored as secrets from the key vault."
}
},
"enabledForDiskEncryption": {
"type": "bool",
"defaultValue": false,
"metadata": {
"description": "Specifies whether Azure Disk Encryption is permitted to retrieve secrets from the vault and unwrap keys."
}
},
"enabledForTemplateDeployment": {
"type": "bool",
"defaultValue": false,
"metadata": {
"description": "Specifies whether Azure Resource Manager is permitted to retrieve secrets from the key vault."
}
},
"tenantId": {
"type": "string",
"defaultValue": "[subscription().tenantId]",
"metadata": {
"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."
}
},
"skuName": {
"type": "string",
"defaultValue": "standard",
"allowedValues": [
"standard",
"premium"
],
"metadata": {
"description": "Specifies whether the key vault is a standard vault or a premium vault."
}
},
"secretsObject": {
"type": "secureObject",
"metadata": {
"description": "Specifies all secrets {\"secretName\":\"\",\"secretValue\":\"\"} wrapped in a secure object."
}
}
},
"resources": [
{
"type": "Microsoft.KeyVault/vaults",
"apiVersion": "2023-07-01",
"name": "[parameters('keyVaultName')]",
"location": "[parameters('location')]",
"properties": {
"enabledForDeployment": "[parameters('enabledForDeployment')]",
"enabledForTemplateDeployment": "[parameters('enabledForTemplateDeployment')]",
"enabledForDiskEncryption": "[parameters('enabledForDiskEncryption')]",
"enableRbacAuthorization": true,
"tenantId": "[parameters('tenantId')]",
"enableSoftDelete": true,
"softDeleteRetentionInDays": 90,
"enablePurgeProtection": true,
"sku": {
"name": "[parameters('skuName')]",
"family": "A"
},
"networkAcls": {
"defaultAction": "Allow",
"bypass": "AzureServices"
}
}
},
{
"copy": {
"name": "secrets",
"count": "[length(parameters('secretsObject').secrets)]"
},
"type": "Microsoft.KeyVault/vaults/secrets",
"apiVersion": "2023-07-01",
"name": "[format('{0}/{1}', parameters('keyVaultName'), parameters('secretsObject').secrets[copyIndex()].secretName)]",
"properties": {
"value": "[parameters('secretsObject').secrets[copyIndex()].secretValue]"
},
"dependsOn": [
"[resourceId('Microsoft.KeyVault/vaults', parameters('keyVaultName'))]"
]
}
],
"outputs": {
"location": {
"type": "string",
"value": "[parameters('location')]"
},
"name": {
"type": "string",
"value": "[parameters('keyVaultName')]"
},
"resourceGroupName": {
"type": "string",
"value": "[resourceGroup().name]"
},
"resourceId": {
"type": "string",
"value": "[resourceId('Microsoft.KeyVault/vaults', parameters('keyVaultName'))]"
}
}
}
Deux ressources Azure sont définies dans le modèle :
-
Microsoft.KeyVault/vaults : créez un coffre de clés Azure avec l’autorisation Azure RBAC activée (
enableRbacAuthorization: true), la suppression réversible activée et la protection contre la purge activée. -
Microsoft.KeyVault/vaults/secrets: créez un ou plusieurs secrets du coffre de clés, en parcourant le tableau
secretsObject.secretstransmis au modèle.
Étant donné que le coffre utilise Azure RBAC pour l’autorisation du plan de données, vous accordez l’accès aux secrets en affectant un rôle Azure (plutôt qu’en configurant des stratégies d’accès).
Vous trouverez d’autres exemples de modèles Azure Key Vault dans Azure modèles de démarrage rapide.
Déployer le modèle
Sélectionnez l’image suivante pour vous connecter à Azure et ouvrir un modèle. Le modèle crée un coffre-fort de clés et un secret.
Sélectionnez ou entrez les valeurs suivantes. Sauf s’il est spécifié, utilisez la valeur par défaut.
Subscription : 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.
Key Vault Nom : entrez un nom pour le key vault, qui doit être globalement unique dans l’espace de noms
vault.azure.net. Vous avez besoin de ce nom dans la section suivante lorsque vous validez le déploiement.Nom de la référence SKU : sélectionnez standard ou Premium. La valeur par défaut est standard.
Objet « Secrets » : fournissez le ou les secrets à créer sous forme d’objet JSON avec un tableau
secrets. Par exemple:{ "secrets": [ { "secretName": "adminpassword", "secretValue": "<your-secret-value>" } ] }Étant donné que l’objet Secrets est un
secureObjectparamètre, sa valeur n’est pas journalisée ou renvoyée après le déploiement.
Sélectionnez Vérifier + créer, puis sélectionnez Créer. Une fois que le coffre de clés et le secret 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 secrets 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 des secrets 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 Secrets 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 le coffre de clés et le secret, ou utiliser le script Azure CLI ou Azure PowerShell suivant pour répertorier le secret créé.
echo "Enter your key vault name:" &&
read keyVaultName &&
az keyvault secret list --vault-name $keyVaultName &&
echo "Press [ENTER] to continue ..."
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 les Key Vault et les ressources associées. Pour supprimer le groupe de ressources à l’aide de Azure CLI ou de 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 de clés et un secret à l'aide d'un modèle ARM, puis validé le déploiement. Pour en savoir plus sur Key Vault et Azure Resource Manager, passez aux articles ci-dessous.
- Lire une vue d'ensemble d'Azure Key Vault
- En savoir plus sur Azure Resource Manager
- Consultez la vue d’ensemble de la sécurité Key Vault