L'appliance Google Distributed Cloud (GDC) isolée utilise Linux Unified Key Setup (LUKS) pour chiffrer les données sur les disques lorsqu'aucun HSM externe n'est fourni. Un tableau RAID5 est créé au-dessus des quatre disques de données, et un seul appareil LUKS est créé au-dessus du tableau RAID5. La clé KEK LUKS est générée de manière aléatoire et peut être permutée.
Ce document décrit les étapes à suivre pour faire tourner la clé de chiffrement de clé LUKS, qui doit être effectuée pour :
- la rotation des KEK programmée régulièrement.
- Exposition des KEK.
Avant de commencer
Procédez comme suit :
- Vérifiez que vous remplissez les conditions préalables concernant les ordinateurs portables.
- Assurez-vous de pouvoir vous connecter aux trois nœuds en tant qu'utilisateur racine.
Alterner la clé KEK
Le système d'appliance Google Distributed Cloud (GDC) air-gapped utilise un cluster NetApp ONTAP Select (OTS) à deux nœuds déployé sur les nœuds bm01 et bm02 (généralement sans GPU). Chaque nœud possède quatre disques de données dédiés configurés en tant que baie RAID5 pour une redondance accrue. Un seul appareil chiffré LUKS est superposé à chaque baie RAID5 pour assurer la sécurité des données.
La KEK de chiffrement LUKS est stockée sur le disque de démarrage, dans /etc/luks
. La rotation de la KEK LUKS nécessite la rotation du chiffrement LUKS sur les deux nœuds pour maintenir la sécurité dans l'ensemble du cluster. Pour effectuer une rotation régulière de la KEK ou si la KEK est exposée, répétez les étapes suivantes sur bm01 et bm02 :
Connectez-vous au nœud en tant qu'utilisateur racine.
Assurez-vous que le périphérique RAID existe et obtenez le chemin complet
RAID_DEVICE
.ll /dev/md
Assurez-vous que l'ancien fichier de clé LUKS existe et obtenez le chemin d'accès complet
OLD_KEY
.ll /etc/luks
Ajoutez l'ancienne clé KEK à l'emplacement de clé 1, de sorte que les emplacements de clé 0 et 1 aient la même clé KEK.
cryptsetup luksAddKey RAID_DEVICE OLD_KEY --key-slot 1 --key-file OLD_KEY
Remplacez
RAID_DEVICE
etOLD_KEY
par les chemins d'accès des étapes précédentes.Supprimez l'ancienne clé KEK de l'emplacement de clé 0.
cryptsetup luksKillSlot RAID_DEVICE 0 --key-file OLD_KEY
Générez une clé KEK et stockez-la dans le nouveau fichier de clés
NEW_KEY
.dd if=/dev/urandom of=NEW_KEY bs=512 count=1 chmod u=r,go-rwx NEW_KEY
Remplacez
NEW_KEY
par le chemin d'accès complet au nouveau fichier de clé.Ajoutez la nouvelle clé KEK à l'emplacement de clé 0.
cryptsetup luksAddKey RAID_DEVICE NEW_KEY --key-slot 0 --key-file OLD_KEY
Définissez une configuration persistante pour ouvrir ou fermer le périphérique LUKS au démarrage ou à l'arrêt de la machine.
DEVICE_UUID=$(cryptsetup luksUUID RAID_DEVICE) echo "luksrd5 UUID=${DEVICE_UUID} NEW_KEY luks,discard" > /etc/crypttab
Supprimez l'ancienne clé KEK de l'emplacement de clé 1.
cryptsetup luksKillSlot RAID_DEVICE 1 --key-file NEW_KEY
Vérifiez que la nouvelle clé KEK fonctionne.
cryptsetup luksDump --dump-master-key RAID_DEVICE --key-file NEW_KEY
Vérifiez que l'ancienne clé KEK ne fonctionne plus.
cryptsetup luksDump --dump-master-key RAID_DEVICE --key-file OLD_KEY
Supprimez l'ancienne clé KEK.
rm OLD_KEY
Si un nœud est redémarré avant la fin de la rotation, le périphérique LUKS peut toujours être ouvert après le démarrage. Vous pourrez reprendre la procédure une fois le nœud rétabli.