Courseiva
Design Secure Architectures →mediumMultiple Choice

SAA-C03 Design Secure Architectures Practice Question

Network Topology
$ aws iam create-rolerole-name dev-lambda-role \$ aws iam attach-role-policyassume-role-policy-document file://trust-lambda.jsonpolicy-arn arn:aws:iam::aws:policy/AdministratorAccessDeveloper workflow output:Security requirement:

Based on the exhibit, what should the security team implement so developers can create AWS Lambda execution roles, but no developer-created role can ever exceed the approved permission set?

⚠ Common exam trap

Many exam-takers confuse permissions boundaries with SCPs or assume that inline policies are more restrictive, but the key is that a permissions boundary is the only mechanism that directly caps the maximum permissions of a specific role without affecting other principals.

Answer choices

Why each option matters

Answer the question above first, then reveal the full breakdown to understand why each option is right or wrong.

Correct answer & explanation

✓

Require a permissions boundary on every developer-created role and set the boundary to the approved maximum permissions.

A permissions boundary explicitly defines the maximum permissions that an IAM role can have, and when attached to developer-created roles, it prevents any role from exceeding the approved set of permissions, even if the developer attaches a more permissive policy. This directly addresses the requirement that no developer-created role can ever exceed the approved permission set, as the boundary acts as a hard cap.

Answer analysis

Option-by-option breakdown

For each option: why learners choose it and why it is or isn't the right answer here.

  • ✗

    Place the developers in an IAM group with a deny-only managed policy attached.

    Why it's wrong here

    A deny-only managed policy attached to an IAM group can block specific named actions, but it cannot impose an upper bound on the permissions that a developer-created role will have. IAM group policies apply only to the users in the group, not to roles created by those users, so the newly created roles are outside the group's deny scope. Deny statements also only reject the exact actions listed, leaving all other permissions available, so this measure fails to enforce an 'approved maximum permissions' ceiling.

    When this WOULD be correct

    This option would be correct if the question asked for a method to explicitly deny specific actions (e.g., deny access to certain AWS services) for all developers, without needing to manage individual policies.

  • ✓

    Require a permissions boundary on every developer-created role and set the boundary to the approved maximum permissions.

    Why this is correct

    A permissions boundary limits the highest permissions a role can ever have, even if someone attaches broader policies later. This is the right guardrail when developers are allowed to create roles but must stay within a security-approved ceiling. It still lets them work independently while preventing privilege escalation through policy attachment.

  • ✗

    Use an AWS Organizations SCP to grant only the approved Lambda permissions directly to the developer roles.

    Why it's wrong here

    An AWS Organizations SCP acts as a permission filter at the account or OU level, not as a grant mechanism. It cannot 'grant' the approved Lambda permissions to a specific developer role because SCPs only constrain the maximum allowed permissions for principals in the account; the actual permissions must still come from identity-based policies attached to the role. Additionally, SCPs apply to all principals in scope, not directly to individual roles, so this approach does not cap what a developer-created role can receive and does not address the role-creation escalation path.

    When this WOULD be correct

    In a scenario where the organization needs to centrally restrict all IAM actions across multiple accounts, such as preventing any role from accessing certain high-risk services, an SCP would be the correct tool to apply a broad deny policy at the organizational unit level.

  • ✗

    Create the roles with inline policies only, because inline policies are always safer than managed policies.

    Why it's wrong here

    The choice between inline and managed policies affects lifecycle management and reuse, not the maximum permission scope. Inline policies can still contain broad permissions—including full Lambda access—and they are embedded directly in the role, making them harder to audit than managed policies. A developer could attach an inline policy granting excessive permissions just as easily as a managed policy, so this practice alone does not prevent privilege escalation or enforce a security-approved boundary.

    When this WOULD be correct

    When the question asks for the most secure way to attach permissions to a role that should never be shared or reused across multiple roles, and the concern is about limiting the scope of permissions to a single role without risk of unintended attachment to other roles.

Option-by-option analysis

Why each answer is right or wrong

