SAP-C02 Practice Question: Accelerate Workload Migration and Modernization
Exhibit
Refer to the exhibit.
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "s3:PutObject",
"Resource": "arn:aws:s3:::my-bucket/*",
"Condition": {
"StringEquals": {
"s3:x-amz-server-side-encryption": "AES256"
}
}
},
{
"Effect": "Deny",
"Action": "s3:PutObject",
"Resource": "arn:aws:s3:::my-bucket/*",
"Condition": {
"StringNotEquals": {
"s3:x-amz-server-side-encryption": "AES256"
}
}
}
]
}A company is migrating data to Amazon S3 and requires that all objects uploaded to the bucket 'my-bucket' are encrypted with SSE-S3. The above IAM policy is attached to an IAM user. An application using the user's credentials attempts to upload an object without specifying the x-amz-server-side-encryption header. What will happen?
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
✓
The upload fails because the Deny statement denies the request when encryption is not AES256.
The IAM policy includes a Deny statement that denies the upload if the x-amz-server-side-encryption header is not set to AES256. Since the application does not include this header, the Deny condition is triggered and the upload fails. Option A is incorrect because the Deny statement overrides the Allow statement when the condition is met. Option B is incorrect because the scenario only involves an IAM policy, not a bucket policy. Option D is incorrect because the absence of the encryption header means the Deny statement applies, so the upload does not proceed even though SSE-S3 is the default.
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 upload succeeds because the Allow statement grants permission.
Why it's wrong here
The Deny statement overrides the Allow when the condition is met.
- ✗
The upload fails because the bucket policy overrides the IAM policy.
Why it's wrong here
The IAM policy itself causes the denial, not a bucket policy.
- ✓
The upload fails because the Deny statement denies the request when encryption is not AES256.
Why this is correct
The Deny statement explicitly denies PutObject if encryption is not AES256, and without the header, it is considered not AES256.
- ✗
The upload succeeds because the object is encrypted with the default SSE-S3.
Why it's wrong here
Even if default encryption is set, the IAM policy requires the header to be present; without it, the condition in Deny applies.
Quick reference
AWS S3 Storage Class Comparison
| Storage Class | Min Duration | Retrieval | Use Case |
|---|---|---|---|
| S3 Standard | None | Immediate | Frequently accessed data |
| S3 Standard-IA | 30 days | Immediate | Infrequent access, rapid retrieval |
| S3 One Zone-IA | 30 days | Immediate | Non-critical infrequent data |
| S3 Intelligent-Tiering | None | Immediate–hours | Unknown or changing access patterns |
| S3 Glacier Instant | 90 days | Milliseconds | Archive with instant retrieval |
| S3 Glacier Flexible | 90 days | Minutes–hours | Archive, flexible retrieval |
| S3 Glacier Deep Archive | 180 days | Hours | Long-term compliance archive |
Go deeper
Related to this question
About these practice questions
One of 1,660 original SAP-C02 practice questions on Courseiva, each with a full explanation and wrong-answer analysis — not exam dumps or protected exam content. Learn why practice questions differ from exam dumps →
JA
Written by Johnson Ajibi, MSc IT Security
Senior Network & Security Engineer · founder of Courseiva
This SAP-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 SAP-C02 exam.