CLOUD CONCEPT

Attribute-Based Access Control

Attribute-Based Access Control is an authorization model that grants or denies access by evaluating attributes of the requester, resource, requested action, and request context.

Cloud Concepts Hub →

What is Attribute-Based Access Control

ABAC expresses access rules using attributes such as project, department, environment, or data classification instead of maintaining separate permissions for every identity and resource. In cloud environments, trusted identity attributes and resource tags can make permissions scale with changing teams and infrastructure, provided attribute assignment and modification are tightly controlled.

Attribute-Based Access Control (ABAC) makes authorization decisions by evaluating attributes against policy rules. Attributes can describe the subject requesting access, the target resource, the requested operation, and environmental conditions such as time or network origin. For example, a policy might permit an engineer to read a secret only when the engineer's project attribute matches the secret's project attribute. Authentication establishes who the requester is; ABAC determines what that requester may do.

Cloud implementations commonly represent attributes through identity metadata, resource tags, and temporary-session attributes. In AWS, IAM policies can compare a principal tag such as aws:PrincipalTag/Project with a resource tag through aws:ResourceTag/Project or a service-specific condition key. A shared policy can therefore authorize supported operations on resources belonging to the caller's project without enumerating every resource identifier. Tags alone do not grant access: an applicable policy must explicitly use them, and the requested action must support the relevant condition keys.

Consider an organization running several application teams. Engineers assume a role that permits selected development operations, while a trusted identity provider supplies their project as a session tag. Resources carry a corresponding Project tag. The same role and policy structure can serve multiple teams, with the tag comparison separating their access. A newly created resource can fall within the policy automatically when it has the required attributes, but only if other authorization controls also permit the operation.

Role-Based Access Control (RBAC) instead groups permissions around job functions, such as developer, auditor, or database administrator. ABAC and RBAC are complementary rather than mutually exclusive. A practical hybrid uses roles to define allowed categories of actions and attributes to determine which resources those actions may affect. RBAC is often easier for a small set of stable responsibilities; ABAC reduces repeated policies across many projects but introduces dependencies on attribute quality and governance.

Attribute integrity is a security boundary. An engineer who can change a resource's Project tag or choose an unrestricted session tag might gain access to another team's resources. Restrict who can assign identity attributes, which session-tag keys and values are accepted, and who can add, change, or remove authorization-sensitive resource tags. AWS role trust policies must appropriately authorize session tagging through sts:TagSession. Validate permitted tags during resource creation using supported request-tag and tag-key conditions, and protect subsequent tagging operations separately.

Creation requires special attention because the resource may not yet have tags available for authorization. Use request attributes where the creation API supports them, require mandatory tags, and test operations that create several related resources. Tagging support does not automatically imply support for tag-based authorization, and some actions cannot be restricted by resource tags. Consult each action's authorization capabilities and design separate permissions for unsupported operations.

Troubleshooting should verify the actual session attributes, resource tags, condition operators, action support, and all applicable policies. Missing attributes can cause conditions to fail, while negated operators or IfExists conditions can behave differently from an ordinary equality check. An ABAC allow does not override an applicable explicit deny, and permission boundaries or organizational controls can still constrain access. Test matching, mismatching, missing-tag, and unauthorized-retagging scenarios rather than validating only successful requests.

Key aspects of Attribute-Based Access Control

ABAC scales authorization through trusted attributes, supported policy conditions, protected tagging workflows, and validation of both permitted and denied requests.

Attribute-driven policy evaluation

Policies evaluate trusted attributes of the requester, resource, action, and environment. Matching a project or department attribute can scope access without listing each resource individually.

Scalable resource selection

New resources can enter an existing authorization scope when their attributes satisfy the policy. This reduces policy duplication, but requires consistent attribute names, values, and provisioning controls.

Protected attribute lifecycle

Authorization attributes must be protected from unauthorized assignment, modification, and removal. Treat permissions to modify identity attributes, pass session tags, or retag resources as potentially privilege-escalating capabilities.

RBAC and ABAC composition

Roles can establish job-function permissions while attributes restrict the resources those permissions affect. This hybrid avoids creating a separate role for every combination of team, project, and environment.

Action-specific enforcement

Attribute conditions work only where the authorization system and requested operation support them. Check resource-level authorization, condition-key support, and creation-time request attributes before relying on a tag-based rule.

Negative-path testing

Test missing attributes, mismatched values, unauthorized tagging, and explicit denies. Inspect the attributes on the actual temporary session rather than assuming they match the identity directory.

Cloud services for Attribute-Based Access Control

IAM defines authorization rules, while IAM Identity Center and STS make trusted identity attributes available in temporary sessions. Policies compare those principal attributes with tags on supported resources, such as EC2 instances or Secrets Manager secrets. Roles or permission sets establish the allowed operations, and attribute conditions narrow their resource scope. Provisioning workflows must apply approved tags, and authorization policies must protect subsequent tag changes. Because service actions expose different authorization capabilities, validate condition-key support and test the complete flow from identity attributes through resource access.

Amazon EC2 image Amazon EC2

EC2 supports tag-based access controls for many resource types and actions, including supported tag-on-create workflows. Engineers must check each action because EC2 operations differ in their resource-level and condition-key support.

Open Amazon EC2 →
AWS Secrets Manager image AWS Secrets Manager

Secrets Manager supports resource-tag conditions that can restrict access to secrets by attributes such as project or environment. Protect secret-tagging permissions so users cannot change a secret's authorization scope to gain access.

Open AWS Secrets Manager →