CephCX · Monitor RecoveryMonitor Recovery
What the monitor store holds and how it is actually protected
What you'll learn
- Enumerate the secrets held in the monitor store
- Describe the protection Ceph does and does not provide
- Apply host-level protection appropriately
- Anticipate the recovery cost of encrypted monitor hosts
Prerequisites
None — start here.
Verified against Ceph Tentacle 20.2.x · Ceph Squid 19.2.x (supported previous) · cephadm matches the verified Ceph release · podman 4.x · csi-rbd and csi-cephfs current · RBD / CephFS / RGW current (matches Ceph release) · Linux kernel 5.15+ (5.10 minimum) · Ubuntu 24.04 LTS (Ceph host baseline) · Debian 12 (Bookworm) (Ceph host baseline) · Rocky Linux / RHEL / AlmaLinux 9.x (Ceph host baseline) · Proxmox VE 9.x (cross-course integration) · Kubernetes 1.31+ (cross-course integration) · 2026-08-18
Why this matters in production
Ceph writes the monitor store in plaintext, and that store contains every cephx key in the cluster plus, on a cephadm deployment, the private key that gives root access to every host.
Ceph provides no encryption for the store
There is no monitor-store encryption feature in any Ceph release. The protection consists of file ownership, host access control, and whatever the operator has arranged underneath the filesystem.
FSID=$(ceph fsid)
sudo ls -ld /var/lib/ceph/$FSID/mon.$(hostname -s)
sudo ls -l /var/lib/ceph/$FSID/mon.$(hostname -s)/keyring
drwx------ 3 167 167 4096 Aug 11 09:14 /var/lib/ceph/8f2c.../mon.ceph-a
-rw------- 1 167 167 77 Feb 3 11:02 .../keyring
| Layer | Provided by |
|---|---|
Directory mode 0700, owner ceph | Ceph and cephadm |
| Encryption at rest | not Ceph — LUKS or self-encrypting drives |
| Encryption in transit between monitors | msgr2 with ms_cluster_mode |
| Access control on the host | the operating system |
| Backup protection | entirely the operator |
What a copy of the store yields
ceph auth ls | head -20
ceph config-key ls | python3 -c '
import sys,json
for k in json.load(sys.stdin):
print(k)' | grep -E 'cephadm|dashboard|rgw' | head
| Asset | What holding it grants |
|---|---|
The auth database | every cephx key, client.admin included |
bootstrap-osd and bootstrap-mds keys | authority to add daemons |
mgr/cephadm/ssh_identity_key | root SSH to every host cephadm manages |
| Dashboard credentials | administrative UI access |
| RGW, NFS, and iSCSI secrets | tenant-facing service credentials |
| crushmap and osdmap history | full topology disclosure |
# the same secrets are readable straight out of an offline store
sudo ceph-monstore-tool /secure/mon-store-copy dump-keys | grep -c '^auth'
Protecting it at the host level
lsblk -o NAME,FSTYPE,MOUNTPOINT,TYPE
sudo cryptsetup luksDump /dev/nvme0n1p3 | head -12
sudo cryptsetup luksDump /dev/nvme0n1p3 | grep -A2 'Keyslots'
# confirm the monitor store is on the encrypted device, not beside it
findmnt -no SOURCE -T /var/lib/ceph/$(ceph fsid)
The recovery cost of an encrypted monitor host
| Unlock method | What recovery then requires |
|---|---|
| Passphrase at the console | out-of-band console access; no unattended reboot |
| Keyfile on an unencrypted boot partition | protects against disk theft only |
| TPM-sealed key | does not survive a mainboard swap or a firmware update |
| Network-bound with Clevis and Tang | the Tang server must not depend on this cluster |
| External KMS | KMS availability becomes a cluster boot dependency |
A Tang server running on an RBD-backed virtual machine cannot unlock the
monitors of the cluster that provides its own storage.
Quiz
Knowledge check · 4 questions
Q1. What protects the monitor store at rest?
Q2. Ceph encrypts the monitor store, so a copy of it can be kept alongside ordinary backups.
Q3. Assess the recovery risk of an encrypted monitor estate.
All three monitor hosts have LUKS root volumes unlocked by Clevis against a Tang server. The Tang server is a virtual machine whose disk is an RBD image on this cluster.
Q4. Why does the monitor store contain secrets that have nothing to do with cephx?
Passing score: 75%. Answers are checked in this browser.
Production discipline
Treat every artefact derived from the monitor store — archives,
ceph auth export, ceph config-key dump — as a complete set of cluster
credentials, because that is what it is. If you encrypt monitor hosts,
write down the unlock path and prove it works with the cluster cold; an
unlock mechanism that depends on the cluster it protects fails exactly
when it is needed.
Cross-course references
- Kubernetes: etcd holds every Secret in plaintext unless encryption at rest is configured explicitly
- Linux: an unlock mechanism that depends on the service it unlocks is not an unlock mechanism