Skip to content

Commit 1aa0f0c

Browse files
committed
docs(guardrails): add operator policy packs + rollout preview
1 parent d41bed5 commit 1aa0f0c

5 files changed

Lines changed: 109 additions & 0 deletions

File tree

docs/guardrails/README.md

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
# Operator Guardrails (experimental)
2+
3+
Minimum delighter slice for the "operator guardrails and policy UX" P1
4+
backlog item. Ships three opinionated policy packs so admins can pick one and
5+
preview how commands will be constrained before rollout.
6+
7+
## Policy packs
8+
9+
| Pack | Posture | Default command handling | Approval required |
10+
|---|---|---|---|
11+
| `observer` | least privilege | dry-run everything; block side effects | every `write` |
12+
| `standard` | balanced | allow read + common ops; deny destructive | `delete`, `chmod`, network egress |
13+
| `power-user` | broad | allow most commands | only for irreversible ops |
14+
15+
See `observer.yaml`, `standard.yaml`, and `power-user.yaml` for the full rule
16+
shape. Each pack documents, in plain text, exactly which command categories
17+
are allowed, denied, or quarantined for approval.
18+
19+
## Rollout preview
20+
21+
The rollout preview is currently docs-only: before enabling a pack in a real
22+
environment, an admin can read the pack's YAML and the corresponding
23+
`preview/*.txt` file to see a sample of how 20 representative commands would
24+
be classified.
25+
26+
Wiring the preview into a runtime checker is tracked as the next pass.

docs/guardrails/observer.yaml

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
name: observer
2+
description: Least-privilege pack. Dry-run all commands, block everything with side effects, queue writes for explicit approval.
3+
allow:
4+
- read
5+
- list
6+
- stat
7+
deny:
8+
- delete
9+
- chmod
10+
- chown
11+
- network_egress
12+
- package_install
13+
- kernel_module
14+
approval_required:
15+
- write
16+
- create
17+
audit:
18+
log_stdout: true
19+
log_stderr: true
20+
log_approvals: true

docs/guardrails/power-user.yaml

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
name: power-user
2+
description: Broad pack. Most commands allowed; only irreversible or system-level changes require approval.
3+
allow:
4+
- read
5+
- list
6+
- stat
7+
- write
8+
- create
9+
- delete
10+
- chmod
11+
- network_egress
12+
- package_install
13+
deny:
14+
- kernel_module
15+
approval_required:
16+
- rm_rf_root
17+
- drop_database
18+
audit:
19+
log_stdout: true
20+
log_stderr: true
21+
log_approvals: true
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
Observer pack — sample classification of 20 common commands
2+
============================================================
3+
ls /etc -> ALLOW (read)
4+
cat /etc/hosts -> ALLOW (read)
5+
stat /var/log/syslog -> ALLOW (stat)
6+
echo hi > /tmp/x -> APPROVAL (write)
7+
touch /tmp/x -> APPROVAL (create)
8+
rm /tmp/x -> DENY (delete)
9+
rm -rf / -> DENY (delete)
10+
chmod 777 /etc/shadow -> DENY (chmod)
11+
chown root /etc/hosts -> DENY (chown)
12+
curl https://example.com -> DENY (network_egress)
13+
wget https://example.com -> DENY (network_egress)
14+
apt-get install nginx -> DENY (package_install)
15+
pip install requests -> DENY (package_install)
16+
modprobe foo -> DENY (kernel_module)
17+
uname -a -> ALLOW (read)
18+
ps aux -> ALLOW (read)
19+
df -h -> ALLOW (read)
20+
mkdir /tmp/new -> APPROVAL (create)
21+
mv /tmp/a /tmp/b -> APPROVAL (write)
22+
diff /etc/a /etc/b -> ALLOW (read)

docs/guardrails/standard.yaml

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
name: standard
2+
description: Balanced pack. Reads and common operations allowed, destructive or high-risk commands denied or queued for approval.
3+
allow:
4+
- read
5+
- list
6+
- stat
7+
- write
8+
- create
9+
deny:
10+
- delete
11+
- chmod
12+
- chown
13+
- kernel_module
14+
approval_required:
15+
- network_egress
16+
- package_install
17+
audit:
18+
log_stdout: true
19+
log_stderr: true
20+
log_approvals: true

0 commit comments

Comments
 (0)