SAA-C03 - Design Secure Architectures (30% of the exam) - Section 1.3

Determine when to use resource-based policies, permission boundaries and cross-account roles to control access to shared resources.

Distinguish resource-based policies (attached to the resource, such as S3 bucket policies) from identity-based policies, and explain how permission boundaries cap the maximum permissions an IAM entity can exercise. Choose cross-account roles over resource-based policies when the calling principal needs to assume a temporary identity, and recognise when both mechanisms must grant access for a cross-account action to succeed.

Resource-based policiesPermission boundariesCross-account rolesS3 bucket policies

Practice question for this objective

Free sampleDesign Secure Architecturesmedium

A platform team lets developers create their own IAM roles for application workloads using a self-service pipeline. The team must guarantee that no role a developer creates can ever grant more than a fixed set of services, even though developers attach their own permissions policies. Which AWS mechanism enforces this maximum without the team reviewing each policy?

  • AApply a service control policy at the developer account that denies the disallowed services, relying on it to cap the permissions of every workload role the developers create.
  • BAdd a resource-based policy to each workload service that lists the allowed roles, so any role outside that list is automatically prevented from calling the disallowed services.
  • CConfigure an IAM access analyzer policy that flags any developer role exceeding the allowed services, so the pipeline can reject it before the role becomes active in the account.
  • DAttach a permission boundary to each developer-created role that defines the maximum services allowed, so the role's effective permissions are the intersection of its policies and the boundary. Correct
Use permission boundaries to cap the maximum permissions of delegated, self-service IAM roles regardless of the policies attached to them. A permission boundary is a managed policy that limits the maximum permissions an identity-based policy can grant to a role or user. The effective permissions are the intersection of the boundary and the attached policies, so developers cannot exceed the defined ceiling even when they attach broad policies.

Why A is wrong: An SCP caps an entire account or organisational unit, so it cannot target only developer-created workload roles while leaving the team's own roles unaffected.

Why B is wrong: Resource-based policies are attached to resources, not identities, and would require editing every resource rather than capping what a created role can do.

Why C is wrong: Access Analyzer detects and reports excessive access but does not enforce a hard ceiling, so a role could still be created and used before review.

Why D is correct: A permission boundary sets the maximum permissions an identity can have; effective access is the intersection of the boundary and attached policies, so extra permissions never take effect.

See more SAA-C03 practice questions, answers explained.

Exam traps in Design Secure Architectures

Answers that look right on this material and are not. Each one is a distractor from a different question in the SAA-C03 bank for this domain.

  • Create one IAM group per project and add each engineer to the groups for the projects they work on, attaching a project-specific policy to each group.

    Why it is wrong: Per-project groups and policies are exactly the per-project editing burden the team is trying to remove, so this does not scale as projects multiply.

  • Turn on the bucket access control list and add each partner account as a grantee with read permission, then have the partners enumerate and download the marketing objects directly.

    Why it is wrong: Bucket ACLs are a legacy access mechanism that AWS recommends against, and object ownership controls now disable ACLs by default, making this approach discouraged.

  • A service control policy grants permissions, so by listing only a few services it removed the implicit grant that the FullAWSAccess policy previously provided to those administrators.

    Why it is wrong: Service control policies never grant permissions; they only filter, so the failure is not caused by a lost grant from an allow-style policy as this option claims.

Examworthy is not affiliated with or endorsed by Amazon Web Services. Original, blueprint-aligned practice material only.