BrainyBeeBrainyBee
ExploreBlogStart Studying
HomeAWS Certified DevOps Engineer - Professional (DOP-C02)IAM Permissions Boundaries: Secure Delegation in AWS
Study Guide920 words

IAM Permissions Boundaries: Secure Delegation in AWS

Permission management delegation by using IAM permissions boundaries

IAM Permissions Boundaries: Secure Delegation in AWS

Permissions boundaries are an advanced AWS IAM feature used to delegate the creation of IAM entities (like roles or users) to others without allowing them to escalate their own privileges. It defines the maximum permissions that an identity-based policy can grant to an IAM entity.

Learning Objectives

After studying this guide, you should be able to:

  • Explain the purpose of permissions boundaries in preventing privilege escalation.
  • Calculate the effective permissions of a user when an identity-based policy and a boundary coexist.
  • Implement a delegation strategy that allows developers to create IAM roles safely.
  • Distinguish between Service Control Policies (SCPs) and Permissions Boundaries.

Key Terms & Glossary

  • Permissions Boundary: A managed policy that sets the maximum permissions for an IAM entity. It does not grant permissions on its own.
  • Identity-based Policy: The standard IAM policy attached to a user or role that grants specific permissions.
  • Privilege Escalation: An exploit where a user gains a higher level of access than intended (e.g., a developer creating an Admin role for themselves).
  • Effective Permissions: The actual actions a user can perform, determined by the intersection of all applicable policy types.
  • Delegate Administrator: A non-admin user (like a DevOps lead) who is given limited iam:* permissions to manage their team's access.

The "Big Idea"

In large-scale AWS environments, the central security team cannot manage every individual IAM role. They need to delegate this task to team leads. However, giving a team lead iam:CreateRole is dangerous because they could create a role with AdministratorAccess. Permissions boundaries solve this by acting as a "guardrail": the central admin says, "You can create roles, but those roles can never do more than what this boundary allows."

Formula / Concept Box

The Evaluation Logic

The permissions boundary and the identity-based policy must both allow an action for it to be permitted. This is a logical AND operation.

Policy TypeEvaluation Logic
Effective PermissionsIdentity-based Policy ∩ Permissions Boundary
Implicit DenyIf a boundary is present, any action NOT in the boundary is denied, even if allowed in the identity policy.
Explicit DenyA Deny in either policy always overrides an Allow.

Visual Anchors

Permission Intersection

This diagram shows that the effective permissions are only where the two policies overlap.

Compiling TikZ diagram…
⏳
Running TeX engine…
This may take a few seconds
Figure 1 — TikZ diagram

Evaluation Flow

Loading Diagram...
Figure 2 — Mermaid diagram

Hierarchical Outline

  • I. Anatomy of a Boundary
    • Managed Policy: Boundaries use standard JSON managed policies.
    • Attachment: Attached via the Permissions Boundary tab in the IAM console or the --permissions-boundary CLI flag.
  • II. The Delegation Pattern
    • The Condition Key: Use iam:PermissionsBoundary in the delegate's policy to enforce boundary attachment.
    • Logic: "You can create a role ONLY IF you attach this specific boundary to it."
  • III. Scope of Impact
    • Entities: Applies to IAM Users and Roles.
    • Exclusions: Does not apply to Resource-based policies (like S3 Bucket policies) or the Root user.

Definition-Example Pairs

  • Term: Maximum Permission Set
  • Definition: The theoretical limit of what an entity can do, regardless of what its identity policy says.
  • Example: If a boundary allows S3:* but the identity policy allows S3:* and EC2:*, the user cannot touch EC2 because it exceeds the maximum set by the boundary.

Worked Examples

Scenario: Secure Developer Delegation

