Refer to the exhibit. An IAM policy attached to a user allows s3:GetObject only from a specific IP range and denies all S3 actions if not using HTTPS. What happens when the user makes a GET request from IP 10.0.0.5 using HTTP?
IAM decisions are made by evaluating all statements: if any applicable Deny statement matches the request, the result is Deny regardless of any matching Allow. Here, the Deny statement's condition is satisfied by the request, and because explicit Deny statements cannot be overridden by Allows, the effective decision is denied. This is not due to a default deny or missing allow, but an active, matching Deny.
Why this answer
IAM policies evaluate all matching statements, and an explicit Deny always wins over any Allow. The policy denies all S3 actions when the request is not using HTTPS (aws:SecureTransport is false). Since the user made the request over HTTP, the Deny statement matches, so the request is denied regardless of the IP-based Allow.
Exam trap
SCS-C02 often tests the misconception that an Allow for a matching IP will permit the request — candidates forget that an explicit Deny with a matching condition always wins.
How to eliminate wrong answers
Option A is wrong because the IP being in the allowed range is irrelevant when an explicit Deny matches — explicit Deny overrides Allow. Option B is wrong because the condition does match: HTTP means aws:SecureTransport is false, triggering the Deny. Option D is wrong because the IP 10.0.0.5 is within the allowed range, so the IP is not the reason for denial — the HTTP protocol is.