O appliance isolado do Google Distributed Cloud (GDC) usa o Linux Unified Key Setup (LUKS) para criptografar dados em discos quando um HSM externo não é fornecido. Uma matriz RAID5 é criada com base nas quatro unidades de dados, e um único dispositivo LUKS é criado com base na matriz RAID5. A KEK do LUKS é gerada aleatoriamente e pode ser substituída.
Este documento descreve as etapas para fazer a rotação da KEK do LUKS, que precisa ser realizada para:
- rotação de KEKs programada regularmente.
- Exposição de KEK.
Antes de começar
Siga estas etapas:
- Verifique se você atende aos pré-requisitos de laptop.
- Verifique se você pode fazer login nos três nós como usuário raiz.
Alternar KEK
O sistema de appliance isolado do Google Distributed Cloud (GDC) usa um cluster NetApp ONTAP Select (OTS) de dois nós implantado nos nós bm01 e bm02 (normalmente sem GPUs). Cada nó tem quatro unidades de dados dedicadas configuradas como uma matriz RAID5 para aumentar a redundância. Um único dispositivo criptografado com LUKS é colocado em cima de cada matriz RAID5 para garantir segurança de dados.
A KEK de criptografia LUKS é armazenada no disco de inicialização localizado em /etc/luks. A rotação da KEK do LUKS exige a rotação da criptografia do LUKS nos dois nós para manter a segurança em todo o cluster. Para fazer uma rotação regular da KEK ou se ela for exposta, repita as etapas a seguir em bm01 e bm02:
Faça login no nó como usuário raiz.
Verifique se o dispositivo RAID existe e receba o caminho completo
RAID_DEVICE.ll /dev/mdVerifique se o arquivo de chave LUKS antigo existe e extraia o caminho completo
OLD_KEY.ll /etc/luksAdicione a KEK antiga ao slot de chave 1 para que os slots 0 e 1 tenham a mesma KEK.
cryptsetup luksAddKey RAID_DEVICE OLD_KEY --key-slot 1 --key-file OLD_KEYSubstitua
RAID_DEVICEeOLD_KEYpelos caminhos das etapas anteriores.Remova a KEK antiga do slot de chave 0.
cryptsetup luksKillSlot RAID_DEVICE 0 --key-file OLD_KEYGere uma nova KEK e armazene-a no novo arquivo de chave
NEW_KEY.dd if=/dev/urandom of=NEW_KEY bs=512 count=1 chmod u=r,go-rwx NEW_KEYSubstitua
NEW_KEYpelo caminho completo do novo arquivo de chave.Adicione a nova KEK ao slot de chave 0.
cryptsetup luksAddKey RAID_DEVICE NEW_KEY --key-slot 0 --key-file OLD_KEYDefina a configuração persistente para abrir ou fechar o dispositivo LUKS na inicialização ou no desligamento da máquina.
DEVICE_UUID=$(cryptsetup luksUUID RAID_DEVICE) echo "luksrd5 UUID=${DEVICE_UUID} NEW_KEY luks,discard" > /etc/crypttabRemova a KEK antiga do slot de chave 1.
cryptsetup luksKillSlot RAID_DEVICE 1 --key-file NEW_KEYVerifique se a nova KEK está funcionando.
cryptsetup luksDump --dump-master-key RAID_DEVICE --key-file NEW_KEYVerifique se a KEK antiga não está mais funcionando.
cryptsetup luksDump --dump-master-key RAID_DEVICE --key-file OLD_KEYRemova a KEK antiga.
rm OLD_KEY
Se um nó for reinicializado antes da conclusão da rotação, o dispositivo LUKS ainda poderá ser aberto após a inicialização. Você pode retomar as etapas depois que o nó voltar.