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

  1. Connectez-vous au portail Azure.

  2. Ouvrez votre coffre de clés. Entrez coffres de clés dans la zone de recherche ou sélectionnez Coffres de clés.

    Screenshot of the Azure home page to open a key vault using search or by selecting key vault.

  3. Sélectionnez Configuration de l’accès.

    Screenshot of the key vault setting to select access configuration.

  4. Sélectionnez Azure Resource Manager pour le déploiement de modèles. Ensuite, sélectionnez Appliquer.

    Screenshot of the key vault's access configuration that enables Azure Resource Manager for template deployment.

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 s’il est inscrit en accédant à Microsoft Entra ID>Applications d’entreprise et en remplaçant le filtre de recherche par Applications Microsoft. Recherchez Appliance Resource Provider. S’il 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 coffre de clés pour qu’il soit accessible au cours du déploiement d’une application managée.