Partager via


Chiffrer des disques de système d’exploitation avec une clé gérée par le client (CMK) sur Azure Red Hat OpenShift

Par défaut, les disques de système d’exploitation des machines virtuelles d’un cluster Azure Red Hat OpenShift étaient chiffrés avec les clés générées automatiquement, gérées par Microsoft Azure. Pour renforcer la sécurité, les clients peuvent chiffrer les disques de système d’exploitation avec des clés auto-gérées lors du déploiement d’un cluster Azure Red Hat OpenShift. Cette fonctionnalité permet de mieux contrôler le chiffrement des données confidentielles avec les clés gérées par le client (CMK).

Les clusters créés avec des clés gérées par le client ont une classe de stockage par défaut activée avec leurs clés. Par conséquent, les disques de système d’exploitation et les disques de données sont chiffrés par ces clés. Les clés gérées par le client doivent être stockées dans Azure Key Vault.

Pour plus d’informations sur l’utilisation d’Azure Key Vault pour créer et gérer des clés, consultez la page Chiffrement côté serveur de Stockage sur disque Azure dans la documentation Microsoft Azure.

Avec le cryptage basé sur l'hôte, les données stockées sur l'hôte des machines virtuelles de vos nœuds d'agent Azure Red Hat OpenShift sont cryptées au repos et circulent de manière cryptée vers le service de stockage. Le cryptage basé sur l'hôte signifie que les disques temporaires sont cryptés au repos avec des clés gérées par la plate-forme.

Le cache du système d’exploitation et des disques de données est chiffré au repos avec des clés gérées par le client ou par la plateforme, selon le type de chiffrement défini sur ces disques. Par défaut, lorsque vous utilisez Azure Red Hat OpenShift, le système d’exploitation et les disques de données sont chiffrés au repos avec des clés gérées par la plateforme, ce qui signifie que les caches de ces disques sont également chiffrés au repos par défaut avec des clés gérées par la plateforme.

Vous pouvez spécifier vos propres clés gérées en suivant les étapes de chiffrement ci-dessous. Le cache de ces disques sera également chiffré à l’aide de la clé que vous spécifiez au cours de cette étape.

Limitation

Il incombe aux clients de conserver le coffre de clés et le jeu de chiffrement de disque dans Azure. Si les clés ne sont pas conservées, les clusters Azure Red Hat OpenShift sont rompus. Les machines virtuelles arrêtent de fonctionner et, par conséquent, le cluster Azure Red Hat OpenShift ne fonctionnera plus.

L'équipe d'ingénierie d'Azure Red Hat OpenShift ne peut pas accéder aux clés. Par conséquent, ils ne peuvent pas sauvegarder, répliquer ou récupérer les clés.

Pour plus d’informations sur l’utilisation de jeux de chiffrement de disque pour gérer vos clés de chiffrement, consultez Chiffrement côté serveur de Stockage sur disque Azure dans la documentation Microsoft Azure.

Prérequis

  • Vérifiez vos autorisations. Vous devez disposer d’autorisations Contributeur et d’autorisations Administrateur de l’accès utilisateur ou d’autorisations Propriétaire.

  • Inscrivez les fournisseurs de ressources si vous avez plusieurs abonnements Azure. Pour plus d’informations sur l’inscription, consultez Inscrire les fournisseurs de ressources.

  • Vous devez activer la fonctionnalité EncryptionAtHost sur votre abonnement. Vous pouvez l’activer en exécutant :

    az feature register --namespace Microsoft.Compute --name EncryptionAtHost
    
  • Vous pouvez vérifier l’état actuel de la fonctionnalité en exécutant :

    az feature show --namespace Microsoft.Compute --name EncryptionAtHost
    

Créer un réseau virtuel contenant deux sous-réseaux vides

Créez un réseau virtuel contenant deux sous-réseaux vides. Si vous disposez d’un réseau virtuel existant qui répond à vos besoins, vous pouvez ignorer cette étape. Pour passer en revue la procédure de création d’un réseau virtuel, consultez Créer un réseau virtuel contenant deux sous-réseaux vides.

Créer une instance Azure Key Vault