Goal: Allow a Developer to create IAM roles for Lambda functions, but ensure those roles can only access a specific S3 bucket.

  1. Create the Boundary Policy (AppBoundary):
    json
    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "s3:*", "Resource": "arn:aws:s3:::my-app-data/*" } ] }
  2. Create the Developer's Policy: This policy allows the developer to create roles, but only if they attach the AppBoundary.
    json
    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": ["iam:CreateRole", "iam:AttachRolePolicy"], "Resource": "*", "Condition": { "StringEquals": { "iam:PermissionsBoundary": "arn:aws:iam::123:policy/AppBoundary" } } } ] }

Checkpoint Questions

  1. If a boundary allows dynamodb:PutItem and the identity policy allows dynamodb:*, can the user perform dynamodb:DeleteItem?
    (Answer: No. The boundary restricts the maximum to PutItem only.)
  2. Does a permissions boundary grant permissions to a user if they have no identity-based policy attached?
    (Answer: No. A boundary only limits existing permissions; it never grants them.)
  3. Can a permissions boundary be used to restrict the permissions of the AWS account Root user?
    (Answer: No. Boundaries do not affect the Root user.)

Muddy Points & Cross-Refs

  • Boundaries vs. SCPs: Students often confuse these. Remember: SCPs apply to the entire Account (in AWS Organizations). Boundaries apply to specific IAM Users/Roles within an account.
  • Resource-based Policies: A boundary does not limit a resource-based policy. If an S3 bucket policy allows a user access, the boundary does not block it unless the identity policy is also involved.
  • Session Policies: These are used during AssumeRole calls and are even more temporary than boundaries.

Comparison Tables

FeaturePermissions BoundarySCP (Service Control Policy)Identity-based Policy
Applied ToIAM User/RoleAWS Account / OUIAM User/Group/Role
Primary UseDelegation & GuardrailsMulti-account GovernanceGranting Permissions
Can Grant Access?NoNo (only filters)Yes
Affects Root?NoYesNo
Evaluation LogicIntersection (AND)Intersection (AND)Union (OR)
All AWS Certified DevOps Engineer - Professional (DOP-C02) Study Resources

Related Notes

  • Mastering AWS Alerting and Automated Remediation1,050 words
  • Study Guide: Analyzing Failed Deployments in AWS940 words
  • Incident Analysis: Troubleshooting Failed Processes in AWS1,050 words
  • Mastering AWS Monitoring & Security Analytics: Logs, Metrics, and Findings1,050 words
  • AWS Log Analysis: Athena, CloudWatch Insights, and OpenSearch920 words
  • Analyzing Real-Time Log Streams with Amazon Kinesis Data Streams985 words
  • CloudWatch Anomaly Detection Alarms: Professional Study Guide820 words
  • AWS Application Storage Patterns: EBS, EFS, and S31,054 words
  • Lab: Automating Security Controls and Data Protection with AWS Secrets Manager and Config942 words
  • Master Study Guide: Automating Security Controls & Data Protection (AWS DOP-C02)1,184 words
  • Mastering AWS CloudFormation StackSets: Multi-Account & Multi-Region Orchestration895 words
  • Mastering System Configuration Changes in AWS945 words

Ready to study AWS Certified DevOps Engineer - Professional (DOP-C02)?

Practice tests, flashcards, and all study notes — free, no sign-up.

Start Studying

Ready to study AWS Certified DevOps Engineer - Professional (DOP-C02)?

Practice tests, flashcards, and all study notes — free, no sign-up needed.

Start Studying — Free
AWS Certified DevOps Engineer - Professional (DOP-C02) ResourcesExplore All HivesBlogHome

© 2026 BrainyBee. Free AI-powered exam prep.

Loading Diagram...
Flowchart, top to bottom. Request Sent connects to B{"Is there an. B connects to Deny Access (Yes). B connects to D{"Is there a (No). D connects to E["Evaluate Identity (No). D connects to F{"Allowed by (Yes). F connects to C (No). F connects to G{"Allowed by (Yes). G connects to C (No). 1 more statements.