Skip to main content
RunBook Academy

CephCX · Monitor RecoveryMonitor Recovery

What the monitor store holds and how it is actually protected

Advanced⏱ ~18 mincephcryptsetupceph-monstore-tool

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

Not yet marked complete on this device.

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
LayerProvided by
Directory mode 0700, owner cephCeph and cephadm
Encryption at restnot Ceph — LUKS or self-encrypting drives
Encryption in transit between monitorsmsgr2 with ms_cluster_mode
Access control on the hostthe operating system
Backup protectionentirely 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
AssetWhat holding it grants
The auth databaseevery cephx key, client.admin included
bootstrap-osd and bootstrap-mds keysauthority to add daemons
mgr/cephadm/ssh_identity_keyroot SSH to every host cephadm manages
Dashboard credentialsadministrative UI access
RGW, NFS, and iSCSI secretstenant-facing service credentials
crushmap and osdmap historyfull 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 methodWhat recovery then requires
Passphrase at the consoleout-of-band console access; no unattended reboot
Keyfile on an unencrypted boot partitionprotects against disk theft only
TPM-sealed keydoes not survive a mainboard swap or a firmware update
Network-bound with Clevis and Tangthe Tang server must not depend on this cluster
External KMSKMS 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

  1. Q1. What protects the monitor store at rest?

  2. Q2. Ceph encrypts the monitor store, so a copy of it can be kept alongside ordinary backups.

  3. 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.

  4. 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