Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.getunbound.ai/llms.txt

Use this file to discover all available pages before exploring further.

Your AI coding agents can run anything a developer can — including the handful of commands that wipe a database, tear down production, or leak a secret. This is the pack that draws the line. It covers the highest-impact actions across eight command families, and it goes live without breaking a single workflow: high-risk actions prompt for a quick confirmation, everything else is logged silently. You watch, you learn, then you enforce — on your terms. And it’s not theory. Every Warn policy here was confirmed firing on a real command in observe mode; the Audit rules are your recommended starting coverage and use the same classifier fields. The family and field values are exactly what Unbound’s classifier extracts.
Create these under Policies → Tool Policies → Create Policy. Leave User Groups empty to apply org-wide, or scope to a team. The four actions are Audit, Warn, Block, and Require Slack Approval (the last needs the Slack integration). Warn is supported on Claude Code and Copilot only — on other tools, use Audit or Block.

Live in three steps

1

Apply it in observe mode

Drop in the whole pack — high-risk actions on Warn, everything else on Audit. Nothing hard-blocks, so day one is invisible to your developers and loud to your security team.
2

Watch your agents work

Give it a few days. Every Warn and every audited action lands in Analytics → Tool Use → Terminal Run, attributed to the user and session. Now you can see exactly what your agents do — not guess.
3

Promote what matters

Flip the policies you want enforced from Warn → Block, and relax anything noisy. Your enforcement is now shaped by your own data, not a vendor’s defaults.

Warn — stop and confirm

The actions that can cost you a weekend. On Claude Code and Copilot the agent pauses and asks before it runs one; on other tools, set these to Block or Audit.
PolicyCommand Family · Match (If)Try it
Force-push or direct push to main/masterGit Action · Operation push + Branch main|mastergit push --force origin main
Escalate to rootPrivilege Escalation · Target User rootsudo su -
Modify system filesUpdate System File · anyecho x | sudo tee -a /etc/hosts
Delete files in system pathsDelete File · Path /etc/*|/usr/*|/var/*|/opt/*rm -rf /etc/example
SSH as rootRemote Access · User rootssh root@host
SSH to production hostsRemote Access · Host *prod*ssh deploy@prod-web-1
Remote script execution on productionRemote Execution · Target Host *prod*ssh deploy@prod-host 'bash deploy.sh'
kubectl context switch to productionCloud Config · Context *prod*kubectl config use-context prod-cluster
kubectl apply to productionCloud Provision · Provider kubectl + Environment *prod*kubectl apply -f x.yaml --context prod
IAM policy attachmentCloud IAM · Operation *attach*policy*aws iam attach-role-policy …
Kubernetes RBAC changesCloud IAM · Service rbac.*|clusterrole.*kubectl create clusterrolebinding …
Kubernetes namespace deletionCloud Destroy · Provider kubectl, Service namespace*kubectl delete namespace test-ns
Secret deletionCloud Secrets · Operation delete.*aws secretsmanager delete-secret …
Deployment to productionCloud Provision · Environment *prod*aws deploy create-deployment … prod
Database DROPDatabase Admin · Operation *DROP*psql -c "DROP TABLE customers;"
Database DELETEDatabase Write · Operation *DELETE*psql -c "DELETE FROM users;"
Production database writesDatabase Write · Environment *prod*psql "host=prod-db" -c "UPDATE …"
Production database adminDatabase Admin · Environment *prod*psql "host=prod-db" -c "VACUUM FULL;"
Container stop / kill / removalContainer Operation · Operation rm|stop|killdocker rm -f some-container
Production container operationsContainer Operation · Container *prod*docker restart prod-api
Some commands match more than one rule by design — e.g. kubectl apply --context prod matches both kubectl apply to production and the broader Deployment to production. That’s intentional layered coverage, but it means a single command can surface a Warn from each. If you’d rather see one prompt, scope Deployment to production to exclude kubectl (add a provider constraint) once you’ve decided which rule you want to own that path.

Audit — log silently

Routine, but worth a paper trail. These never interrupt anyone — they quietly build the evidence you’ll use to decide what to lock down next.
PolicyCommand Family · Match (If)Try it
Terraform applyCloud Provision · Provider terraform, Operation applyterraform apply -auto-approve
Kubernetes scaleCloud Provision · Provider kubectl, Operation scalekubectl scale deployment web --replicas=3
Helm install / upgradeCloud Provision · Provider helmhelm upgrade myapp ./chart
EC2 instance launchCloud Provision · Service ec2, Operation run-instancesaws ec2 run-instances …
Secret retrievalCloud Secrets · Operation get*|readaws secretsmanager get-secret-value …
Vault accessCloud Secrets · Provider vaultvault kv get secret/app/db
Container execContainer Operation · Operation execdocker exec -it app sh
Container image pushContainer Operation · Operation pushdocker push registry/app:latest
Database UPDATEDatabase Write · Operation *UPDATE*psql -c "UPDATE settings SET …"
SIGKILL terminationProcess Management · Signal SIGKILL|9kill -9 4242
Sensitive env-var exposureEnvironment Exposure · Variable *SECRET*|*KEY*|*TOKEN*env | grep SECRET
Data upload to external endpointsData Transfer · Operation upload|sendaws s3 cp ./report.csv s3://bucket/
Plus a family-wide safety net. The pack also adds one Audit rule with Match = any to each high-risk family, so everything in that family is logged — even commands the specific rules above don’t name:
Family-wide Audit rule (Match = any)
Cloud Destroy · Cloud Provision · Cloud IAM · Cloud Secrets
Database Admin · Database Write
Remote Access · Remote Execution · Privilege Escalation
Delete File · Credential Access · Environment Exposure · Data Transfer
These family-wide Audit rules are the biggest driver of analytics volume — they log every classified command in the family. That’s exactly what you want while you’re learning your baseline; once you’ve seen a few days of activity, narrow to the targeted rules above (or add retention/rollup) so the signal stays sharp.

Two layers, zero blind spots

This pack is built in two complementary layers, so a risky operation is never missed:
  • Precise, production-scoped rules key on the environment Unbound’s classifier reads straight from the command — a host like prod-db.internal, a container named prod-api, a namespace production. When a command names its environment, it gets the tighter, production-specific treatment.
  • Family-wide rules sit underneath every family (e.g. Audit all cloud resource destruction, Audit all database writes) and catch everything in that family, however it’s named.
The specific rule fires when the target names its environment; the family rule has your back when it doesn’t. Together they mean nothing in a high-risk family ever goes unseen.

Go live

Create these by hand with the When → If → Then values above, or ask your Unbound contact to seed the whole pack in observe mode — you’ll be live in minutes. Review a few days of analytics, promote what matters to Block, and you’ve got enforcement tuned to how your team actually works.