B6-4: Secrets rotation policy + procedure documentation #78

Closed
opened 2026-05-11 20:36:28 +00:00 by lekss361 · 1 comment
lekss361 commented 2026-05-11 20:36:28 +00:00 (Migrated from github.com)

Эшелон: 🚀 DevOps / Infra

Зачем

SCRAPE_ADMIN_TOKEN, OBJECTIVE_API_KEY, POSTGRES_PASSWORD, COUCHDB_PASSWORD, JWT_SECRET (после B3-4) живут в backend/.env и .env.runtime. Нет политики ротации. При смене команды (онбординг) нужна процедура.

Что сделать

  • Реестр всех секретов в vault meta/00_credentials.md (уже есть, дополнить)
  • Процедура ротации per secret:
    • SCRAPE_ADMIN_TOKEN: edit .env.runtimedocker compose up -d --force-recreate backend beat
    • OBJECTIVE_API_KEY: regenerate в Объектив cabinet → edit .env.runtime → restart
    • POSTGRES_PASSWORD: SQL ALTER USER + edit .env + restart
  • Перейти на OIDC для GitHub Actions deploy (уже есть DEPLOY_SSH_KEY)
  • Audit log: кто/когда ротировал — Obsidian entry per rotation

Acceptance

  • Реестр секретов полный
  • Процедуры документированы
  • Тестовая ротация SCRAPE_ADMIN_TOKEN — прошла без downtime

Owner

devops-engineer

Effort

~0.5 дня

**Эшелон:** 🚀 DevOps / Infra ## Зачем `SCRAPE_ADMIN_TOKEN`, `OBJECTIVE_API_KEY`, `POSTGRES_PASSWORD`, `COUCHDB_PASSWORD`, `JWT_SECRET` (после B3-4) живут в backend/.env и .env.runtime. Нет политики ротации. При смене команды (онбординг) нужна процедура. ## Что сделать - Реестр всех секретов в vault [meta/00_credentials.md](https://obsidian.gendsgn.ru/) (уже есть, дополнить) - Процедура ротации per secret: - `SCRAPE_ADMIN_TOKEN`: edit `.env.runtime` → `docker compose up -d --force-recreate backend beat` - `OBJECTIVE_API_KEY`: regenerate в Объектив cabinet → edit `.env.runtime` → restart - `POSTGRES_PASSWORD`: SQL `ALTER USER` + edit `.env` + restart - Перейти на OIDC для GitHub Actions deploy (уже есть `DEPLOY_SSH_KEY`) - Audit log: кто/когда ротировал — Obsidian entry per rotation ## Acceptance - [ ] Реестр секретов полный - [ ] Процедуры документированы - [ ] Тестовая ротация SCRAPE_ADMIN_TOKEN — прошла без downtime ## Owner `devops-engineer` ## Effort ~0.5 дня
Owner

Status check 2026-05-23

Issue остаётся в силе. Сегодняшний security pivot (PRs #426-#442) добавил новый класс секретов для ротации:

  • BASIC_AUTH_HASH per user (11 pilot users) — caddy/users.caddy.snippet + bcrypt hashes.
  • GLITCHTIP_AUTH_DSN для forwarder sidecar.

Реестр в vault meta/00_credentials.md нужно дополнить + добавить процедуру ротации basic_auth (rebcrypt + caddy reload).

Priority после pilot demo 28.05: medium — важно перед scaling pilot за пределы 11 users.

Привязка: добавлен в umbrella epic(infra): Pilot infra status 2026-05-23 — после security pivot.

## Status check 2026-05-23 Issue остаётся в силе. Сегодняшний security pivot (PRs #426-#442) **добавил новый класс секретов** для ротации: - `BASIC_AUTH_HASH` per user (11 pilot users) — `caddy/users.caddy.snippet` + bcrypt hashes. - `GLITCHTIP_AUTH_DSN` для forwarder sidecar. Реестр в vault `meta/00_credentials.md` нужно дополнить + добавить процедуру ротации basic_auth (rebcrypt + caddy reload). **Priority после pilot demo 28.05**: medium — важно перед scaling pilot за пределы 11 users. Привязка: добавлен в umbrella `epic(infra): Pilot infra status 2026-05-23 — после security pivot`.
Sign in to join this conversation.
No project
No assignees
2 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: lekss361/gendesign#78
No description provided.