WARDEN-WP-0026 finish Strand A (T04/T05/T07)
Promote railiance-backup-offsite-lane to active/resolvable after capabilities-safe re-verify. Add catalog risk=high, agent read-boundary (exit 7 + OpenBao policy companion), EXPOSED taint via warden taint, and close WP-0026.
This commit is contained in:
parent
7d0c7c7684
commit
b971403dad
16 changed files with 689 additions and 31 deletions
|
|
@ -4,7 +4,7 @@ type: workplan
|
|||
title: "Credential disclosure hygiene + rotation guidance (Strand A)"
|
||||
domain: infotech
|
||||
repo: ops-warden
|
||||
status: active
|
||||
status: finished
|
||||
owner: codex
|
||||
topic_slug: custodian
|
||||
planning_priority: high
|
||||
|
|
@ -140,11 +140,21 @@ limitation documented.
|
|||
|
||||
```task
|
||||
id: WARDEN-WP-0026-T04
|
||||
status: todo
|
||||
status: done
|
||||
priority: high
|
||||
state_hub_task_id: "f95d4381-f995-4c9d-b438-70b4f0ed90c5"
|
||||
```
|
||||
|
||||
Done 2026-07-16: Catalog `risk: high|standard` (default standard). High-risk:
|
||||
`railiance-backup-offsite-lane`, `forgejo-admin-api-token`, `openrouter-llm-connect`.
|
||||
OpenBao policy `agent-high-risk-boundary` (railiance-platform + live write) grants
|
||||
metadata/capabilities only and **denies** data-read on those paths — verified with
|
||||
minted agent token (data=deny, metadata=read). `warden access` with
|
||||
`WARDEN_AGENT_ID` set refuses raw value stream on high-risk lanes (exit 7);
|
||||
`--out`/`--exec`/`--wrap`/`--fingerprint` remain. Playbook:
|
||||
`wiki/playbooks/agent-read-boundary.md`. Tests in `tests/test_routing.py` +
|
||||
`tests/test_proxy.py`.
|
||||
|
||||
**Repo: railiance-platform (OpenBao policy/roles).** Agent identities receive
|
||||
`capabilities`/metadata and wrapping tokens on high-risk lanes, not raw data
|
||||
reads. Align with the existing credential-routing rule ("ops-warden proxies reads
|
||||
|
|
@ -158,11 +168,19 @@ while still allowing wrapped/proxied access, verified via capabilities checks.
|
|||
|
||||
```task
|
||||
id: WARDEN-WP-0026-T05
|
||||
status: todo
|
||||
status: done
|
||||
priority: medium
|
||||
state_hub_task_id: "e989f8f0-930e-4d2f-9037-221e04f34199"
|
||||
```
|
||||
|
||||
Done 2026-07-16: Convention documented in `wiki/playbooks/exposed-taint.md`
|
||||
(`exposed_at`, `exposed_version`, `exposed_reason`, `exposed_ref` on KV v2
|
||||
custom_metadata). First worked mark applied to
|
||||
`platform/workloads/railiance/backup/offsite-lane` version 2 (disclosure
|
||||
incident). `warden taint <id>` (+ `--json`) reports taint via metadata-only
|
||||
`bao kv metadata get` — never secret data (`src/warden/taint.py`). Tests in
|
||||
`tests/test_taint.py`.
|
||||
|
||||
**Repo: railiance-platform (OpenBao) + ops-warden surface.** Establish a KV v2
|
||||
`custom_metadata` convention to mark a tainted secret: `exposed_at=<datetime>`
|
||||
and the affected `version`. Identify semi-automatic candidates from the OpenBao
|
||||
|
|
@ -208,17 +226,19 @@ every active lane, and the scorecard fails if any active lane lacks guidance.
|
|||
|
||||
```task
|
||||
id: WARDEN-WP-0026-T07
|
||||
status: progress
|
||||
status: done
|
||||
priority: medium
|
||||
state_hub_task_id: "9944f46d-3706-43a4-9300-7f63bf87c9ff"
|
||||
```
|
||||
|
||||
Lessons-learned note written 2026-07-16:
|
||||
`history/2026-07-16-credential-disclosure-lessons.md` (buildup context, exposure
|
||||
accepted, three root causes). Remaining: capabilities-based live re-verify of
|
||||
CCR-2026-0004 on `bao.coulomb.social` (uses T01 pattern) and its `rotation:` block
|
||||
(depends on T06 registry) so the lane can promote to `resolvable: true` and unblock
|
||||
RAILIANCE-WP-0015.
|
||||
Done 2026-07-16: Lessons note present. Capabilities-safe live re-verify on
|
||||
`bao.coulomb.social`: lane-policy token → `read` on data path; default + agent
|
||||
boundary → `deny`; field keys present (no values printed). Catalog promoted
|
||||
`draft`→`active`, `fetch_command` pinned to `NC_WEBDAV_TOKEN` (no placeholders)
|
||||
so `resolvable: true`; `risk: high`; rotation guidance + EXPOSED taint on v2.
|
||||
CCR-2026-0004 evidence + `access_frontdoor.resolvable: true` / `readiness: ready`.
|
||||
Playbook + `wiki/CredentialRouting.md` updated. Operator may still rotate the
|
||||
exposed values optionally (buildup) — not a promotion blocker.
|
||||
|
||||
Write a short lessons-learned note (buildup context; exposure accepted; the three
|
||||
root causes). Apply T01 + T06 to `CCR-2026-0004` as the first worked lane:
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue