The correct answer is that the Deny statement uses the `BoolIfExists` condition operator, which evaluates to true when the `aws:MultiFactorAuthPresent` key is missing from the request context, even though the user has MFA configured and is logged in. In the IAM console, during the password change flow, this key may not be present in the request, causing `BoolIfExists` to treat the absent key as a false value—but because the policy uses a Deny with `BoolIfExists`, the absence triggers the Deny, blocking `iam:ChangePassword`. On the AWS Certified Security Specialty SCS-C02 exam, this tests your understanding of how `BoolIfExists` differs from `Bool`: it does not require the key to exist, so missing keys are treated as matching the condition. A common trap is assuming that being logged in with MFA guarantees the key is present in every API call, but the console’s password change request may omit it. Memory tip: “IfExists means if it’s missing, the condition still bites.”
SCS-C02 Identity and Access Management Practice Question
This SCS-C02 practice question tests your understanding of identity and access management. The scenario asks you to isolate a root cause — eliminate options that address a different problem before choosing. After answering, compare your reasoning against the explanation and wrong-answer breakdown below. Once you have made your selection, read the full explanation to reinforce the concept and understand why each distractor is designed to mislead on exam day.
An IAM policy is attached to a user. The user is trying to change their own password in the IAM console but receives an 'Access Denied' error. The user has an MFA device configured and is logged in with MFA. Why is the password change failing?
The Allow statement for iam:ChangePassword is not sufficient because the Deny statement explicitly denies all actions.
Why wrong: The Deny is conditional; if the condition is not met, the Deny does not apply. But the condition is met due to BoolIfExists.
B
The Deny statement uses 'BoolIfExists' which evaluates to true if the condition key is not present. In the IAM console, the 'aws:MultiFactorAuthPresent' key may not be set, causing the Deny to apply even when the user has MFA.
BoolIfExists returns true if the key does not exist, so the Deny applies, blocking all actions including password change.
C
The Deny statement denies all actions unconditionally, so the Allow statement cannot override it.
Why wrong: The Deny has a condition; it is not unconditional.
D
The user does not have permission to change their own password because the Allow statement is not specific enough.
Why wrong: The Allow statement allows iam:ChangePassword on all resources, which includes the user's own password.
Answer the question above first, then reveal the full breakdown to understand why each option is right or wrong.
Correct answer & explanation
✓
The Deny statement uses 'BoolIfExists' which evaluates to true if the condition key is not present. In the IAM console, the 'aws:MultiFactorAuthPresent' key may not be set, causing the Deny to apply even when the user has MFA.
Option B is correct because the Deny statement uses the `BoolIfExists` condition operator with the `aws:MultiFactorAuthPresent` key. In the IAM console, the `aws:MultiFactorAuthPresent` key may not be present in the request context (e.g., during the initial password change flow before MFA is re-validated), causing `BoolIfExists` to evaluate to true when the key is absent. This triggers the Deny even though the user has an MFA device and is logged in with MFA, blocking the `iam:ChangePassword` action.
Key principle: Answer the scenario, not the keyword: identify the specific constraint before choosing the most familiar-sounding option.
Answer analysis
Option-by-option breakdown
For each option: why learners choose it and why it is or isn't the right answer here.
✗
The Allow statement for iam:ChangePassword is not sufficient because the Deny statement explicitly denies all actions.
Why it's wrong here
The Deny is conditional; if the condition is not met, the Deny does not apply. But the condition is met due to BoolIfExists.
✓
The Deny statement uses 'BoolIfExists' which evaluates to true if the condition key is not present. In the IAM console, the 'aws:MultiFactorAuthPresent' key may not be set, causing the Deny to apply even when the user has MFA.
Why this is correct
BoolIfExists returns true if the key does not exist, so the Deny applies, blocking all actions including password change.
Related concept
Read the scenario before looking for a memorised answer.
✗
The Deny statement denies all actions unconditionally, so the Allow statement cannot override it.
Why it's wrong here
The Deny has a condition; it is not unconditional.
✗
The user does not have permission to change their own password because the Allow statement is not specific enough.
Why it's wrong here
The Allow statement allows iam:ChangePassword on all resources, which includes the user's own password.
Common exam traps
Common exam trap: answer the scenario, not the keyword
The trap here is that candidates assume `BoolIfExists` behaves like `Bool` and that MFA presence is always indicated in the request context, but `BoolIfExists` treats a missing key as true, causing the Deny to apply when the key is absent, such as in the IAM console's password change flow.
Detailed technical explanation
How to think about this question
The `BoolIfExists` condition operator behaves differently from `Bool`: if the condition key (`aws:MultiFactorAuthPresent`) is missing from the request, `BoolIfExists` treats it as if it were present and evaluates to true, whereas `Bool` would return false (not matching). In the IAM console, the password change API call may not include the `aws:MultiFactorAuthPresent` key because the console does not always pass MFA session context for all actions, leading to unexpected Deny even with valid MFA. This is a common pitfall when using `BoolIfExists` in Deny statements for MFA enforcement.
KKey Concepts to Remember
Read the scenario before looking for a memorised answer.
Find the constraint that changes the correct option.
Eliminate answers that are true in general but not in this case.
TExam Day Tips
→Watch for words such as best, first, most likely and least administrative effort.
→Review why wrong options are wrong, not only why the correct option is correct.
Key takeaway
Answer the scenario, not the keyword: identify the specific constraint before choosing the most familiar-sounding option.
Real-world example
How this comes up in practice
A company's IT admin needs to give a contractor read-only access to production logs without sharing account credentials. Using role-based access control (RBAC) and temporary scoped permissions — not a permanent shared password — is the correct pattern. Questions like this test whether you can apply least-privilege access across cloud identity services.
What to study next
Got this wrong? Here's your next step.
Identify which exam domain this question belongs to, review the core concept, then practise similar questions from the same domain.
Identity and Access Management — This question tests Identity and Access Management — Read the scenario before looking for a memorised answer..
What is the correct answer to this question?
The correct answer is: The Deny statement uses 'BoolIfExists' which evaluates to true if the condition key is not present. In the IAM console, the 'aws:MultiFactorAuthPresent' key may not be set, causing the Deny to apply even when the user has MFA. — Option B is correct because the Deny statement uses the `BoolIfExists` condition operator with the `aws:MultiFactorAuthPresent` key. In the IAM console, the `aws:MultiFactorAuthPresent` key may not be present in the request context (e.g., during the initial password change flow before MFA is re-validated), causing `BoolIfExists` to evaluate to true when the key is absent. This triggers the Deny even though the user has an MFA device and is logged in with MFA, blocking the `iam:ChangePassword` action.
What should I do if I get this SCS-C02 question wrong?
Identify which exam domain this question belongs to, review the core concept, then practise similar questions from the same domain.
What is the key concept behind this question?
Read the scenario before looking for a memorised answer.
About these practice questions
Courseiva creates original exam-style practice questions with explanations and wrong-answer analysis. It does not publish real exam questions, exam dumps, or protected exam content. Learn why practice questions differ from exam dumps →
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. Refer to the exhibit. This IAM policy is attached to a user. The user attempts to assume the AdminRole without using MFA. What is the result?
hard
A.The user can assume the role because the Allow statement grants it
✓ B.The user cannot assume the role because the Deny statement blocks all actions when MFA is not present
C.The user can assume the role because the Deny statement does not apply to sts:AssumeRole
D.The user cannot assume the role because the Allow statement requires MFA
Why B: Option D is correct because the Deny statement applies to all actions if MFA is not present, so the AssumeRole action is denied. Option A is incorrect because the Allow statement is overridden by the Deny. Option B is incorrect because the Deny is explicit. Option C is incorrect because the Deny applies to all actions including AssumeRole.
Share a tip, memory trick, or ask about the reasoning behind this question. Do not post real exam questions, leaked content, braindumps, or copyrighted exam material. Comments are moderated and may be removed without notice.
This SCS-C02 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 SCS-C02 exam.
Question Discussion
Share a tip, memory trick, or ask about the reasoning behind this question. Do not post real exam questions, leaked content, braindumps, or copyrighted exam material. Comments are moderated and may be removed without notice.
Sign in to join the discussion.