Partager via


Utiliser des clés gérées par le client pour chiffrer vos données App Configuration

Azure App Configuration chiffre les informations sensibles au repos. L’utilisation de clés gérées par le client offre une protection améliorée des données en vous permettant de gérer vos clés de chiffrement. Quand un chiffrement avec des clés gérées est utilisé, toutes les informations sensibles dans App Configuration sont chiffrées avec une clé Azure Key Vault fournie par l’utilisateur. Ceci donne la possibilité d’effectuer une rotation de la clé de chiffrement à la demande. Ceci permet aussi de révoquer l’accès d’Azure App Configuration à des informations sensibles en révoquant l’accès à la clé par l’instance App Configuration.

Vue d’ensemble

Azure App Configuration chiffre les informations sensibles au repos en utilisant une clé de chiffrement AES 256 bits fournie par Microsoft. Chaque instance App Configuration a sa propre clé de chiffrement gérée par le service et utilisée pour chiffrer les informations sensibles. Les informations sensibles incluent les valeurs qui se trouvent dans les paires clé-valeur. Quand la fonctionnalité de clé gérée par le client est activée, App Configuration utilise une identité managée attribuée à l’instance App Configuration pour s’authentifier dans Microsoft Entra ID. L’identité managée appelle ensuite Azure Key Vault et encapsule la clé de chiffrement de l’instance App Configuration. La clé de chiffrement encapsulée est ensuite stockée et la clé de chiffrement désencapsulée est mise en cache pour une heure dans App Configuration. App Configuration actualise toutes les heures la version désencapsulée de la clé de chiffrement de l’instance App Configuration. Ce processus garantit la disponibilité dans des conditions de fonctionnement normales.

Important

Si l’identité affectée à l’instance App Configuration n’est plus autorisée à désencapsuler la clé de chiffrement de l’instance, ou si la clé gérée est supprimée définitivement, il n’est plus possible de déchiffrer les informations sensibles stockées dans l’instance App Configuration. En utilisant la fonction de suppression réversible d’Azure Key Vault, vous réduisez le risque de suppression accidentelle de votre clé de chiffrement.

Quand des utilisateurs activent la fonctionnalité de clé gérée par le client sur leur instance Azure App Configuration, ils contrôlent la capacité du service à accéder à leurs informations sensibles. La clé gérée sert de clé de chiffrement racine. Les utilisateurs peuvent révoquer l’accès de son instance App Configuration à sa clé gérée en changeant sa stratégie d’accès au coffre de clés. Quand cet accès est révoqué, App Configuration perd la capacité à déchiffrer les données utilisateur dans un délai d’une heure. À ce stade, l’instance App Configuration interdit toutes les tentatives d’accès. Cette situation est récupérable en accordant à nouveau au service l’accès à la clé gérée. Dans un délai d’une heure, App Configuration est en mesure de déchiffrer les données utilisateur et de fonctionner dans des conditions normales.

Notes

Toutes les données Azure App Configuration sont stockées pendant jusqu’à 24 heures dans une sauvegarde isolée. Ceci inclut la clé de chiffrement désencapsulée. Ces données ne sont pas disponibles immédiatement pour le service ou l’équipe du service. Dans le cas d’une restauration d’urgence, Azure App Configuration s’autorévoque à nouveau des données des clés gérées.

Spécifications

Les composants suivants sont nécessaires pour activer la fonctionnalité de clé gérée par le client pour la Azure App Configuration :

  • Une instance Azure App Configuration de niveau Standard ou Premium.
  • Une instance Azure Key Vault avec les fonctionnalités de suppression réversible et de protection contre le vidage activées.
  • Une clé RSA ou RSA-HSM au sein du coffre de clés.
    • La clé ne doit pas avoir expiré, elle doit être activée, et les fonctionnalités d’encapsulation et de désencapsulation doivent être activées.

Une fois ces ressources configurées, procédez comme suit pour qu’Azure App Configuration puisse utiliser la clé Key Vault :

  1. Affecter une identité managée à l’instance Azure App Configuration.
  2. Accordez des autorisations à l’identité pour pouvoir accéder à la clé du coffre de clés.
    • Pour les coffres de clés avec le contrôle d’accès en fonction du rôle (RBAC) Azure activé, attribuez l’identité au rôle Key Vault Crypto Service Encryption User sur le coffre de clés cible.
    • Pour les coffres de clés utilisant l’autorisation de stratégie d’accès, accordez les autorisations GET, WRAP et UNWRAP pour l’identité dans la stratégie d’accès du coffre de clés cible.

