liveBook · Manning

Chapter 9: Implementing policies with Cedar

What you will learn in chapter 9 of Authorization in Action

The introduction presents ACME’s varied access requirements and explains why its identity team wants to express them as unified Cedar policies rather than scattered application checks.

After this chapter you will be able to

What it builds on

Section by section

Introduction

The introduction presents ACME’s varied access requirements and explains why its identity team wants to express them as unified Cedar policies rather than scattered application checks.

Key terms: owners, managers, legal team, external collaborators, company-managed devices, Cedar policies, evaluated at runtime, exceptions, ad hoc checks

9.1 From primer to practice

This section explains why ACME chose Cedar as a single policy language for varied access rules and identifies a zero-trust constraint those rules must respect.

Key terms: Cedar, RBAC-style team membership, ReBAC-style ownership and management relationships, ABAC-style conditions, zero-trust policy, critical resources, company-managed devices, business hours

9.2 Modeling your schema first

This section explains why ACME defines a Cedar schema before writing policies and how the schema helps keep policies valid and consistent.

Key terms: Cedar schema, entities, actions, context, compiler, type safety, precise vocabulary, tooling support, IDEs, CI/CD pipelines

9.2.1 ACME’s core entities and actions

The section identifies the entities and actions in ACME’s initial Cedar schema and explains why that schema provides a foundation for its policies.

Key terms: Cedar schema, Employees, Customers, Documents, Teams, doc:view

9.2.2 How schema shapes policies

This subsection shows how ACME’s Cedar schema constrains policies and supplies a consistent request attribute for conditions.

Key terms: schema, owner, Document, Employee, doc:edit, policy drift, context.device.managed, ABAC-style conditions

9.2.3 Updating schema as your system evolves

This section explains how to evolve a Cedar schema safely and avoid design mistakes that make policies unsafe or hard to maintain.

Key terms: schema, Folder entity, policies, principal: Any, resource: Any, appliesTo, forbid, overloading attributes, typed attributes, related entities

9.3 Authoring ACME’s core policies

The section explains how ACME’s schema safeguards policy authoring and identifies the stable, relationship-based rules that form its core policies.

Key terms: schema, validated, compilation, principal, resource, core policies, decision set, employee or customer document readers team, owner, manager of an owner

9.3.1 Permit view if on the right team

This section explains how ACME grants document viewing through ownership or reader-team membership and why it uses separate Cedar policies for employees and customers.

Key terms: document owners, customer_readers_team, Team entity, entity store, entity hierarchy, policy scope, principal is ACME::Employee, principal is ACME::Customer, when clause

9.3.2 Owner can do all

This subsection explains that document owners can view, edit, and share their documents, while the schema limits those rights to specified actions.

Key terms: owner, schema, action list, doc:delete

9.3.3 Manager of owner can view and edit

This subsection shows how a Cedar policy grants a document owner’s manager view and edit access, then explains Cedar’s deny-by-default behavior and overriding forbid rules.

Key terms: resource.owner, manager, Employee attribute, deny-by-default, permit policy, forbid policy, guardrails

9.4 Where does Cedar find data about entities?

This section explains how Cedar gets entity data for policy evaluation, how ACME models that data, and how relationship modeling affects access decisions.

Key terms: entity store, principals, resources, attributes, relationships, Policy Decision Point (PDP), decision context, scoped snapshot, Cedar evaluation engine, relationship graph

9.5 Applying Cedar’s policy patterns

Introduces Cedar’s flexibility in combining authorization patterns within one policy set for ACME’s Customer Collaboration platform.

Key terms: Cedar, discretionary permissions, membership permissions, relationship permissions, policy set

9.5.1 Discretionary permissions

This section shows how ACME gives document owners control over readers through team membership while keeping sharing rights separate from reading rights.

Key terms: discretionary permissions, DAC, employee_readers_team, customer_readers_team, entity store, discretionary, delegatable, delegatable: Bool, readers team

9.5.2 Membership permissions

This section shows how ACME uses a Cedar membership permission for its legal team and keeps document classification in entity metadata rather than hard-coding it into the policy.

Key terms: membership permissions, RBAC-style rules, principal, ACME::Team::"team:legal", when clause, Legal classification, metadata, Document entity, entity store, principal in

9.5.3 Relationship permissions

This section illustrates relationship-based permissions through ACME’s manager-of-owner rule.

Key terms: relationship permissions, ReBAC, manager of owner, entity store

9.5.4 Mixing patterns for PBAC

ACME illustrates how Cedar can combine different access-control patterns in one policy using facts from the entity store.

Key terms: Cedar, ABAC, ReBAC, RBAC, entity store

9.6 Layering global constraints

The section shows how ACME applies one context-based constraint across its Cedar policies and why it can deny access despite other permissions.

Key terms: ABAC, global constraints, request’s context, forbid, permit

9.7 Using policy templates and overrides

This section introduces Cedar policy templates as a way to reuse policy patterns instead of writing each policy separately.

Key terms: Cedar policies, templates, instantiate, parameters

9.7.1 Templates

This section explains when ACME uses Cedar templates for repeated direct grants, how that differs from relationship-based sharing, and how to manage templates safely.

Key terms: Cedar templates, ?principal, ?resource, linked principals and resources, relationship data, entity store, relationship graph, direct grants, tenancy, semantic versions

9.7.2 Overrides

This section explains how ACME uses additional Cedar policies for local exceptions to template-generated rules, and how those overrides differ from global constraints.

Key terms: overrides, template-generated policies, document-view-template, local exceptions, global constraints, organization-wide guardrails, delegated administrators

9.8 Mapping requests to Cedar evaluations

Shows how a PEP turns application requests into accurate Cedar evaluations and compares ways to run Cedar in production.

Key terms: Policy Enforcement Point (PEP), principal, action, resource, context, is_authorized, complete, consistent, scoped, Cedar schema

9.9 From concept to policy

The section connects ACME’s Cedar policy components into an authorization flow and explains why the same policies can support different deployments.

Key terms: entity store, PEP, Cedar evaluations, policy set, local agent, managed service, embedded PDP, authorization model

9.10 Summary

Where this is used later

Concepts explained in this chapter

← Chapter 8: Policy languages and frameworks Chapter 10: Policy as code: Effective authorization policies →

These guides are generated from the text of Manning books by Manning's knowledge graph and link to the sections they draw on. The full books are available on liveBook and at manning.com.