CCR-2026-0058: approved (platform-owner, net-kingdom-owner)
Founder approval in session 2026-10-31, as amended. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Assistant: claude-code Assistant-Model: opus Assistant-Process: 994874@bnt-lap001 Assistant-Session: 6017c416-d619-47eb-bd1a-f670a02d7d87
This commit is contained in:
parent
b70ba57a4e
commit
69cc133e9d
1 changed files with 34 additions and 29 deletions
|
|
@ -3,7 +3,7 @@ kind: credential-change-request
|
|||
schema_version: 1
|
||||
request_type: workload-kv-write-next-version
|
||||
title: NetKingdom bounded executor writes the next svc-authelia bind version (pilot)
|
||||
status: proposed
|
||||
status: approved
|
||||
created: '2026-10-31'
|
||||
updated: '2026-10-31'
|
||||
requester:
|
||||
|
|
@ -11,25 +11,30 @@ requester:
|
|||
reason: 'NK-WP-0056-T02 owner request (hub 9d08288d), for NK-WP-0056-T06: the bounded
|
||||
executor service:nk-bind-executor rotates the svc-authelia LLDAP bind unattended
|
||||
under one founder admission (Bounded Execution Admission v0.1, proposed). The
|
||||
executor must write the next KV version of the bind with CAS and read it back for
|
||||
its checks and revert. Drafted by the railiance-platform worker; not approved.'
|
||||
executor must write the next KV version of the bind with CAS and read it back
|
||||
for its checks and revert. Drafted by the railiance-platform worker; not approved.'
|
||||
review:
|
||||
required: true
|
||||
required_approvers:
|
||||
- platform-owner
|
||||
- net-kingdom-owner
|
||||
comments: []
|
||||
comments:
|
||||
- at: '2026-10-31T14:26:48+00:00'
|
||||
reviewer: platform-owner
|
||||
decision: approved
|
||||
comment: Approved by the founder in session 2026-10-31 as amended (window-scoped
|
||||
role, bind self-rotation) for NK-WP-0056-T06.
|
||||
target:
|
||||
domain: infotech
|
||||
tenant: platform
|
||||
workload: net-kingdom-bind-executor
|
||||
environment: production
|
||||
purpose: Let only the executor ServiceAccount sso/nk-bind-executor read and write the
|
||||
next version of platform/workloads/net-kingdom/directory-binds/svc-authelia, with
|
||||
CAS on the current version; no create, metadata, delete, destroy, list or sibling
|
||||
path
|
||||
purpose: Let only the executor ServiceAccount sso/nk-bind-executor read and write
|
||||
the next version of platform/workloads/net-kingdom/directory-binds/svc-authelia,
|
||||
with CAS on the current version; no create, metadata, delete, destroy, list or
|
||||
sibling path
|
||||
admission:
|
||||
standard: 'net-kingdom canon/standards/bounded-execution-admission_v0.1.md (proposed)'
|
||||
standard: net-kingdom canon/standards/bounded-execution-admission_v0.1.md (proposed)
|
||||
executor_identity: service:nk-bind-executor
|
||||
example: net-kingdom examples/bounded-execution-admission/bind-rotation-svc-authelia.yaml
|
||||
note: The OpenBao role does not evaluate the admission. The admission (approval-engine
|
||||
|
|
@ -76,19 +81,19 @@ agent_fence:
|
|||
note: The svc-authelia data and metadata paths are already denied to coding agents
|
||||
since CCR-2026-0053; setup re-checks the deny before the role is created.
|
||||
lifecycle:
|
||||
role_window: 'Window-scoped (founder decision 2026-10-31, hub c29c6eda): the policy is
|
||||
applied once and grants nothing on its own; the Kubernetes-auth role is created by
|
||||
the attended platform-admin when an admission naming this lane is approved, bounded
|
||||
to that admission''s window, and deleted after the run''s receipt or at window end,
|
||||
whichever comes first. No write role exists between admitted runs.'
|
||||
role_window: 'Window-scoped (founder decision 2026-10-31, hub c29c6eda): the policy
|
||||
is applied once and grants nothing on its own; the Kubernetes-auth role is created
|
||||
by the attended platform-admin when an admission naming this lane is approved,
|
||||
bounded to that admission''s window, and deleted after the run''s receipt or at
|
||||
window end, whichever comes first. No write role exists between admitted runs.'
|
||||
deactivate: Delete the role, then the policy; the KV entry and the ESO reader lane
|
||||
(CCR-2026-0053) are unchanged. The bind falls back to founder-run rotation.
|
||||
rotate: Executor reads the current version N, signs in to LLDAP as svc-authelia with
|
||||
it and changes that account's own password (self-rotation, founder decision 2026-10-31,
|
||||
hub 3d0c8f86; no lldap_password_manager account), writes version N+1 with options.cas=N;
|
||||
ESO projects it, Authelia restarts, the synthetic journey proves sign-in. Revert
|
||||
changes the password back the same way and writes the prior value as version N+2
|
||||
with options.cas=N+1.
|
||||
rotate: Executor reads the current version N, signs in to LLDAP as svc-authelia
|
||||
with it and changes that account's own password (self-rotation, founder decision
|
||||
2026-10-31, hub 3d0c8f86; no lldap_password_manager account), writes version N+1
|
||||
with options.cas=N; ESO projects it, Authelia restarts, the synthetic journey
|
||||
proves sign-in. Revert changes the password back the same way and writes the prior
|
||||
value as version N+2 with options.cas=N+1.
|
||||
compromised: Delete the role first (stops new logins; existing tokens expire within
|
||||
15m, or revoke by accessor), then reset svc-authelia in LLDAP and rotate attended
|
||||
as in CCR-2026-0053.
|
||||
|
|
@ -96,17 +101,17 @@ delivery:
|
|||
surface: native-workload-login
|
||||
namespace: sso
|
||||
service_account: nk-bind-executor
|
||||
reader: 'Executor runtime (net-kingdom source, rapp-* package per ADR-0015, NK-WP-0056-T03);
|
||||
reader: Executor runtime (net-kingdom source, rapp-* package per ADR-0015, NK-WP-0056-T03);
|
||||
logs in with its projected ServiceAccount token, audience openbao; no Secret is
|
||||
created by this request'
|
||||
created by this request
|
||||
risk:
|
||||
classification: medium
|
||||
notes:
|
||||
- A write role on the svc-authelia bind is new; until now only the attended
|
||||
platform-admin wrote this path. It exists only during an admitted window. Within it,
|
||||
a compromised executor ServiceAccount can replace the bind value (Authelia sign-in
|
||||
outage on next restart) but cannot read any other path, create paths, delete versions
|
||||
or read metadata; outside it, the ServiceAccount cannot log in to this role at all.
|
||||
- A write role on the svc-authelia bind is new; until now only the attended platform-admin
|
||||
wrote this path. It exists only during an admitted window. Within it, a compromised
|
||||
executor ServiceAccount can replace the bind value (Authelia sign-in outage on
|
||||
next restart) but cannot read any other path, create paths, delete versions or
|
||||
read metadata; outside it, the ServiceAccount cannot log in to this role at all.
|
||||
- cas_required on the key makes every write state the version it replaces; a racing
|
||||
or replayed write is refused by the engine, not by the executor.
|
||||
- The executor also reads the current value (needed for CAS and revert). svc-authelia
|
||||
|
|
@ -130,8 +135,8 @@ verification:
|
|||
- Coding-agent boundary denies data and metadata of the path
|
||||
activation_conditions:
|
||||
- Explicit platform-owner and net-kingdom-owner approval of this exact request.
|
||||
- ServiceAccount sso/nk-bind-executor exists from the reviewed rapp-* package
|
||||
(bound_claims_confirmed then set to true by the platform-owner).
|
||||
- ServiceAccount sso/nk-bind-executor exists from the reviewed rapp-* package (bound_claims_confirmed
|
||||
then set to true by the platform-owner).
|
||||
- Attended platform-admin (aal2) session sets cas_required on the key and applies
|
||||
the policy once from a reviewed commit.
|
||||
- Per admitted run, the attended platform-admin creates the role for the admission's
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue