Partager via


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.

    Capture d’écran de la page d’accueil Azure pour ouvrir un coffre de clés à l’aide de la recherche ou en sélectionnant un coffre de clés.

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

    Capture d’écran du paramètre du coffre de clés pour sélectionner la configuration d’accès.

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

    Capture d’écran de la configuration d’accès au coffre de clés qui activent Azure Resource Manager pour le déploiement de modèles.

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.