Courseiva
Design Secure ArchitecturesmediumMultiple ChoiceObjective-mapped

Why SCP Deny Blocks IAM Allow and How to Remediate

In AWS Organizations, a Service Control Policy (SCP) denies kms:Decrypt on a production CMK for all principals in the Finance OU. A developer in the Finance OU created/updated an IAM policy that allows secrets access, but the application still fails with AccessDenied due to the SCP. You must enable only the Finance OU to decrypt that specific CMK while keeping the SCP restrictions for other OUs. What is the correct remediation?

Quick Answer

The correct remediation is to modify the SCP so it no longer denies kms:Decrypt for that specific CMK when applied to the Finance OU, while preserving the deny behavior for other OUs. This is because an SCP deny explicitly overrides any IAM allow—SCPs act as a boundary policy that is evaluated before IAM policies, and an explicit deny in an SCP cannot be bypassed by any IAM permission, no matter how permissive. On the SAA-C03 exam, this scenario tests your understanding of the AWS authorization hierarchy: SCPs set the maximum permissions for an OU, and IAM policies can only grant access within that boundary. A common trap is assuming you can fix the issue by editing the IAM policy alone, but the SCP deny must be removed or conditionally excluded first. Remember the mnemonic: “SCP denies first, IAM allows last—if SCP says no, IAM can’t go.”

⚠ Common exam trap

The trap here is that candidates mistakenly think IAM policies or KMS key policies can override an SCP, but SCPs are a higher-order policy that always takes precedence over any allow within the account.

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

Modify the SCP so it no longer denies kms:Decrypt for that specific CMK when applied to the Finance OU, while preserving the deny behavior for other OUs.

SCPs are evaluated before IAM policies and cannot be bypassed by IAM permissions. By modifying the SCP to exclude the specific CMK for the Finance OU (e.g., using a Condition key like `kms:ViaService` or a resource-level exception), you remove the explicit deny for that OU while keeping it in place for all other OUs. This ensures the developer's IAM policy can then allow `kms:Decrypt` without being blocked by the SCP.

Answer analysis

Option-by-option breakdown

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

  • Update the developer’s IAM policy to allow kms:Decrypt on the CMK alias ARN so the request bypasses the SCP.

    Why it's wrong here

    An SCP Deny at the Organizations level overrides IAM allows. IAM changes cannot neutralize an SCP explicit Deny.

  • Modify the SCP so it no longer denies kms:Decrypt for that specific CMK when applied to the Finance OU, while preserving the deny behavior for other OUs.

    Why this is correct

    Because the SCP is what creates the Deny, the correct fix is to adjust the SCP scope/conditions so that kms:Decrypt for the specific CMK is not denied for the Finance OU. Other OUs remain under the same restrictive SCP behavior.

  • Add a KMS key policy statement that allows the developer role to decrypt the CMK.

    Why it's wrong here

    KMS key policies can grant authorization to principals, but they cannot override an SCP explicit Deny. Organizations evaluation blocks the request before the KMS key policy authorization is applied.

  • Attach a permissions boundary that grants kms:Decrypt so the SCP becomes irrelevant.

    Why it's wrong here

    Permission boundaries do not override SCP Deny effects. The SCP explicit deny still blocks the action regardless of permission boundaries.

About these practice questions

This SAA-C03 question is part of Courseiva's 302-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

Same concept, more angles

1 more way this is tested on SAA-C03

These questions test the same concept from different angles. Work through them to make sure you can recognise it however the exam phrases it.

Variation 1. Your AWS Organization uses a Service Control Policy (SCP) that includes a Deny statement for secretsmanager:GetSecretValue for all member accounts in the "Finance" OU when requests are made outside us-east-1. An application role has an IAM policy that allows secretsmanager:GetSecretValue for the required secret in us-west-2. In us-west-2, requests fail with AccessDenied. What is the most appropriate action?

medium
  • A.Update the application role IAM policy to include us-west-2 in the resource ARN.
  • B.Create a permission boundary that removes the deny behavior for the member account.
  • C.Modify the SCP to allow secretsmanager:GetSecretValue in us-west-2 for the Finance OU (if that aligns with policy intent), or move the workload to us-east-1.
  • D.Use sts:AssumeRole into another account that is not in the Finance OU to bypass the SCP.

Why C: SCPs are deny-by-default and act as an outer boundary on all IAM policies in member accounts. Even if the application role's IAM policy allows secretsmanager:GetSecretValue in us-west-2, the SCP's explicit Deny for requests outside us-east-1 overrides that allow. The correct fix is either to modify the SCP to permit the action in us-west-2 (if that aligns with organizational intent) or to relocate the workload to us-east-1, because SCPs cannot be overridden by any IAM policy within the account.

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.