ssh-certificates pack: inert rehearsal actor defaults, honest tunnel alternative; record ops-warden registry request
All checks were successful
CI Smoke / host-smoke (push) Successful in 0s
CI Smoke / container-smoke (push) Successful in 1s

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>

Assistant: claude-code
Assistant-Model: sonnet
Assistant-Process: 6969@bnt-lap001
Assistant-Session: e8ae73f2-8385-4c9c-b714-94c3c52cdbc0
This commit is contained in:
tegwick 2026-10-02 21:52:02 +02:00
parent 64a96a0540
commit 8091016bb3
2 changed files with 41 additions and 15 deletions

View file

@ -17,15 +17,15 @@ datapoints:
- id: actor_name
label: Actor name
type: string
default: agt-claude-railiance01
default: agt-rehearsal
pattern: "(adm|agt|atm)-[a-z0-9-]+"
help: "Actor type prefix decides the maximum TTL: adm 48h, agt 24h, atm 8h."
help: "Actor type prefix decides the maximum TTL: adm 48h, agt 24h, atm 8h. agt-rehearsal is an inert test actor (2h, a principal no host trusts); use your own actor for real access."
dimensions: {actor: operator, kind: identity, subsystem: ops-warden}
ask_in: ready
- id: pubkey
label: Public key path
type: path
default: ~/.ssh/id_ed25519.pub
default: ~/.ssh/agt-rehearsal_ed25519.pub
dimensions: {actor: operator, kind: location, subsystem: ops-warden}
ask_in: ready
- id: tunnel
@ -35,6 +35,14 @@ datapoints:
pattern: "[a-z0-9-]+"
dimensions: {kind: target, subsystem: ops-bridge}
ask_in: ready
- id: test_target
label: Is there a target that trusts your actor's principal?
type: enum
values: [available, none-yet]
default: none-yet
help: With the inert rehearsal actor no host trusts the certificate, so the tunnel cannot be proven. Choose available only with a real actor and a tunnel that uses it.
dimensions: {kind: state, subsystem: ops-bridge}
ask_in: connect
stages:
- id: ready
title: Before you start
@ -110,15 +118,26 @@ stages:
title: Bring up the tunnel that uses cert_command
actor: operator
owner: ops-bridge
uses: [tunnel]
command: bridge up {{tunnel}}
uses: [tunnel, test_target]
description: A tunnel only proves the certificate if a host trusts its principal. With the inert rehearsal actor none does, so record that no target exists yet; the stage is then not proven.
idempotent: idempotent
rollback: bridge down {{tunnel}}
verify:
done_when: The tunnel shows connected
command: bridge status
expect: output-contains
contains: "{{tunnel}}"
one_of:
- id: bring-up
title: Bring up the tunnel that uses the certificate
recommended_when: {test_target: [available]}
command: bridge up {{tunnel}}
rollback: bridge down {{tunnel}}
verify:
done_when: The tunnel shows connected
command: bridge status
expect: output-contains
contains: "{{tunnel}}"
- id: no-target-yet
title: No target trusts this actor yet; tunnel not proven
recommended_when: {test_target: [none-yet]}
verify:
done_when: You have recorded that the tunnel stage was not proven
expect: manual
- id: audit
title: Confirm the signing was audited
actor: operator
@ -131,13 +150,13 @@ stages:
expect: manual
gates:
- id: tunnel-connected
title: The tunnel is connected
title: The tunnel is connected, or its absence is recorded
goal: private-access
blocking: true
downstream_risk: A pass here could be read as proof that private access works.
checks:
- done_when: bridge reports the tunnel as connected
command: bridge status | grep -E "{{tunnel}} +connected"
expect: exit-0
- done_when: bridge reports the tunnel as connected, or "tunnel not proven" is recorded because no target exists
expect: manual
ownership:
- {concern: Certificate issuance and TTL policy, owner: ops-warden}
- {concern: Tunnel lifecycle and refresh, owner: ops-bridge}

View file

@ -99,6 +99,13 @@ Decision needed from Bernd on which actor and key the rehearsal uses; then fix t
v0.2 packs) sent to runbook-tutorials (`6e366f35-43a7-4e55-8622-40626a4acbec`). Project `trial-2` is the lighthouse showcase and
holds no NetKingdom pack, so it is not T05 evidence.
**Rehearsal actor 2026-10-02**: Bernd approved an inert test actor, not a master key. Added `agt-rehearsal` (agt, 2h, principal
`rehearsal-inert-nohost`, no host trusts it) to the workstation warden inventory, key `~/.ssh/agt-rehearsal_ed25519`; the
`nk.ssh-certificates` defaults now point at it and its tunnel step is an honest alternative (no target yet = not proven).
`warden sign` is still denied by flex-auth (`unknown_actor_resource`): actors live in ops-warden's production registry. Request
sent to ops-warden for the sanctioned registration; net-kingdom does not edit their registry. A systematic pre-production
testing environment (test CA, test principals, test hosts) is Bernd's later topic.
## Retire the markdown verifier
```task