0Pricing
AWS Security Academy · Lesson

The Policy Evaluation Decision Flow

Follow how explicit denies, allows, and defaults are resolved.

The Policy Evaluation Decision Flow is a free AWS Security Academy lesson on CoddyKit — lesson 3 of 4. You can read the complete lesson below for free — then practise it hands-on in the browser with a built-in code editor and a 24/7 AI tutor. It is part of the AWS Security Academy learning path, one of 4 lessons in the course, and your progress syncs across the web and the CoddyKit app.

How AWS Decides

When any request reaches AWS, the IAM engine runs a precise evaluation flow to decide Allow or Deny. Memorizing this order is one of the highest-value things you can do for the SCS-C02 exam, because tricky scenario questions hinge on which policy type wins when several are in play.

Deny by Default

The starting point is always an implicit deny. If nothing in the evaluation grants access, the request is denied. This deny-by-default stance means you must explicitly Allow an action somewhere for it to succeed; silence equals denial.

Explicit Deny Wins

The single most important rule: an explicit Deny anywhere in any applicable policy overrides every Allow. No matter how many statements grant the action, one matching Deny blocks it. This is how guardrails and SCPs enforce hard limits that lower-level policies cannot override.

The Order of Checks

AWS evaluates in this conceptual order: 1) check for an explicit Deny in any policy (SCPs, boundaries, identity, resource, session) — if found, deny. 2) If an SCP applies and does not allow the action, deny. 3) Check permission boundaries, session policies, and identity/resource policies for an Allow. Any gap results in the implicit deny.

SCPs Set the Ceiling

Service Control Policies (SCPs) in AWS Organizations set the maximum permissions for an account. An action must be allowed by the SCP and by an IAM policy to succeed. SCPs never grant access on their own; they only cap or deny. If the SCP does not permit an action, no IAM allow can rescue it.

Permission Boundaries

A permission boundary is an advanced policy that caps the maximum permissions of a specific user or role. The effective permissions are the intersection of the boundary and the identity policy. Like SCPs, a boundary can only limit; it never expands what an identity-based policy grants.

Session Policies

When a role is assumed with a session policy, that policy further narrows permissions for just that session. The result is again an intersection: the session can do no more than both the role's policies and the session policy allow. Session policies are how you scope down at assume time.

Resource Policy Interplay

For same-account requests, a resource-based Allow can grant access even without an identity Allow (union). For cross-account, both are required. And throughout, any explicit Deny in any of these still wins. The resource policy participates in the same overall flow.

A Worked Example

Suppose an identity policy allows s3:DeleteObject, but an SCP denies all s3:Delete* in production. Result: denied, because the explicit SCP deny overrides the identity allow. Reversing it, if the SCP allows but no identity policy grants the action, it is also denied by implicit deny. Both layers must agree to allow.

Why This Matters

Exam scenarios layer SCPs, boundaries, identity, and resource policies, then ask the outcome. The reliable method is to scan for any explicit deny first, confirm the SCP allows, confirm the boundary and session allow, and confirm an identity or resource Allow exists. If all line up with no deny, the answer is allow.

The Mental Checklist

Carry this checklist: (1) Any explicit deny? Deny. (2) SCP allow? If not, deny. (3) Boundary/session allow? If not, deny. (4) Identity or resource allow? If yes and no deny, allow; else implicit deny. Apply it mechanically and even multi-policy questions become straightforward.

Quick Check

Test the evaluation flow.

Recap

IAM evaluation starts at implicit deny, and an explicit Deny always wins. To allow an action: no explicit deny anywhere, the SCP must permit it, permission boundaries and session policies (intersections) must permit it, and an identity or resource Allow must exist. SCPs and boundaries only limit; they never grant.

Frequently asked questions

Is the “The Policy Evaluation Decision Flow” lesson free?

Yes — the full text of “The Policy Evaluation Decision Flow” is free to read here on the web, and the AWS Security Academy course includes 4 lessons in total. To practise it interactively (a built-in code editor and a 24/7 AI tutor) and unlock the rest of the AWS Security Academy course, upgrade to CoddyKit PRO.

What will I learn in “The Policy Evaluation Decision Flow”?

Follow how explicit denies, allows, and defaults are resolved. You practise AWS Security Academy with hands-on code you run directly in the browser, and a 24/7 AI tutor answers your questions as you work through the lesson.

Do I need any experience to start AWS Security Academy?

No prior experience is required. AWS Security Academy on CoddyKit is structured for beginners through advanced learners; this is — lesson 3 of 4, so you can start here or from the beginning and move at your own pace.

How long does the “The Policy Evaluation Decision Flow” lesson take?

Most CoddyKit lessons take about 5–10 minutes. Each one is bite-sized and interactive, so you make steady progress and pick up exactly where you left off across the web and the app.

Can I write and run code in this AWS Security Academy lesson?

Yes. Every AWS Security Academy lesson includes a built-in code editor, so you write and run real code right in your browser and get instant AI feedback — no local setup required.

All lessons in this course

  1. Anatomy of an IAM Policy Document
  2. Identity-Based versus Resource-Based Policies
  3. The Policy Evaluation Decision Flow
  4. Conditions, Wildcards, and Policy Variables
← Back to AWS Security Academy