Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Par défaut, Microsoft Azure utilise des clés générées automatiquement pour chiffrer les disques du système d’exploitation des machines virtuelles dans un cluster Azure Red Hat OpenShift. Pour une sécurité supplémentaire, vous pouvez chiffrer les disques du système d’exploitation à l’aide de clés autogéées lorsque vous déployez un cluster. Cette fonctionnalité vous permet de contrôler davantage en chiffrant les données confidentielles avec des clés gérées par le client.
Les clusters 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, ces clés chiffrent à la fois les disques de système d’exploitation et les disques de données. Azure Key Vault stocke les clés gérées par le client. Pour plus d’informations sur l’utilisation de Key Vault pour créer et gérer des clés, consultez Azure Key Vault concepts de base.
Avec le chiffrement basé sur l’hôte, les données stockées sur l’hôte de machine virtuelle de votre Azure Red Hat OpenShift machines virtuelles de nœud sont chiffrées au repos. Ces données sont chiffrées dans stockage Azure. Le chiffrement basé sur l’hôte signifie que les disques temporaires sont chiffrés au repos à l’aide de clés gérées par la plateforme.
Le cache des disques de système d’exploitation et de données est chiffré au repos avec des clés gérées par la plateforme ou des clés gérées par le client. Le type de clés dépend du type de chiffrement que vous définissez sur ces disques. Par défaut, lorsque vous utilisez Azure Red Hat OpenShift, les disques de système d’exploitation et de données sont chiffrés au repos avec des clés gérées par la plateforme. Ce paramètre par défaut signifie que les caches de ces disques sont également chiffrés par défaut au repos avec des clés gérées par la plateforme.
Vous pouvez spécifier vos propres clés managées en suivant les étapes de chiffrement décrites dans la section suivante. Les clés que vous spécifiez dans cette étape chiffrent également le cache pour ces disques.
Limite
Les clients doivent maintenir le coffre de clés et l’ensemble de chiffrement de disque dans Azure. L’échec de la maintenance des clés entraîne des clusters Azure Red Hat OpenShift rompus. Les machines virtuelles arrêtent de fonctionner et, par conséquent, l’ensemble du cluster Azure Red Hat OpenShift cesse de fonctionner.
L'équipe d'ingénierie 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 des jeux de chiffrement de disque pour gérer vos clés de chiffrement, consultez le chiffrement côté serveur de Stockage sur disque Azure.
Conditions préalables
Vérifiez vos autorisations. Vous devez disposer des autorisations nécessaires pour créer un cluster Azure Red Hat OpenShift, un coffre de clés et un jeu de chiffrement de disque.
Vérifiez que vous disposez du rôle Responsable de la cryptographie Key Vault. Ce rôle dispose des autorisations nécessaires pour créer une clé.
Inscrivez les fournisseurs de ressources si vous avez plusieurs abonnements Azure. Pour plus d’informations sur l’inscription, consultez Inscrire les fournisseurs de ressources.
Vérifiez que la
EncryptionAtHostfonctionnalité est activée sur votre abonnement. Vous pouvez l’activer en exécutant :az feature register --namespace Microsoft.Compute --name EncryptionAtHostVous pouvez vérifier l’état actuel de la fonctionnalité en exécutant :
az feature show --namespace Microsoft.Compute --name EncryptionAtHost
Créer une instance de Key Vault
Vous devez utiliser une instance de Key Vault pour stocker vos clés. Créez un nouveau coffre de clés avec la protection contre la suppression définitive activée. Ensuite, créez une clé dans le coffre de clés pour stocker votre propre clé personnalisée.
Définissez des variables d’environnement :
export KEYVAULT_NAME=aro-enckv export KEYVAULT_KEY_NAME=aro-key export DISK_ENCRYPTION_SET_NAME=aro-des export LOCATION=<location-name> export RESOURCEGROUP=<resource-group-name>Créez un coffre de clés :
az keyvault create \ --name $KEYVAULT_NAME \ --resource-group $RESOURCEGROUP \ --location $LOCATION \ --enable-purge-protection trueRemarque
Vous devez activer la protection contre la suppression définitive. Consultez Configurez votre Azure Key Vault.
Facultatif : étant donné que la protection contre le vidage est activée, vous ne pouvez pas réutiliser immédiatement le nom du coffre de clés après la suppression. En ajoutant la spécification
--retention-days <NUMBER_OF_DAYS>, vous pouvez contrôler la durée pendant laquelle le coffre conserve l’état de « suppression réversible ». La valeur par défaut est de 90 jours, mais la définition d’une valeur inférieure (7 jours minimum) signifie que vous pouvez récupérer le nom plus rapidement.Créez une clé dans le coffre de clés :
az keyvault key create \ --vault-name $KEYVAULT_NAME \ --name $KEYVAULT_KEY_NAME \ --protection softwareDéfinissez l’ID de ressource du coffre de clés et les variables d’URL de clé :
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
Utilisez le jeu de chiffrement de disque Azure comme point de référence pour les disques dans les clusters Azure Red Hat OpenShift. Il est connecté au coffre de clés que vous avez créé à l’étape précédente et extrait les clés gérées par le client à partir de cet emplacement.
Créez le jeu de chiffrement de disque :
az disk-encryption-set create \ --name $DISK_ENCRYPTION_SET_NAME \ --location $LOCATION \ --resource-group $RESOURCEGROUP \ --source-vault $KEYVAULT_ID \ --key-url $KEYVAULT_KEY_URLSpécifiez l’ID de la ressource et les variables d’identité de l’ensemble de chiffrement de disque :
DES_ID=$(az disk-encryption-set show --name $DISK_ENCRYPTION_SET_NAME --resource-group $RESOURCEGROUP --query 'id' -o tsv) DES_IDENTITY=$(az disk-encryption-set show --name $DISK_ENCRYPTION_SET_NAME --resource-group $RESOURCEGROUP --query "[identity.principalId]" -o tsv)
Accorder à l’ensemble de chiffrement de disque les autorisations nécessaires pour accéder au coffre de clés
Vous souhaitez que l’identité managée du jeu de chiffrement de disques soit utilisée pour utiliser la clé de chiffrement. Attribuez un rôle intégré qui fournit les autorisations de clé nécessaires, par exemple Key Vault Crypto Service Encryption User ou Key Vault Crypto User. Vous pouvez également utiliser un rôle personnalisé, tant qu’il inclut les autorisations nécessaires (wrapkeyet unwrapkeyget) pour effectuer des opérations de clé requises par les jeux de chiffrement de disque.
az role assignment create \
--assignee $DES_IDENTITY \
--role "Key Vault Crypto Service Encryption User" \
--scope $KEYVAULT_ID
Créer un cluster Azure Red Hat OpenShift
Lorsque vous créez un cluster, vous pouvez activer les clés gérées par le client en spécifiant le jeu de chiffrement de disque. Utilise le paramètre --disk-encryption-set. Par exemple : --disk-encryption-set $DES_ID.
Pour créer un cluster avec un principal de service, suivez les instructions de Créer un cluster Azure Red Hat OpenShift.
Voici un exemple de création d’un cluster avec le --disk-encryption-set paramètre :
az aro create \
--resource-group $RESOURCEGROUP \
--name $CLUSTER \
--vnet aro-vnet \
--master-subnet master-subnet \
--worker-subnet worker-subnet \
--disk-encryption-set $DES_ID
Remarque
Vous ne pouvez activer les clés gérées par le client que sur les clusters existants pour les nœuds Worker, et non sur les nœuds maîtres. Il est possible d’obtenir cette configuration. Pour plus d’informations, consultez la documentation De Red Hat, notamment l’activation des clés de chiffrement gérées par le client pour un jeu d’ordinateurs et la modification d’un jeu de machines de calcul.
Pour créer un cluster Azure Red Hat OpenShift avec des identités managées, avant de créer le cluster, vous devez accorder l’identité machine-api et l’identitédisk-csi-driver. Vous devez également accorder au principal de service interne Azure Red Hat OpenShift Microsoft.Compute/diskEncryptionSets/read les autorisations sur le jeu de chiffrement de disque.
Exemples d’attributions de rôle pour l’identité machine-api, l’identité disk-csi-driver et le service interne ARO :
az role assignment create \
--assignee-object-id "$(az identity show --resource-group $RESOURCEGROUP --name disk-csi-driver --query principalId -o tsv)" \
--assignee-principal-type ServicePrincipal \
--role <ROLE> \
--scope $DES_ID"
az role assignment create \
--assignee-object-id "$(az identity show --resource-group $RESOURCEGROUP --name machine-api --query principalId -o tsv)" \
--assignee-principal-type ServicePrincipal \
--role <ROLE> \
--scope $DES_ID
az role assignment create \
--assignee-object-id "$(az ad sp list --display-name "Azure Red Hat OpenShift RP" --query '[0].id' -o tsv)" \
--assignee-principal-type ServicePrincipal \
--role <ROLE> \
--scope $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 :
Obtenez le nom du groupe de ressources de cluster où se trouvent les machines virtuelles, disques et autres infrastructures du cluster :
CLUSTERRESOURCEGROUP=$(az aro show --resource-group $RESOURCEGROUP --name $CLUSTER --query 'clusterProfile.resourceGroupId' -o tsv | cut -d '/' -f 5)Vérifiez que les disques ont l’ensemble de chiffrement de disque correct associé :
az disk list --resource-group $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.
Ajouter la prise en charge du HSM géré (mHSM) pour les clés gérées par le client et la mise en application d’Azure Policy
Vous pouvez également ajouter la prise en charge du HSM managé (mHSM) pour les clés gérées par le client et exiger et refuser certains attributs de chiffrement. Cette prise en charge nécessite des modifications d’API et de Azure Policy.
Procédez comme suit pour créer un cluster Azure Red Hat OpenShift avec mHSM et des clés gérées par le client :
Provisionnez et activez un HSM managé à l’aide de la Azure CLI.
Exportez les variables d’environnement à partir de l’étape précédente :
export HSM_NAME=<hsm-name> export RESOURCE_GROUP=<resource-group>Activez la protection contre le vidage et la gestion des clés via Azure Resource Manager :
az keyvault update-hsm \ --hsm-name $HSM_NAME \ --resource-group $RESOURCE_GROUP \ --enable-purge-protection true az keyvault setting update \ --hsm-name $HSM_NAME \ --name AllowKeyManagementOperationsThroughARM \ --value trueEffectuez les étapes restantes pour activer mHSM : activez votre HSM managé.
Attribuez-vous le rôle
Managed HSM Crypto Userafin de pouvoir créer des clés dans le mHSM.oid=$(az ad signed-in-user show --query id -o tsv) az keyvault role assignment create \ --hsm-name $HSM_NAME \ --role "Managed HSM Crypto User" \ --assignee $oid \ --scope /keysCréez une identité managée et attribuez-lui le rôle
Managed HSM Crypto Service Encryption Usersur le mHSM.export UA_IDENTITY=<new-ua-identity>HSM_ID="https://${HSM_NAME}.managedhsm.azure.net" az identity create \ --resource-group $RESOURCE_GROUP \ --name $UA_IDENTITY IDENTITY_OBJECT_ID=$(az identity show \ --resource-group $RESOURCE_GROUP \ --name $UA_IDENTITY \ --query principalId -o tsv) az keyvault role assignment create \ --id "$HSM_ID" \ --role "Managed HSM Crypto Service Encryption User" \ --assignee-object-id "$IDENTITY_OBJECT_ID" \ --scope "/keys/byok-key"Créez un jeu de chiffrement de disque, en tenant compte des éléments suivants :
Définir le type de chiffrement sur
Encryption at-rest with a customer-managed key.Utilisez l’identité attribuée par l’utilisateur que vous avez créée à l’étape précédente.
Terminez l’attribution de rôle avant de créer le jeu de chiffrement de disque.
Exportez les variables d’environnement à partir de l’étape précédente :
export LOCATION=<yourLocation> export CLUSTER=<yourNewClusterName> export VIRTUAL_NETWORK=<yourVirtualNetwork> export KEYVAULT_NAME=<yourKeyvaultName> export KEYVAULT_KEY_NAME=byok-key export DISK_ENCRYPTION_SET_NAME=<yourDiskEncryptionSetName>Créez un cluster avec votre nouveau jeu de chiffrement de disque :
DES_ID=$(az disk-encryption-set show -n $DISK_ENCRYPTION_SET_NAME -g $RESOURCE_GROUP --query 'id' -o tsv) az aro create --resource-group $RESOURCE_GROUP \ --name $CLUSTER \ --vnet $VIRTUAL_NETWORK \ --master-subnet master-subnet \ --worker-subnet worker-subnet \ --disk-encryption-set $DES_IDUne fois le cluster démarré, vérifiez le chiffrement :
az disk list -g $VIRTUAL_NETWORK --query "[].{DiskName:name, VM:managedBy, EncryptionType:encryption.type, DiskEncryptionSet:encryption.diskEncryptionSetId}" -o tablePour vérifier le chiffrement, recherchez-le
EncryptionAtRestWithCustomerKeysous laEncryptionTypecolonne.