chore(secrets): rotation policy for the unscheduled secrets; make 'rotate lldap' safe #159
Loading…
Reference in a new issue
No description provided.
Delete branch "jfraeys/chore/secrets-rotation-policy"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
P8 decision 3 (operator, 2026-10-14). Manifest metadata only; no values.
Policy
POSTFIX_SENDER_*_APIKEY(4),ZEDMAIL_API_KEY,TF_VAR_cloudflare_api_token,TF_VAR_desec_api_token,TF_VAR_linode_token,TF_VAR_root_pass,TF_VAR_user_password,OS_PASSWORD,OVH_APPLICATION_SECRET,VAULT_DEPLOY_TOKEN,POSTGRES_PASSWORD,AUTHELIA_LDAP_SERVICE_PASSWORD,CI_EPHEMERAL_ANSIBLE_SSH_KEY,FORGEJO_RUNNER_APP_SKELETON_DEPLOY_KEY;OVH_OBJECT_STORAGE_ACCESS_KEY_IDevery 90 (with its secret half).expiry: secrets that encrypt or sign, where rotating means a re-key or invalidation:AUTHELIA_STORAGE_ENCRYPTION_KEY,RESTIC_PASSWORD,AUTHELIA_OIDC_PRIVATE_KEY_PEM,LLDAP_KEY_SEED; identifiers that are not credentials: the four*_HEARTBEAT_URL,RESTIC_SECONDARY_REPOSITORY../infra rotate lldapmade safe (it had never been run):LLDAP_KEY_SEED, which derives the server key that verifies every stored password (LLDAP docs: the key "used to store the passwords"), so all logins would fail. It now leaves the seed alone.LLDAP_ADMIN_PASSWORDnever reached LLDAP: per LLDAP's docsldap_user_pass"is only used when initially creating the admin user". The vault and LLDAP would disagree and the role's bootstrap login (tasks/main.yml) would fail. The compose file now setsLLDAP_FORCE_LDAP_USER_PASS_RESET: "always", so the vault is the source of truth (same model as Vaultwarden). A password changed in the LLDAP UI is reset on restart. Staging exercises this: the role logs in with the vault password after the container starts.roles/lldap/CLAUDE.mdrecords both.Checked: manifest parses, ansible-lint (lldap), yamllint,
bash -n, test_secret_expiry, test-rotation-lock, test-bitwarden-save, test-infra-cli.🤖 Generated with Claude Code
https://claude.ai/code/session_01Ge5tovcwdEUBtPwUktsZZZ
rotate lldapsafe