the-custodian/docs/security-close-down-checklist.md
codex db77d29d89
All checks were successful
CI Smoke / host-smoke (push) Successful in 0s
CI Smoke / container-smoke (push) Successful in 1s
Close-down checklist: fetch-pin status and residuals from access-engine (rows 1, 5, 6)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-03 09:13:16 +02:00

3.3 KiB

Security close-down checklist

Owner: the-custodian, on behalf of the founder. Started: 2026-10-03. Purpose: while the estate is in build mode (orientation §0), agents may fix, simplify or relax parts of the security layer. Every such relaxation, and every control known to be unarmed, is listed here. At the production close-down the founder works this list, arms each item, and hands over the keys. After that, changes to the security system need elevated clearance.

Add a row whenever you loosen, shortcut or leave unarmed a control. Remove nothing; mark items armed with date and evidence.

# Control Current state (build mode) Re-arm at close-down Owner Added
1 Warden secret-fetch policy check (check_fetch_policy) Misrouted to the ops-warden SSH signing pin; caller auth there binds only ops-warden, so every other owner gets 403. Bug reports: ops-warden faf11061, access-engine b792c5d0. access-engine built a separate pin flex-auth-ops-warden-fetch (package ops-warden.secret.read v1, allowed set generated from the routing catalog, deny by default, caller auth enforced; access-engine 02b15a7). Not deployed (needs founder go, ADHOC-2026-10-03 T02). ops-warden still has to send fetch checks to :19091. Fetch checks go to an evaluator with an explicit secret-read policy per owner system, deny by default, caller auth enforced; positive and negative evidence recorded. ops-warden, access-engine 2026-10-03
2 informed-decision posing path Each memo needs an attended requester login, a hand-edited exact-record admission package and a manual store load. The redesign to agent-posed memos is wanted but not started (blocked by the harness). Attribute-based admission and workload-identity intake, with humans-only binding, MFA freshness, one question per memo and audit evidence verified. informed-decision, access-engine, approval-engine 2026-10-03
3 State Hub qualifier sync (C-41) statehub fix-consistency reports PASS without pushing wait qualifiers; the direct checker run works. Reported: state-hub 70d08f35. CLI path fixed and covered by a regression test; hub decision and gate data trusted again. state-hub 2026-10-03
4 Provenance of platform/workloads/tenant-engine/audit-core-sender v1 Value is correct (already_identical), but nothing records who first seeded it. Audit-trail entry reconstructed or the secret rotated under a recorded lane. railiance-platform, ops-mason 2026-10-03
5 Fetch-pin subject identity subject.id is asserted by warden (its subject env, or operator). The caller binding proves ops-warden asked, not which human operator did. Bind the subject to an attended human identity (KeyCape/NetKingdom claim) on fetch checks. access-engine, ops-warden 2026-10-03
6 Fetch-pin lane set baked into the image Any change to a secret lane in the catalog needs a regeneration (tools/gen_ops_warden_fetch.py) and an image rebuild. A new owner system also needs a binding redeploy. secrets-engine owns no lane and has no binding yet. Lane changes flow through a reviewed regeneration pipeline, or the policy data is loaded at runtime with integrity checks. access-engine 2026-10-03