Vous devez utiliser une instance Azure Key Vault pour stocker vos clés. Créez un nouveau coffre de clés avec la protection de purge activée. Créez ensuite une clé dans le coffre de clés pour stocker votre propre clé personnalisée.

  1. Définissez des autorisations d’environnement supplémentaires :
    export KEYVAULT_NAME=$USER-enckv
    export KEYVAULT_KEY_NAME=$USER-key
    export DISK_ENCRYPTION_SET_NAME=$USER-des
    
  2. Créez un coffre de clés et une clé dans le coffre de clés :
    az keyvault create -n $KEYVAULT_NAME \
                   -g $RESOURCEGROUP \
                   -l $LOCATION \
                   --enable-purge-protection true
    
    az keyvault key create --vault-name $KEYVAULT_NAME \
                           -n $KEYVAULT_KEY_NAME \
                           --protection software
    
    KEYVAULT_ID=$(az keyvault show --name $KEYVAULT_NAME --query "[id]" -o tsv)
    
    KEYVAULT_KEY_URL=$(az keyvault key show --vault-name $KEYVAULT_NAME \
                                            --name $KEYVAULT_KEY_NAME \
                                            --query "[key.kid]" -o tsv)
    

Créer un jeu de chiffrement de disque Azure

Le jeu de chiffrement de disque Azure est utilisé comme point de référence pour les disques dans des clusters Azure Red Hat OpenShift. Il est connecté au coffre de clés Azure que vous avez créé à l’étape précédente, et extrait les clés gérées par le client à partir de cet emplacement.

az disk-encryption-set create -n $DISK_ENCRYPTION_SET_NAME \
                              -l $LOCATION \
                              -g $RESOURCEGROUP \
                              --source-vault $KEYVAULT_ID \
                              --key-url $KEYVAULT_KEY_URL

DES_ID=$(az disk-encryption-set show -n $DISK_ENCRYPTION_SET_NAME -g $RESOURCEGROUP --query 'id' -o tsv)

DES_IDENTITY=$(az disk-encryption-set show -n $DISK_ENCRYPTION_SET_NAME \
                                           -g $RESOURCEGROUP \
                                           --query "[identity.principalId]" \
                                           -o tsv)

Accorder des autorisations pour l’ensemble de chiffrement de disque pour accéder au coffre de clés

Utilisez le jeu de chiffrement de disque que vous avez créé à l’étape précédente et accordez l’autorisation pour le jeu de chiffrement de disque pour accéder à Azure Key Vault et l’utiliser.

az keyvault set-policy -n $KEYVAULT_NAME \
                       -g $RESOURCEGROUP \
                       --object-id $DES_IDENTITY \
                       --key-permissions wrapkey unwrapkey get

Créer un cluster Azure Red Hat OpenShift

Créez un cluster Azure Red Hat OpenShift pour utiliser les clés gérées par le client.

Remarque

L’activation de CMK sur des clusters ARO existants n’est possible que pour des nœuds Worker, pas pour des nœuds maîtres. Pour ce faire, vous pouvez utiliser machine-API par le biais de ressources personnalisées (CR) machineset. Pour plus d’informations, consultez Activation des clés de chiffrement gérées par le client pour un ensemble de machines et Modification d’un ensemble de machines de calcul.

az aro create --resource-group $RESOURCEGROUP \
              --name $CLUSTER  \
              --vnet aro-vnet  \
              --master-subnet master-subnet \
              --worker-subnet worker-subnet \
              --disk-encryption-set $DES_ID

Après avoir créé le cluster Azure Red Hat OpenShift, toutes les machines virtuelles sont chiffrées avec les clés de chiffrement gérées par le client.

Pour vérifier que les clés ont été correctement configurées, exécutez les commandes suivantes :

  1. Obtient le nom du groupe de ressources de cluster dans lequel se trouvent les machines virtuelles du cluster, les disques, et ainsi de suite :
    CLUSTERRESOURCEGROUP=$(az aro show --resource-group $RESOURCEGROUP --name $CLUSTER --query 'clusterProfile.resourceGroupId' -o tsv | cut -d '/' -f 5)
    
  2. Vérifiez que le jeu de chiffrement de disque correct est associé aux disques :
    az disk list -g $CLUSTERRESOURCEGROUP --query '[].encryption'
    
    Le champ diskEncryptionSetId de la sortie doit pointer vers le jeu de chiffrement de disque que vous avez spécifié lors de la création du cluster Azure Red Hat OpenShift.