Turn workload identity into network access.
Policies define exactly what authenticated identities can access.
Policy model
Every policy answers four questions: who, what, where, and within what limits.
- WHOacme/widget · deploy-production
- WHATterraform
- WHEREdb.prod:5432
- LIMITS20m · 100 Mbpsactive
- NETWORK ACCESS ACCESS GRANTED
- WHO
- acme/widget · main · deploy-production
- WHAT
- terraform
- WHERE
- db.prod:5432
- LIMITS
- 20m · 100 Mbps
Policy decision
- Requestevaluatedcontrol plane
- Policy
- matchactive
Allow
- no matchdenied
DenyNo matching allow rule means DENY.
Default deny
No matching allow rule means DENY.
- REQUEST
- NO MATCHdenied
- ACCESS DENIED
Policy examples
Production deployment
name = "production" [match] # WHO repository = "acme/widget" branch = "main" [[rules]] application = "terraform" # WHAT action = "allow" destinations = [ # WHERE "api.production.example.com:443", "*.terraform.io:443", ] [session] # LIMITS max_duration = "20m" [limits] bandwidth = "100Mbps" connections = 50 [[tests]] # runs in CI application = "terraform" destination = "api.production.example.com:443" expect = "allow"
Developer database access
name = "developer-db" [match] # WHO repository = "acme/platform" branch = "main" [[rules]] application = "psql" # WHAT action = "allow" destinations = ["dev-db.internal:5432"] # WHERE [session] # LIMITS max_duration = "60m"
Policies are TOML or YAML files in your repository, so they can be reviewed, diffed and tested in CI.
Create and explain policies
The console wizard guides you through identity, application, destinations, limits and review. Save a draft, validate and test it, then publish a revision.
Start with:
- Who needs access?
- acme/widget
- What are they running?
- terraform
- Where do they need to go?
- db.prod:5432
- How long?
- 20 minutes
- Bandwidth limit?
- 100 Mbps
Review the generated policy before applying it.
Write a policy file or use the console wizard, then ask why a request is allowed or denied. Explanations include baseline guardrails. Verified workload kinds distinguish CI, developers and agents; application names remain declared context. Policy max_duration is currently metadata, not an enforced timeout.
skimasque policy check production google.com:443 --app terraform DENY Policy: production Reason: No matching allow rule. Closest rules: api.production.example.com:443 *.terraform.io:443 Suggested rule: allow terraform google.com:443