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/md
Verifique se o arquivo de chave LUKS antigo existe e extraia o caminho completo
OLD_KEY
.ll /etc/luks
Adicione 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_KEY
Substitua
RAID_DEVICE
eOLD_KEY
pelos caminhos das etapas anteriores.Remova a KEK antiga do slot de chave 0.
cryptsetup luksKillSlot RAID_DEVICE 0 --key-file OLD_KEY
Gere 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_KEY
Substitua
NEW_KEY
pelo 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_KEY
Defina 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/crypttab
Remova a KEK antiga do slot de chave 1.
cryptsetup luksKillSlot RAID_DEVICE 1 --key-file NEW_KEY
Verifique se a nova KEK está funcionando.
cryptsetup luksDump --dump-master-key RAID_DEVICE --key-file NEW_KEY
Verifique se a KEK antiga não está mais funcionando.
cryptsetup luksDump --dump-master-key RAID_DEVICE --key-file OLD_KEY
Remova 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.