CNCF Authorization Model

ASAMI, Tomoharu Created: 2026-05-04

The CNCF (Cloud Native Component Framework) authorization model is not a simple adoption of role-based or permission-based approaches, but a unified structure that normalizes them into a consistent runtime decision model.

This article explains the model through its core concepts—capability and guard—and its dual-layer structure: operation-level and resource-level authorization.

Authorization Model Overview

The CNCF authorization model is structured around capability and guard. Capability represents permissions (what is allowed), while guard represents constraints or denials (whether it is allowed in the current context).

By absorbing negative conditions and exceptional constraints into guards, the model prevents combinatorial explosion on the capability side and keeps the system simple.

Authorization mechanisms (Permission, RBAC, ACL, ReBAC, ABAC) are not evaluated directly, but are normalized into capabilities or guards before evaluation.

Capability aggregates mechanisms that grant permissions, such as Permission, RBAC, and ACL. Guard aggregates constraint-based mechanisms such as ReBAC and ABAC.

Authorization Engine Capability Guard SecuritySubject SecurityObject Permission RBAC ACL ReBAC ABAC request access

Why This Model Is Needed

Traditional authorization approaches often suffer from two problems:

  • ad hoc checks scattered across application code

  • overly complex policy systems that are hard to use

CNCF aims to address these issues with the following principles.

  • Provide a baseline level of security with minimal configuration

  • Offer configuration options that are simple enough for everyday development

  • Allow increasing the precision of authorization when needed

Capability: What Is Allowed

In CNCF, authorization is designed around capabilities. A capability represents the minimal unit of "what can be done", and authorization decisions are ultimately based on whether required capabilities are satisfied.

A capability represents a normalized "what you can do".

Examples:

  • collection:blob:create

  • collection:blob:read

  • association:blob_attachment:create

  • store:blobstore:status

All authorization elements are ultimately transformed into capabilities.

This separation keeps the authorization model simple while enabling practical and manageable configurations in real systems.

Capability uses the following three authorization mechanisms.

  • Permission

  • RBAC

  • ACL

Permission

Permissions provide a practical representation of capabilities. They are used to describe access control at the entity level in a compact form.

Entities use a compact owner/group/other permission model.

owner: read/write/execute
group: read/write/execute
other: read/write/execute

This is a compact representation that is mapped to capabilities at runtime.

RBAC

RBAC (Role-Based Access Control) assigns permissions to roles to control access. In CNCF, roles are interpreted as sets of capabilities and serve as a mechanism for supplying capabilities.

ACL

ACL (Access Control List) is a mechanism for assigning permissions at the resource level. It operates at a lower level than permissions and directly grants capabilities.

Guards: Constraints and Conditions

A guard controls whether a capability can be used and does not grant permissions by itself. ABAC expresses constraints based on attributes, while ReBAC expresses constraints based on relationships between subject and object, complementing cases that are difficult to express with ABAC alone.

Guards use the following two authorization mechanisms.

  • ABAC

  • ReBAC

ABAC

ABAC (Attribute-Based Access Control) controls access based on attributes of users and resources. In CNCF, these conditions are represented as guards.

ReBAC

ReBAC (Relationship-Based Access Control) controls access based on relationships between subject and object. For example, relationships such as "is owner" or "is assignee" are evaluated as guards.

ReBAC is important for expressing authorization constraints based on relationships that are difficult to model with ABAC alone. For example, whether a user is the owner of a specific resource is evaluated as a relationship rather than a simple attribute comparison.

For example, the following relationships are evaluated as guards:

  • author of a post

  • assignee

News Operation Example

Consider an operation on a news article.

For example, attaching an image to an article may appear to be a simple operation.

In reality, however, multiple resources are involved:

  • the article

  • the image

  • the attachment relationship

Whether this operation is allowed depends on the relationship between the subject and the article.

For example, being the author of the article or an assigned editor.

Thus, even a single operation like attaching an image involves both relationships among multiple resources and relationships between the subject and resources.

In such cases, simple Permission or RBAC models are insufficient, and relationship-based authorization (ReBAC) becomes essential.

SecurityObject

There are two types of SecurityObjects that serve as authorization targets.

  • Operation

  • Resource

Operation Authorization

Operation authorization controls access at the entry point.

This authorization evaluates whether the subject is allowed to invoke the operation.

This layer evaluates:

  • anonymous access

  • roles, scopes, capabilities

  • privilege level

Resource Authorization

Resource authorization controls access to actual data and resources.

This authorization evaluates whether the subject can perform the action on the resource.

Even if operation access is allowed, it may still be denied here.

Summary

The CNCF authorization model reduces complexity and configuration explosion by centering on capability and guard.

Permission, RBAC, and ACL are normalized into capabilities, while ReBAC and ABAC are normalized into guards, resulting in a unified evaluation model.

This structure enables a simple yet extensible authorization foundation.

References

Glossary

Cloud Native Component Framework (CNCF)

Cloud Native Component Framework (CNCF) is a framework for executing cloud application components using a single, consistent execution model. Centered on the structure of Component, Service, and Operation, it enables the same Operation to be reused across different execution forms such as command, server (REST / OpenAPI), client, and script. By centralizing quality attributes required for cloud applications—such as logging, error handling, configuration, and deployment—within the framework, components can focus on implementing domain logic. CNCF is designed as an execution foundation for literate model-driven development and AI-assisted development, separating what is executed from how it is invoked.