Documentation

Cedar.Thm.PolicySlice

This file defines what it means for a policy slice to be sound.

We prove two main theorems:

theorem Cedar.Thm.isAuthorized_eq_for_sound_policy_slice (req : Spec.Request) (entities : Spec.Entities) (slice policies : Spec.Policies) :
IsSoundPolicySlice req entities slice policiesSpec.isAuthorized req entities slice = Spec.isAuthorized req entities policies

Policy slicing soundness: isAuthorized produces the same result for a sound slice (subset) of a collection of policies as it does for the original policies.

theorem Cedar.Thm.sound_bound_analysis_produces_sound_slices (ba : Slice.BoundAnalysis) (request : Spec.Request) (entities : Spec.Entities) (policies : Spec.Policies) :
IsSoundBoundAnalysis baIsSoundPolicySlice request entities (ba.slice request entities policies) policies

A sound bound analysis produces sound policy slices.

Scope-based bounds are sound.

theorem Cedar.Thm.isAuthorized_eq_for_scope_based_policy_slice (request : Spec.Request) (entities : Spec.Entities) (policies : Spec.Policies) :
Spec.isAuthorized request entities (Slice.BoundAnalysis.slice Slice.scopeAnalysis request entities policies) = Spec.isAuthorized request entities policies

Scope-based slicing is sound: isAuthorized produces the same result for a scope-based slice of a collection of policies as it does for the original policies.