Understanding why wrong answers are wrong — and when they would be correct — is what separates a 750 score from a 900. The SAA-C03 exam frequently reuses these exact scenarios with slightly different constraints.

✓Require a permissions boundary on every developer-created role and set the boundary to the approved maximum permissions.Correct answer▾

Why this is correct

A permissions boundary limits the highest permissions a role can ever have, even if someone attaches broader policies later. This is the right guardrail when developers are allowed to create roles but must stay within a security-approved ceiling. It still lets them work independently while preventing privilege escalation through policy attachment.

✗Place the developers in an IAM group with a deny-only managed policy attached.Wrong answer — click to see why▾

Why this is wrong here

A deny-only managed policy would block all actions, not just limit permissions to an approved set. It does not allow developers to create roles with any permissions, and it cannot be used to set a maximum permission boundary.

★ When this WOULD be the correct answer

This option would be correct if the question asked for a method to explicitly deny specific actions (e.g., deny access to certain AWS services) for all developers, without needing to manage individual policies.

Why candidates choose this

Candidates may think a deny-only policy is a simple way to restrict permissions, misunderstanding that it would prevent all actions rather than setting a maximum allowed set.

✗Use an AWS Organizations SCP to grant only the approved Lambda permissions directly to the developer roles.Wrong answer — click to see why▾

Why this is wrong here

An SCP cannot grant permissions; it only denies or allows permissions at the account level. It cannot be used to grant specific Lambda permissions directly to developer roles, and it does not enforce a maximum permission boundary on individual roles.

★ When this WOULD be the correct answer

In a scenario where the organization needs to centrally restrict all IAM actions across multiple accounts, such as preventing any role from accessing certain high-risk services, an SCP would be the correct tool to apply a broad deny policy at the organizational unit level.

Why candidates choose this

Candidates may confuse SCPs with permission boundaries, thinking SCPs can also set granular maximum permissions on roles, when in fact SCPs are account-wide guardrails and cannot be attached to individual roles.

✗Create the roles with inline policies only, because inline policies are always safer than managed policies.Wrong answer — click to see why▾

Why this is wrong here

Inline policies are not inherently safer than managed policies; they are attached directly to a role and can still exceed approved permissions. The question requires a mechanism to enforce a maximum permission set, which inline policies cannot guarantee.

★ When this WOULD be the correct answer

When the question asks for the most secure way to attach permissions to a role that should never be shared or reused across multiple roles, and the concern is about limiting the scope of permissions to a single role without risk of unintended attachment to other roles.

Why candidates choose this

Candidates may believe inline policies are safer because they are tightly coupled to a role and less likely to be accidentally attached elsewhere, but they overlook that inline policies can still grant excessive permissions and are harder to audit.

Analysis generated from the official SAA-C03blueprint and verified against question context. The “when correct” sections are what AI assistants cite when candidates ask “what’s the difference between these options?”

Quick reference

Cloud Service Model Comparison

ModelYou ManageProvider ManagesExamples
IaaSOS, runtime, apps, dataHardware, hypervisor, networkingEC2, Azure VMs, GCP Compute Engine
PaaSApps and dataOS, runtime, middleware, hardwareElastic Beanstalk, Azure App Service
SaaSData and settings onlyEverything elseMicrosoft 365, Salesforce, Workday
FaaS / ServerlessFunction code onlyInfra, scaling, runtimeLambda, Azure Functions, Cloud Run
CaaSContainers and appsKubernetes, OS, hardwareEKS, AKS, GKE

About these practice questions

This SAA-C03 question is part of Courseiva's 935-question bank — original exam-style content with full explanations and wrong-answer analysis, never real exam questions or exam dumps. Learn why practice questions differ from exam dumps →

How Courseiva writes practice questions · Editorial policy

JA

Written by Johnson Ajibi, MSc IT Security

Senior Network & Security Engineer · founder of Courseiva

This SAA-C03 practice question is part of Courseiva's free Amazon Web Services certification practice question bank. Courseiva provides original exam-style practice questions with explanations, topic-based practice, mock exams, readiness tracking, and study analytics to help learners prepare for the SAA-C03 exam.