Accéder à un secret dans le coffre de clés lors du déploiement d’applications managées Azure
Lorsque vous avez besoin de passer une valeur sécurisée (par exemple, un mot de passe) comme paramètre au cours du déploiement, vous pouvez récupérer la valeur à partir d’un coffre Azure Key Vault. Pour accéder au coffre de clés lors du déploiement d’applications managées, vous devez accorder l’accès au principal de service du fournisseur de ressources d’appliance. Le service Applications managées utilise cette identité pour exécuter des opérations. Pour pouvoir récupérer une valeur dans un coffre de clés pendant le déploiement, le principal de service doit avoir accès à ce coffre.
Cet article décrit comment configurer le coffre de clés pour l’utiliser avec les applications managées.
Activer un déploiement de modèle
Connectez-vous au portail Azure.
Ouvrez votre coffre de clés. Entrez coffres de clés dans la zone de recherche ou sélectionnez Coffres de clés.
Sélectionnez Configuration de l’accès.
Sélectionnez Azure Resource Manager pour le déploiement de modèles. Ensuite, sélectionnez Appliquer.
Ajouter un service en tant que contributeur
Attribuez le rôle Contributeur à l'utilisateur du fournisseur de ressources de l'appliance au niveau de l'étendue du coffre de clés. Le rôle Contributeur est un rôle d’administrateur privilégié pour l’attribution de rôle. Pour connaître la procédure détaillée, rendez-vous sur Attribution de rôles Azure à l’aide du Portail Azure.
Le fournisseur de ressources d’appliance est un principal de service dans votre locataire Microsoft Entra. À partir du Portail Microsoft Azure, vous pouvez vérifier son inscription sur Microsoft Entra ID>Applications d’entreprise et modifier le filtre de recherche par Applications Microsoft. Recherchez Appliance Resource Provider. Si le principal de service est introuvable, inscrivez le fournisseur de ressources Microsoft.Solutions
.
Référencer un secret de coffre de clés
Pour transmettre un secret d’un coffre de clés à un modèle dans votre application managée, vous devez utiliser un modèle lié ou imbriqué et référencer le coffre de clés dans les paramètres de ce modèle lié ou imbriqué. Fournissez l’ID de ressource du coffre de clés et le nom du secret.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"location": {
"type": "string",
"defaultValue": "[resourceGroup().location]",
"metadata": {
"description": "The location where the resources will be deployed."
}
},
"vaultName": {
"type": "string",
"metadata": {
"description": "The name of the key vault that contains the secret."
}
},
"secretName": {
"type": "string",
"metadata": {
"description": "The name of the secret."
}
},
"vaultResourceGroupName": {
"type": "string",
"metadata": {
"description": "The name of the resource group that contains the key vault."
}
},
"vaultSubscription": {
"type": "string",
"defaultValue": "[subscription().subscriptionId]",
"metadata": {
"description": "The name of the subscription that contains the key vault."
}
}
},
"resources": [
{
"type": "Microsoft.Resources/deployments",
"apiVersion": "2022-09-01",
"name": "dynamicSecret",
"properties": {
"mode": "Incremental",
"expressionEvaluationOptions": {
"scope": "inner"
},
"template": {
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"adminLogin": {
"type": "string"
},
"adminPassword": {
"type": "securestring"
},
"location": {
"type": "string"
}
},
"variables": {
"sqlServerName": "[concat('sql-', uniqueString(resourceGroup().id, 'sql'))]"
},
"resources": [
{
"type": "Microsoft.Sql/servers",
"apiVersion": "2022-05-01-preview",
"name": "[variables('sqlServerName')]",
"location": "[parameters('location')]",
"properties": {
"administratorLogin": "[parameters('adminLogin')]",
"administratorLoginPassword": "[parameters('adminPassword')]"
}
}
],
"outputs": {
"sqlFQDN": {
"type": "string",
"value": "[reference(variables('sqlServerName')).fullyQualifiedDomainName]"
}
}
},
"parameters": {
"location": {
"value": "[parameters('location')]"
},
"adminLogin": {
"value": "ghuser"
},
"adminPassword": {
"reference": {
"keyVault": {
"id": "[resourceId(parameters('vaultSubscription'), parameters('vaultResourceGroupName'), 'Microsoft.KeyVault/vaults', parameters('vaultName'))]"
},
"secretName": "[parameters('secretName')]"
}
}
}
}
}
],
"outputs": {
}
}
Étapes suivantes
Vous avez configuré votre Key Vault pour qu’il soit accessible au cours du déploiement d’une application managée.
- Pour obtenir des informations sur la transmission d’une valeur à partir d’un coffre de clés en tant que paramètre de modèle, rendez-vous à la page Utiliser Azure Key Vault pour transmettre une valeur de paramètre sécurisée pendant le déploiement.
- Pour en savoir plus sur la sécurité du coffre de clés, consultez Sécurité Azure Key Vault et Authentification dans Azure Key Vault.
- Pour obtenir des exemples d’applications managées, rendez-vous à la page Exemples de projets pour des applications managées Azure.
- Pour en savoir plus sur la création d’un fichier de définition de l’interface utilisateur pour une application managée, consultez Prise en main de CreateUiDefinition.