net-kingdom/examples/bounded-execution-admission/bind-split-read-only-verify.yaml
tegwick e830238746
All checks were successful
Build and Publish bounded-executor / build-and-push (push) Successful in 6s
CI Smoke / host-smoke (push) Successful in 0s
CI Smoke / container-smoke (push) Successful in 2s
Identity provider journey acceptance / provider (push) Successful in 1m5s
NK-WP-0056-T10: examples re-pinned at 15c9cdb
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

Assistant: claude-code
Assistant-Model: opus
Assistant-Process: 5502@bnt-lap001
Assistant-Session: 68b3b02f-5d0f-4e71-8421-796f62e50196
2026-10-31 20:33:28 +01:00

106 lines
3.1 KiB
YAML

# NK-WP-0056-T01 example: the bind split (NK-WP-0054) as admissions. Illustrative: the executor
# (T03) and its operations do not exist yet; files are pinned at the commit named in plan.source.
apiVersion: netkingdom.io/bounded-execution-admission/v0.1
kind: BoundedExecutionAdmission
spec:
id: BEA-2026-0004
title: Read-only verification of the directory split (bind-split steps 2, 4 and 10 verify)
purpose: 'Plan and verify reads that the founder used to do signed in as admin: account inventory, group membership, bind
identities of the consumers. No mutation, so nothing to revert.'
work_ref: NK-WP-0056-T01 example
risk_class: low
window:
not_before: '2026-11-03T09:00:00Z'
not_after: '2026-11-04T09:00:00Z'
approval:
approvers:
- admin
principal_type: HUMAN
assurance: aal2
carriers:
- approval-engine
- founder-ssh-signature
executor:
identity: service:nk-bind-executor
principal_type: WORKLOAD
runtime: k8s sso/serviceaccount nk-bind-executor (planned, NK-WP-0056-T03)
scope_ceiling:
- mode: OBSERVE
scope: lldap/people
environments: &id001
- PRODUCTION
- mode: OBSERVE
scope: k8s/sso
environments: *id001
blast_radius:
unit: consumer
consumers:
- lldap
- authelia
- keycape
- privacyidea
max_concurrent: 4
trust_requires:
- runtime_secret_trust
- runtime_identity_trust
plan:
source:
repo: net-kingdom
commit: 15c9cdbef881
files:
- path: sso-mfa/k8s/lldap/bind-split.py
sha256: 4decc3bbe65120ff6c4cef5613b9a41a60168ae64ecd4c1380f61a2fcd37b6b3
steps:
- id: inventory
operation: lldap.read.users-and-groups
target: lldap:people
consumer: lldap
class: delegable
mutates: false
requires:
mode: OBSERVE
scope: lldap/people
checks_after:
- split-shape
- id: consumer-binds
operation: k8s.read.bind-identities
target: k8s:sso
consumer: authelia
class: delegable
mutates: false
requires:
mode: OBSERVE
scope: k8s/sso
checks_after:
- split-shape
plan_digest: sha256:840d296ed7d27209f21c4e00500409fba80e2b85e4ce2e828663d8b0d4ca11e0
checks:
- id: split-shape
description: every consumer binds as its own svc- account; no service binds as admin
ref: sso-mfa/k8s/lldap/bind-split.py
sha256: 4decc3bbe65120ff6c4cef5613b9a41a60168ae64ecd4c1380f61a2fcd37b6b3
timeout_seconds: 60
expect: pass
stop_and_revert:
on_check_failure: stop
on_budget_exhausted: stop
on_unknown: stop
on_revert_failure: stop-and-alert
budget:
wall_time_seconds: 300
attempts: 3
cost:
compute_cpu_seconds: 30
egress_bytes: 500000
currency: EUR
amount: 0.01
consumption:
single_use: true
consume_before_first_step: true
receipt:
schema: netkingdom.playbook-capability-contract/v0.2#execution-attribution-receipt
emit_to: audit-core
retain: by-hash-no-secret-values
independent_verifier: tools/bounded-execution-admission/validate.py check-approval + receipt source hashes
not_authorized:
- any write to LLDAP, Kubernetes or OpenBao