Skip to main content
RunBook Academy

CephCIII · Secrets and Key ManagementSecrets and Key Management

The monitor store as the cluster's secret store

Advanced⏱ ~18 minceph

What you'll learn

  • Enumerate what the monitor store holds
  • Assess the secrets it contains
  • Protect the store appropriately
  • Understand what monitor store loss means

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

The monitor store is treated as cluster metadata and is in fact the cluster’s credential store.

What it holds

StructureContents
Auth databaseevery cephx key and its capabilities
Config storeevery option set with ceph config set
Config-key storemodule credentials, the cephadm SSH key
OSD maptopology, pools, CRUSH
MDS map, monitor mapfilesystem and quorum state
Manager mapmanager state
ceph config-key ls | head -30
ceph config-key ls --format json | python3 -c '
import sys,json
keys = json.load(sys.stdin)
print("total config-keys:", len(keys))
for k in keys:
    if any(t in k.lower() for t in ("key", "pass", "secret", "token", "cred")):
        print("  sensitive-looking:", k)'
The cephadm SSH private key, dashboard credentials, and any module's
stored third-party credentials all live here.

Assessing the secrets

ceph config-key get mgr/cephadm/ssh_identity_key >/dev/null 2>&1 \
  && echo "cephadm ssh key present in config-key store"
Secret in the storeGrants
cephx keysthe capabilities of each entity
cephadm SSH identityprivileged access to every host
Dashboard account hashesdashboard access, subject to the hash
Module credentialswhatever the external system permits
RGW keysvia the auth database and RGW’s own metadata
Anything that can read the monitor store — root on a monitor host, a
copy of the store directory, or client.admin — reaches all of it.

Protecting it

The store is a directory of files on each monitor host:
  /var/lib/ceph/<fsid>/mon.<id>/store.db
ls -ld /var/lib/ceph/*/mon.*/store.db 2>/dev/null
ControlEffect
Host disk encryptionprotects the store against device theft
Monitor host hardeninglimits who reaches root there
Restricting client.adminlimits who reads it through Ceph
Backup encryptionprotects copies of the store
Physical access controlthe store is readable with the device
Ceph does not encrypt the monitor store itself. Protection is host-level
disk encryption plus access control on the monitor hosts.
lsblk -o NAME,TYPE,MOUNTPOINT,FSTYPE | grep -i crypt

What monitor store loss means

LossConsequence
One monitor’s storereplace the monitor; it syncs from the quorum
Every monitor’s storethe cluster identity is gone; recovery is from OSDs and is difficult
A copy taken by an attackerevery key in the cluster is compromised
ceph quorum_status --format json | python3 -c '
import sys,json
d = json.load(sys.stdin)
print("in quorum:", len(d["quorum_names"]), "of", len(d["monmap"]["mons"]))'
Losing one monitor is routine: deploy a replacement and it syncs.
Losing all of them simultaneously is the scenario that makes monitor
placement across failure domains a requirement rather than a preference.

Quiz

Knowledge check · 4 questions

  1. Q1. Why is losing every monitor store qualitatively worse than losing every OSD?

  2. Q2. A monitor host's disk encryption is the only thing between a stolen device and every cephx key in the cluster.

  3. Q3. Protect the monitor store appropriately.

    A security review asks what protects the cluster's credentials at rest. The monitors run on unencrypted host disks.

  4. Q4. What does the config-key store hold that matters for security?

Passing score: 75%. Answers are checked in this browser.

Production discipline

Encrypt the monitor hosts’ disks — Ceph does not encrypt the monitor store, and it holds every cephx key, the cephadm SSH identity, and module credentials. Treat any copy or backup of that store as the credential archive it is.

Cross-course references

  • Kubernetes: etcd holds Secrets unencrypted unless encryption at rest is configured
  • Linux: the credential store needs disk-level protection when the application provides none