Merge branch 'chore/inventory-quartet' into 'main'
Inventory quartet and initial leases See merge request vaultsovereign/ops!1
This commit is contained in:
14
10-inventory/hosts/README.md
Normal file
14
10-inventory/hosts/README.md
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
# Hosts
|
||||||
|
|
||||||
|
Each host lives in its own directory:
|
||||||
|
|
||||||
|
```
|
||||||
|
10-inventory/hosts/<role>-<scope>-<id>/
|
||||||
|
```
|
||||||
|
|
||||||
|
Minimum:
|
||||||
|
|
||||||
|
- `README.md` (purpose + trust boundary)
|
||||||
|
- `hardware.md` (what it is)
|
||||||
|
- `os.md` (what it runs)
|
||||||
|
|
||||||
16
10-inventory/hosts/op-console-mac/README.md
Normal file
16
10-inventory/hosts/op-console-mac/README.md
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
# op-console-mac
|
||||||
|
|
||||||
|
## Purpose
|
||||||
|
|
||||||
|
Console host used to run `op-core-vm`.
|
||||||
|
|
||||||
|
## Trust boundary
|
||||||
|
|
||||||
|
- The host is a console, not a source of trust.
|
||||||
|
- Critical actions happen only inside `op-core-vm`.
|
||||||
|
- No long-lived secrets are kept on the host if avoidable.
|
||||||
|
|
||||||
|
## References
|
||||||
|
|
||||||
|
- Doctrine: `00-doctrine/operator-charter.md`
|
||||||
|
- Lease: `20-identity/leases/op-console-mac.md`
|
||||||
10
10-inventory/hosts/op-console-mac/hardware.md
Normal file
10
10-inventory/hosts/op-console-mac/hardware.md
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
# Hardware (op-console-mac)
|
||||||
|
|
||||||
|
- Model:
|
||||||
|
- Serial:
|
||||||
|
- CPU:
|
||||||
|
- RAM:
|
||||||
|
- Storage:
|
||||||
|
- Network:
|
||||||
|
- Location:
|
||||||
|
|
||||||
12
10-inventory/hosts/op-console-mac/os.md
Normal file
12
10-inventory/hosts/op-console-mac/os.md
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
# OS (op-console-mac)
|
||||||
|
|
||||||
|
- OS:
|
||||||
|
- Version:
|
||||||
|
- Install method:
|
||||||
|
- Disk encryption:
|
||||||
|
- Update policy:
|
||||||
|
|
||||||
|
## Notes
|
||||||
|
|
||||||
|
- The VM is the authority source; the host is replaceable.
|
||||||
|
|
||||||
15
10-inventory/hosts/op-witness-phone/README.md
Normal file
15
10-inventory/hosts/op-witness-phone/README.md
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
# op-witness-phone
|
||||||
|
|
||||||
|
## Purpose
|
||||||
|
|
||||||
|
Witness device for verification (alerts, confirmations, second factors).
|
||||||
|
|
||||||
|
## Trust boundary
|
||||||
|
|
||||||
|
- The phone is a witness, not a workstation.
|
||||||
|
- Prefer read-only access; no critical admin actions originate here.
|
||||||
|
|
||||||
|
## References
|
||||||
|
|
||||||
|
- Doctrine: `00-doctrine/operator-charter.md`
|
||||||
|
- Lease: `20-identity/leases/op-witness-phone.md`
|
||||||
7
10-inventory/hosts/op-witness-phone/hardware.md
Normal file
7
10-inventory/hosts/op-witness-phone/hardware.md
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
# Hardware (op-witness-phone)
|
||||||
|
|
||||||
|
- Model:
|
||||||
|
- Serial/IMEI:
|
||||||
|
- Storage:
|
||||||
|
- Network:
|
||||||
|
|
||||||
7
10-inventory/hosts/op-witness-phone/os.md
Normal file
7
10-inventory/hosts/op-witness-phone/os.md
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
# OS (op-witness-phone)
|
||||||
|
|
||||||
|
- OS:
|
||||||
|
- Version:
|
||||||
|
- Update policy:
|
||||||
|
- Lock screen policy:
|
||||||
|
|
||||||
11
10-inventory/hosts/srv-local-core/README.md
Normal file
11
10-inventory/hosts/srv-local-core/README.md
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
# srv-local-core
|
||||||
|
|
||||||
|
## Purpose
|
||||||
|
|
||||||
|
Local core server: stable services and state that must still be rebuildable.
|
||||||
|
|
||||||
|
## Authority boundary
|
||||||
|
|
||||||
|
- Provisioning and changes originate from `op-core-vm`.
|
||||||
|
- Host state is treated as disposable; the source of truth lives in `ops/`.
|
||||||
|
|
||||||
10
10-inventory/hosts/srv-local-core/hardware.md
Normal file
10
10-inventory/hosts/srv-local-core/hardware.md
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
# Hardware (srv-local-core)
|
||||||
|
|
||||||
|
- Model:
|
||||||
|
- Serial:
|
||||||
|
- CPU:
|
||||||
|
- RAM:
|
||||||
|
- Storage:
|
||||||
|
- Network:
|
||||||
|
- Location:
|
||||||
|
|
||||||
8
10-inventory/hosts/srv-local-core/os.md
Normal file
8
10-inventory/hosts/srv-local-core/os.md
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
# OS (srv-local-core)
|
||||||
|
|
||||||
|
- OS:
|
||||||
|
- Version:
|
||||||
|
- Install method:
|
||||||
|
- Disk encryption:
|
||||||
|
- Update policy:
|
||||||
|
|
||||||
11
10-inventory/hosts/srv-local-shield/README.md
Normal file
11
10-inventory/hosts/srv-local-shield/README.md
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
# srv-local-shield
|
||||||
|
|
||||||
|
## Purpose
|
||||||
|
|
||||||
|
Local shield node: boundary services (gateway, filtering, segmentation).
|
||||||
|
|
||||||
|
## Authority boundary
|
||||||
|
|
||||||
|
- Provisioning and changes originate from `op-core-vm`.
|
||||||
|
- Configuration is managed as code; rebuilds are expected.
|
||||||
|
|
||||||
10
10-inventory/hosts/srv-local-shield/hardware.md
Normal file
10
10-inventory/hosts/srv-local-shield/hardware.md
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
# Hardware (srv-local-shield)
|
||||||
|
|
||||||
|
- Model:
|
||||||
|
- Serial:
|
||||||
|
- CPU:
|
||||||
|
- RAM:
|
||||||
|
- Storage:
|
||||||
|
- Network:
|
||||||
|
- Location:
|
||||||
|
|
||||||
8
10-inventory/hosts/srv-local-shield/os.md
Normal file
8
10-inventory/hosts/srv-local-shield/os.md
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
# OS (srv-local-shield)
|
||||||
|
|
||||||
|
- OS:
|
||||||
|
- Version:
|
||||||
|
- Install method:
|
||||||
|
- Disk encryption:
|
||||||
|
- Update policy:
|
||||||
|
|
||||||
12
20-identity/leases/README.md
Normal file
12
20-identity/leases/README.md
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
# Leases
|
||||||
|
|
||||||
|
Leases are time-bound grants of access tied to a device (or system) and a role.
|
||||||
|
|
||||||
|
Rules:
|
||||||
|
|
||||||
|
- A lease has an expiry.
|
||||||
|
- A lease is revocable.
|
||||||
|
- Every lease has a recorded grant and a recorded revoke/rotate event.
|
||||||
|
|
||||||
|
Use `20-identity/templates/lease.md` for new leases.
|
||||||
|
|
||||||
20
20-identity/leases/op-console-mac.md
Normal file
20
20-identity/leases/op-console-mac.md
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
# Lease: op-console-mac
|
||||||
|
|
||||||
|
## Grant
|
||||||
|
|
||||||
|
- Lease type: device (console)
|
||||||
|
- Issued to role: operator
|
||||||
|
- Issued at (UTC):
|
||||||
|
- Expires at (UTC):
|
||||||
|
- Revoked at (UTC):
|
||||||
|
|
||||||
|
## Scope
|
||||||
|
|
||||||
|
- Permits: physical and local access required to operate `op-core-vm`.
|
||||||
|
- Forbids: treating the host OS as a source of trust.
|
||||||
|
|
||||||
|
## Rotation / revocation
|
||||||
|
|
||||||
|
- Revoke: remove local access, rotate any credentials that could have been exposed, and rebuild `op-core-vm` if integrity is in doubt.
|
||||||
|
- Verify: confirm operator access is only possible from a trusted, rebuilt core.
|
||||||
|
|
||||||
20
20-identity/leases/op-witness-phone.md
Normal file
20
20-identity/leases/op-witness-phone.md
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
# Lease: op-witness-phone
|
||||||
|
|
||||||
|
## Grant
|
||||||
|
|
||||||
|
- Lease type: device (witness)
|
||||||
|
- Issued to role: witness
|
||||||
|
- Issued at (UTC):
|
||||||
|
- Expires at (UTC):
|
||||||
|
- Revoked at (UTC):
|
||||||
|
|
||||||
|
## Scope
|
||||||
|
|
||||||
|
- Permits: read-only verification and confirmations.
|
||||||
|
- Forbids: initiating critical operational changes.
|
||||||
|
|
||||||
|
## Rotation / revocation
|
||||||
|
|
||||||
|
- Revoke: remove device access and rotate any linked factors.
|
||||||
|
- Verify: confirm no critical role can originate from this device.
|
||||||
|
|
||||||
20
20-identity/roles/operator.md
Normal file
20
20-identity/roles/operator.md
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
# Role: operator
|
||||||
|
|
||||||
|
## Purpose
|
||||||
|
|
||||||
|
Execute critical operational actions from the core boundary.
|
||||||
|
|
||||||
|
## Scope
|
||||||
|
|
||||||
|
- Allowed: provisioning, configuration, recovery, decommission.
|
||||||
|
- Forbidden: ad-hoc changes outside `op-core-vm`.
|
||||||
|
|
||||||
|
## Allowed origins
|
||||||
|
|
||||||
|
- `op-core-vm` only.
|
||||||
|
|
||||||
|
## Rotation / revocation
|
||||||
|
|
||||||
|
- Revoke: invalidate leases, rotate credentials, and sever device trust.
|
||||||
|
- Prove: record the action in `70-audits/reports/`.
|
||||||
|
|
||||||
20
20-identity/roles/witness.md
Normal file
20
20-identity/roles/witness.md
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
# Role: witness
|
||||||
|
|
||||||
|
## Purpose
|
||||||
|
|
||||||
|
Observe and confirm (alerts, read-only checks, second-factor confirmations).
|
||||||
|
|
||||||
|
## Scope
|
||||||
|
|
||||||
|
- Allowed: read-only verification and confirmations.
|
||||||
|
- Forbidden: provisioning and configuration changes.
|
||||||
|
|
||||||
|
## Allowed origins
|
||||||
|
|
||||||
|
- `op-witness-phone` only.
|
||||||
|
|
||||||
|
## Rotation / revocation
|
||||||
|
|
||||||
|
- Revoke: remove device access and rotate any linked factors.
|
||||||
|
- Prove: record the action in `70-audits/reports/`.
|
||||||
|
|
||||||
7
20-identity/templates/README.md
Normal file
7
20-identity/templates/README.md
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
# Templates
|
||||||
|
|
||||||
|
Use these templates to keep identity material consistent:
|
||||||
|
|
||||||
|
- `role.md`
|
||||||
|
- `lease.md`
|
||||||
|
|
||||||
24
20-identity/templates/lease.md
Normal file
24
20-identity/templates/lease.md
Normal file
@@ -0,0 +1,24 @@
|
|||||||
|
# Lease: <device-or-system>
|
||||||
|
|
||||||
|
## Grant
|
||||||
|
|
||||||
|
- Lease type:
|
||||||
|
- Issued to role:
|
||||||
|
- Issued at (UTC):
|
||||||
|
- Expires at (UTC):
|
||||||
|
- Revoked at (UTC):
|
||||||
|
|
||||||
|
## Scope
|
||||||
|
|
||||||
|
- What this lease permits:
|
||||||
|
- What it explicitly forbids:
|
||||||
|
|
||||||
|
## Rotation / revocation
|
||||||
|
|
||||||
|
- Revocation procedure:
|
||||||
|
- Post-revoke verification:
|
||||||
|
|
||||||
|
## Evidence
|
||||||
|
|
||||||
|
What you record when granting/rotating/revoking (timestamps, IDs, logs).
|
||||||
|
|
||||||
29
20-identity/templates/role.md
Normal file
29
20-identity/templates/role.md
Normal file
@@ -0,0 +1,29 @@
|
|||||||
|
# Role: <name>
|
||||||
|
|
||||||
|
## Purpose
|
||||||
|
|
||||||
|
What this role exists to do.
|
||||||
|
|
||||||
|
## Scope
|
||||||
|
|
||||||
|
- Allowed actions:
|
||||||
|
- Forbidden actions:
|
||||||
|
|
||||||
|
## Allowed origins
|
||||||
|
|
||||||
|
Where this role is allowed to be used from (e.g., `op-core-vm`).
|
||||||
|
|
||||||
|
## Credentials
|
||||||
|
|
||||||
|
What mechanisms this role uses (keys/tokens), and where the encrypted material lives.
|
||||||
|
|
||||||
|
## Rotation / revocation
|
||||||
|
|
||||||
|
- How to revoke fast:
|
||||||
|
- How to rotate predictably:
|
||||||
|
- Proof you record:
|
||||||
|
|
||||||
|
## Notes
|
||||||
|
|
||||||
|
Anything future-you must remember.
|
||||||
|
|
||||||
Reference in New Issue
Block a user