Activer le chiffrement avec une clé géré par le client pour votre magasin App Configuration

  1. Créez un magasin App Configuration au niveau Standard ou Premium si vous n’en avez pas.

  2. À l’aide d’Azure CLI, créez une instance Azure Key Vault avec la protection contre la purge activée. La suppression réversible est activée par défaut. vault-name et resource-group-name sont tous deux fournis par l’utilisateur et doivent être uniques. Dans ces exemples, nous utilisons contoso-vault et contoso-resource-group.

    az keyvault create --name contoso-vault --resource-group contoso-resource-group --enable-purge-protection
    
  3. Créez une clé Key Vault. Spécifiez un key-name unique pour cette clé et remplacez le nom du Key Vault (contoso-vault) créé à l’étape 2. Spécifiez si vous préférez le chiffrement RSA ou RSA-HSM (RSA-HSM n’est disponible que dans le niveau Premium).

    az keyvault key create --name key-name --kty {RSA or RSA-HSM} --vault-name contoso-vault
    

    La sortie de cette commande montre l’ID de clé (kid) pour la clé générée. Notez l’ID de clé pour pouvoir l’utiliser plus tard dans cet exemple. Cet ID a la forme : https://{my key vault}.vault.azure.net/keys/{key-name}/{key-version}. L’ID de clé a trois composants importants :

    1. URI Key Vault : https://{my key vault}.vault.azure.net
    2. Nom de la clé Key Vault : {key-name}
    3. Version de la clé Key Vault : {key-version}
  4. Créez une identité managée affectée par le système en utilisant Azure CLI, en substituant le nom de votre instance App Configuration et du groupe de ressources utilisés dans les étapes précédentes. L’identité managée sera utilisée pour accéder à la clé gérée. Nous utilisons contoso-app-config pour illustrer le nom d’une instance App Configuration :

    az appconfig identity assign --name contoso-app-config --resource-group contoso-resource-group --identities [system]
    

    La sortie de cette commande inclut l’ID du principal ("principalId") et l’ID de locataire ("tenandId") de l’identité affectée par le système. Ces ID seront utilisés pour accorder à l’identité l’accès à la clé gérée.

    {
        "principalId": {Principal Id},
        "tenantId": {Tenant Id},
        "type": "SystemAssigned",
        "userAssignedIdentities": null
    }
    
  5. L’identité managée de l’instance Azure App Configuration doit accéder à la clé pour effectuer la validation des clés, le chiffrement et le déchiffrement. L’ensemble d’actions spécifique auquel il doit accéder inclut : GET, WRAP et UNWRAP pour les clés. Ces autorisations peuvent être accordées en affectant le rôle Key Vault Crypto Service Encryption User pour les coffres de clés avec le RBAC Azure activé. Pour les coffres de clés utilisant l’autorisation de stratégie d’accès, définissez la stratégie pour les autorisations de clé mentionnées ci-dessus. L’octroi de l’accès nécessite l’ID du principal de l’identité managée de l’instance App Configuration. Remplacez la valeur indiquée ci-dessous comme contoso-principalId par l’ID de principal obtenu à l’étape précédente. Accordez l’autorisation à la clé gérée en utilisant la ligne de commande :

    Pour les coffres de clés avec le RBAC Azure activé, utilisez la commande suivante.

    az role assignment create --assignee contoso-principalId --role "Key Vault Crypto Service Encryption User" --scope key-vault-resource-id
    
  6. Maintenant que l’instance Azure App Configuration peut accéder à la clé gérée, nous pouvons activer la fonctionnalité de clé gérée par le client dans le service en utilisant Azure CLI. Rappelez-vous des propriétés suivantes enregistrées lors des étapes de création de la clé : key name key vault URI.

    az appconfig update -g contoso-resource-group -n contoso-app-config --encryption-key-name key-name --encryption-key-version key-version --encryption-key-vault key-vault-Uri
    

Votre instance Azure App Configuration est maintenant configurée pour utiliser une clé gérée par le client stockée dans Azure Key Vault.

Étapes suivantes

Dans cet article, vous avez configuré votre instance Azure App Configuration pour utiliser une clé gérée par le client pour le chiffrement. Pour en savoir plus sur l’intégration de votre service d’application à des identités managées Azure, passez à l’étape suivante.