Beryl::CLI::TangEnroll
Sous-commande beryl tang-enroll <host> : bascule un host configuré
en mode: tang (dans le YAML) du chiffrement local (Option C, clé
sur poste opérateur) vers Tang (Option D, auto-unlock au boot).
Pré-requis :
- Le host a été bootstrapé : ses pools data sont chiffrés en
ZFS native avec
keyformat=hex. La clé locale~/.config/beryl/<société>/<domaine>/<host>.keyexiste. - Le binaire
crystal-clevis-zfsest installé sur le serveur (à/usr/local/sbin/crystal-clevis-zfs). - Le YAML host déclare
encryption.mode: tangavec au moins une URL Tang (cf.boot-and-mount-plan.adoc). - Le serveur peut joindre les Tangs (réseau).
- La clé est actuellement chargée sur le serveur (lancez
beryl unlockd'abord si nécessaire) —zfs change-keydemande la clé courante en mémoire.
Flow par pool en mode: tang :
- Pré-check : pool chiffré, clé chargée (keystatus=available).
- Pousse la clé locale via stdin SSH dans un tmpfs
(
/var/run/beryl-tang-key.<rand>, mode 0600). zfs set keylocation=file:///var/run/beryl-tang-key.<rand>— change UNIQUEMENT la propriété, pas la clé.crystal-clevis-zfs bind --use-existing-key --dataset <pool> -t URL1 [-t URL2 ...] [--threshold K]— le shard lit la clé via lakeylocation, l'enrôle via Tang, écrit le JWE.rm /var/run/beryl-tang-key.<rand>— la clé sur disque ne doit pas survivre au tang-enroll (même en cas d'erreur).zfs set keylocation=prompt— restaure la prop d'origine.
Après tang-enroll, la commande met à jour /etc/rc.conf du
serveur pour activer le déverrouillage automatique au boot
(crystal_clevis_zfs_enable=YES + ajout du dataset à la liste
crystal_clevis_zfs_datasets).
Idempotent : relancer sur un host déjà enrôlé est un no-op (le
shard détecte que la clé est déjà enrôlée via le JWE existant ;
sysrc est idempotent).
Voir boot-and-mount-plan.adoc § « Variantes de provisionnement »
pour le contexte général, et crystal-clevis-zfs/README.adoc
pour la commande sous-jacente.
Constants
Chemin attendu du binaire crystal-clevis-zfs côté serveur.
Préfixe du tmpfs où la clé est posée temporairement pendant l'enrôlement. Le suffixe aléatoire évite les collisions et le squat. /var/run est un tmpfs sur FreeBSD — la clé ne touche jamais le disque persistant.