Access Control Policy Design — Skill Navigator

SkillSecurity

USE THIS SKILL whenever any topic related to access control, authorization, permissions, or security policy arises in any form. Triggers include — but are not limited to: RBAC, ABAC, PBAC, ACL, DAC, ReBAC, Zanzibar, OPA, Cedar, Casbin, SpiceDB, OpenFGA, Permify, Oso, Cerbos, Permit.io; any mention of "who can do what", "role", "permission", "policy", "authorization", "multi-tenant access", "least privilege", "Zero Trust", "IAM design", "SaaS permission modeling", "access audit", "compliance access control" (HIPAA, GDPR, SOC2, PCI-DSS, ISO27001); also trigger when designing any new feature that controls what users can see or do, or when reviewing, refactoring, or debugging any auth/authz system. When in doubt — trigger this skill. Access control is architectural and getting it wrong is expensive.

Available today. Use it from your connected AI after setup.

Connect ahel once, and every AI you use reads what you have installed.

Then ask your AI: use the Access Control Policy Design — Skill Navigator skill

What this skill tells your AI

The instructions your AI receives, as published by tan-yong-sheng/ai-vision-mcp in .claude/skills/access-control-policy-design/SKILL.md and read by ahel’s review.

What this skill does

Acts as a senior IAM/authorization architect. Covers all major access control paradigms, hybrid composition patterns, policy engines, compliance mapping, implementation code, and decision frameworks for modern apps (SaaS, multi-tenant, microservices, cloud-native).


Core Mental Model (always apply this first)

Every access control system answers one runtime question:

Should subject S perform action A on resource R right now?

Models differ in how that decision is made. They are layers, not competitors:

LayerModelAnswers
StructureRBACWho are you organizationally?
ContextABACWhat conditions apply right now?
GovernancePBACWho controls the rules and how?
RelationshipsReBACHow do entities connect to resources?
PrecisionACLWhat's explicitly allowed on this object?
DelegationDACWhat has the owner chosen to share?

Key principle: Most mature systems use 3–4 of these together, with PBAC as the governance shell wrapping the others. Start simple (RBAC), add layers as complexity demands.


Quick Decision Matrix

ScenarioRecommended Model(s)Reference File
Internal tool, stable job rolesRBAC01-rbac.md
Multi-tenant SaaSRBAC + ABAC01-rbac.md, 02-abac.md
Healthcare / Finance dataABAC + PBAC02-abac.md, 03-pbac-opa.md
Collaborative hierarchical contentReBAC04-rebac-zanzibar.md
Object-level sharing exceptionsACL on top of RBAC05-acl-dac.md
Consumer app with owner sharingDAC + guardrails05-acl-dac.md
Many microservices, many teamsPBAC (OPA/Cedar)03-pbac-opa.md
Zero Trust architectureRBAC + ABAC + PBAC06-hybrid-patterns.md
SOC2 / HIPAA / GDPR compliancePBAC + audit trail08-compliance.md
Early-stage startup (<50 users)RBAC only01-rbac.md

Reference Files (load the relevant one per task)

references/
├── 01-rbac.md               — RBAC deep dive: design, role taxonomy, anti-patterns, OPA/Casbin code
├── 02-abac.md               — ABAC deep dive: attribute schema, OPA Rego policies, XACML, JWT patterns
├── 03-pbac-opa.md           — PBAC + OPA/Cedar/Casbin: policy-as-code, engine selection, CI/CD
├── 04-rebac-zanzibar.md     — ReBAC/Zanzibar: SpiceDB, OpenFGA, schema design, dual-write patterns
├── 05-acl-dac.md            — ACL + DAC: when to use, guardrails, combining with RBAC
├── 06-hybrid-patterns.md    — Layered defense, multi-tenant patterns, Zero Trust, evolution arc
├── 07-policy-engines.md     — Engine comparison matrix: OPA vs Cedar vs Casbin vs SpiceDB vs Permify
├── 08-compliance.md         — HIPAA, GDPR, SOC2, PCI-DSS, ISO27001 — exact mapping + audit schema
└── 09-code-examples.md      — Ready-to-use code: Python, Node.js, Go across all models

When to load which file:

  • User asks about a specific model → load that model's reference file
  • User asks about implementation / code → load 09-code-examples.md + model file
  • User asks about tool/engine selection → load 07-policy-engines.md
  • User asks about compliance → load 08-compliance.md
  • User is designing multi-tenant or microservices → load 06-hybrid-patterns.md
  • User is debugging broken access / role explosion → load 06-hybrid-patterns.md §Warning Signs

Evolution Arc (how real systems grow)

Phase 1 — Early product:     RBAC (Admin / User / Viewer). Fast, auditable.
Phase 2 — Multi-tenant:      RBAC + ABAC (tenant_id attribute, conditional access).
Phase 3 — Multiple services: PBAC layer (OPA/Cedar policy engine, decoupled from code).
Phase 4 — Collaborative:     ReBAC (hierarchical resource ownership + sharing graph).
Phase 5 — Enterprise/regulated: Full hybrid — RBAC+ABAC+PBAC+ReBAC, audit logging,
                                 access certification, anomaly detection.

Universal Rules (apply regardless of model chosen)

  1. Deny by default — explicit ALLOW, implicit DENY everywhere
  2. Enforce server-side — UI hints only; never trust client-side permission checks
  3. Log every decision — allow AND deny, with subject/action/resource/reason/timestamp
  4. Least privilege — grant minimum access required; time-bound temporary elevations
  5. Version policies — treat authorization rules as code: review, test, deploy, roll back
  6. Quarterly access reviews — permissions rot without active curation
  7. Test both allow and deny — missing a deny test is a security gap

Warning Signs (diagnose broken access control fast)

SymptomRoot CauseFix
Role count doubles every quarterRBAC role explosionIntroduce ABAC attributes
"We have a role for that" for every edge caseRBAC over-stretchABAC conditions
Different services enforce the same rule differentlyAuthorization scatterPBAC engine
Can't answer "who has access to X?"ACL sprawlCentralize with PBAC
Audit takes days to compileNo central access logStructured decision logging
Access doesn't revoke when user changes teamsRole creepAccess certification process
Sharing causes accidental data exposureUnbounded DACDAC guardrails / boundaries
One engineer understands all the auth rulesABAC policy sprawlPBAC + documentation

Two-Question Clarity Test

Q1: What will be harder in 6 months — explaining access decisions, or changing them safely?

  • Hard to explain → ABAC/PBAC + visibility tooling
  • Hard to change safely → PBAC governance layer before system becomes brittle

Q2: Does "same action" need different decisions based on context?

  • YES → ABAC is mandatory
  • NO → Pure RBAC may be sufficient for now

Online Sources

Signals

GitHub stars
78
Forks
16
Last commit
Apr 2026

ahel review

  • K1binfo
    installs-packages (in references/03-pbac-opa.md)

Automated review, not a security audit. Ruleset v1+k2.

Advanced
Catalog kind
skill
Gateway key
access-control-policy-design
Source
github.com/tan-yong-sheng/ai-vision-mcp