EbookFoundation / EbookFoundation/regluit-provisioning
RDS master (root) password: nobody has it — OK to rotate + store?
- Dominant language
- Shell
- Stars
- 6
- Forks
- 8
- Avg merge
- 1h 13m
- Merged PRs (30d)
- 2
Description
## Ask (for @eshellman)
Does anyone hold the RDS **master (`root`) password** for `production-2024` / `production-2024-old1` / `test-2026-08-23`? If not — **OK to rotate it** and store the new one (1Password + an ansible-vault variable)? Rotation is `modify-db-instance --master-user-password --apply-immediately`: no restart, no downtime, the `regluit` app user is untouched. The only effect is that the *old* root password stops working — so I want to hear from you before doing it.
## Why now
Prepping the by-hand index migration for 2026-09-15 09:00 (PR #73, W1), the pre-check found the app user `regluit` has **no `PROCESS` privilege and no `mysql.rds_kill_query`** — it can't see or kill another session's blocked query. Tomorrow proceeds anyway on the app user with a 10 s `lock_wait_timeout` guard (online DDL, fails harmlessly). But every future DDL / restore / blue-green window wants a master session, and right now none of us can open one: the password is not AWS-managed, not in the vault (`vault_mysql_db_*` is the app user), not in the repos, and the one candidate RY found was refused (2026-09-14 17:08, one failed login from the prod box — that was RY).
## Plan once OK'd
1. RY generates a strong password, stores it in 1Password (shared with Eric), runs the rotation, verifies `SHOW GRANTS` shows `PROCESS` from the prod box.
2. Add `vault_mysql_root_pass` (and `vault_mysql_root_user: root`) to `group_vars/production/vault.yml` so playbooks (e.g. a future `migrate.yml` with a pre-flight `SHOW PROCESSLIST`, or the monthly test rebuild) can use it. Same for test.
3. Note the rotation in the Operator Playbook (README for Eric).
4. Longer-term: see the secrets-manager issue (linked below) — the vault is accumulating credentials.
Agenda item for Thu 2026-09-17 10:00 as well.
Contributor guide
No contributing guide indexed for this repository
Research direction
Start with the rotation procedure in the issue, then inspect group_vars/production/vault.yml and the Operator Playbook README. Check the referenced PR #73 and the linked secrets-manager work before changing production credentials. Done means approval is recorded, the master password is stored as described, SHOW GRANTS is verified, and the rotation is documented.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- ansible, aws, mysql
- Domain
- databases, devops, documentation, security
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100