Skip to main content
Cloud & AI Hub
Browse
Glossary AI Directory Playgrounds Models Prompts Explainers Strategy Matrix Benchmark Decoder

Attribute-Based Access Control (ABAC)

Authorization decided by policies over attributes — user, resource, and context — rather than static roles. Vastly more expressive, meaningfully harder to reason about.

What is ABAC?

Attribute-Based Access Control makes access decisions by evaluating rules against attributes: properties of the user (department, clearance, region), the resource (owner, classification, tag), the action, and the environment (time, IP, device posture). A single policy — “engineers may access resources tagged with their own team during business hours from a managed device” — replaces the dozens of narrow roles RBAC would need to approximate it. AWS IAM condition keys, tag-based policies, and modern policy engines (Cedar, OPA) are ABAC in practice.

The expressiveness/complexity trade

ABAC’s power is real: it scales to conditions RBAC can’t express, and it externalizes logic — one policy governs thousands of resources by attribute rather than enumerating them. But three costs are equally real. Reasoning is harder: “who can access this?” stops being a membership lookup and becomes evaluating policies against a matrix of attribute combinations — you often can’t answer it by inspection, only by querying an analyzer. Attributes must be trustworthy and current: an access model keyed on department is only as correct as the HR sync feeding it; stale attributes are silent misgrants. Policy conflicts and evaluation order create subtle bugs that testing must catch.

Where it fits

ABAC shines in multi-tenant systems (tenant-ID attribute isolation), large regulated estates (clearance × classification × need-to-know), and dynamic contexts (zero trust device-posture gating). The pragmatic architecture is RBAC + ABAC hybrid: roles for broad structure everyone understands, attribute conditions for the fine-grained “but only if…” — most cloud IAM works exactly this way.

What people get wrong

  • Going pure-ABAC for simple needs — a five-role app doesn’t need a policy engine; complexity should be earned.
  • Untrusted attribute sources: authorization inherits the integrity of its attribute pipeline.
  • Unversioned, untested policies — ABAC rules are code; ship them through review and tests or ship silent misgrants.

Primary source: NIST SP 800-162 — Guide to ABAC

Historical figures and technical concepts for informational purposes only. Not technical, professional, legal, or financial advice. Sources: Official Documentation.