- A
Enable default encryption on the bucket with SSE-KMS.
Why wrong: Default encryption can be overridden by the uploader.
- B
Create a bucket policy that denies PutObject without encryption.
Why wrong: A condition key is needed to enforce encryption.
- C
Create a bucket policy that denies PutObject unless the x-amz-server-side-encryption header is set to aws:kms.
This denies uploads that do not use SSE-KMS.
- D
Enable S3 Block Public Access on the bucket.
Why wrong: Block Public Access does not enforce encryption.
Enforcing SSE-KMS Encryption on S3 Bucket with Bucket Policy
This DVA-C02 practice question tests your understanding of security. 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.
A company is using an S3 bucket to store sensitive data. They want to ensure that all objects uploaded to the bucket are encrypted at rest using server-side encryption with AWS KMS (SSE-KMS). What is the most secure way to enforce this?
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
Create a bucket policy that denies PutObject unless the x-amz-server-side-encryption header is set to aws:kms.
Option C is correct because an S3 bucket policy with a condition that denies PutObject requests unless the x-amz-server-side-encryption header is set to 'aws:kms' ensures that any upload without SSE-KMS is rejected. This policy cannot be overridden by the uploader, providing a strong enforcement mechanism. Option A is wrong because default encryption can be overridden by the uploader's request headers. Option B is wrong because denying PutObject without any encryption would still allow other encryption types like SSE-S3 or SSE-C, not specifically SSE-KMS. Option D is wrong because S3 Block Public Access does not enforce any encryption; it only prevents public access.
Key principle: ACLs process entries top to bottom and stop at the first match. Entry order and interface direction matter as much as the permit or deny statement.
Answer analysis
Option-by-option breakdown
For each option: why learners choose it and why it is or isn't the right answer here.
- ✗
Enable default encryption on the bucket with SSE-KMS.
Why it's wrong here
Default encryption can be overridden by the uploader.
- ✗
Create a bucket policy that denies PutObject without encryption.
Why it's wrong here
A condition key is needed to enforce encryption.
- ✓
Create a bucket policy that denies PutObject unless the x-amz-server-side-encryption header is set to aws:kms.
Why this is correct
This denies uploads that do not use SSE-KMS.
Related concept
Standard ACLs match source addresses.
- ✗
Enable S3 Block Public Access on the bucket.
Why it's wrong here
Block Public Access does not enforce encryption.
Common exam traps
Common exam trap: ACLs stop at the first match
ACLs are processed top to bottom. The first matching entry wins, and an implicit deny usually exists at the end.
Detailed technical explanation
How to think about this question
ACL questions test precision: source, destination, protocol, port and direction. A generally correct ACL can still fail if it is applied on the wrong interface or in the wrong direction.
KKey Concepts to Remember
- Standard ACLs match source addresses.
- Extended ACLs can match source, destination, protocol and ports.
- The first matching ACL entry is used.
- There is usually an implicit deny at the end.
TExam Day Tips
- Check inbound versus outbound direction.
- Read the ACL from top to bottom.
- Look for a broader permit or deny above the intended line.
Key takeaway
ACLs process entries top to bottom and stop at the first match. Entry order and interface direction matter as much as the permit or deny statement.
Real-world example
How this comes up in practice
A media company stores terabytes of video archives that are accessed once a year for audit purposes. Moving these objects to a cold storage tier (Azure Archive, S3 Glacier, or Google Nearline) costs a fraction of hot storage. Questions like this test whether you understand storage tiers, access frequency tradeoffs, and retrieval latency requirements.
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 |
What to study next
Got this wrong? Here's your next step.
Review ACL processing order, placement rules (standard near destination, extended near source), and inbound vs outbound direction. Study wildcard masks and implicit deny. Then practise related DVA-C02 ACL questions on filtering logic and placement.
- →
Security — study guide chapter
Learn the concepts, then practise the questions
- →
Security practice questions
Targeted practice on this topic area only
- →
All DVA-C02 questions
1,616 questions across all exam domains
- →
AWS Certified Developer Associate DVA-C02 study guide
Full concept coverage aligned to exam objectives
- →
DVA-C02 practice test guide
How to use practice tests most effectively before exam day
Related practice questions
Related DVA-C02 practice-question pages
Use these pages to review the topic behind this question. This is how one missed question becomes focused revision.
Development with AWS Services practice questions
Practise DVA-C02 questions linked to Development with AWS Services.
Security practice questions
Practise DVA-C02 questions linked to Security.
Deployment practice questions
Practise DVA-C02 questions linked to Deployment.
Troubleshooting and Optimization practice questions
Practise DVA-C02 questions linked to Troubleshooting and Optimization.
DVA-C02 fundamentals practice questions
Practise DVA-C02 questions linked to DVA-C02 fundamentals.
DVA-C02 scenario practice questions
Practise DVA-C02 questions linked to DVA-C02 scenario.
DVA-C02 troubleshooting practice questions
Practise DVA-C02 questions linked to DVA-C02 troubleshooting.
Practice this exam
Start a free DVA-C02 practice session
Short sessions build daily habit. Longer sessions build exam-day stamina. Try a timed session to simulate real conditions.
FAQ
Questions learners often ask
What does this DVA-C02 question test?
Security — This question tests Security — Standard ACLs match source addresses..
What is the correct answer to this question?
The correct answer is: Create a bucket policy that denies PutObject unless the x-amz-server-side-encryption header is set to aws:kms. — Option C is correct because an S3 bucket policy with a condition that denies PutObject requests unless the x-amz-server-side-encryption header is set to 'aws:kms' ensures that any upload without SSE-KMS is rejected. This policy cannot be overridden by the uploader, providing a strong enforcement mechanism. Option A is wrong because default encryption can be overridden by the uploader's request headers. Option B is wrong because denying PutObject without any encryption would still allow other encryption types like SSE-S3 or SSE-C, not specifically SSE-KMS. Option D is wrong because S3 Block Public Access does not enforce any encryption; it only prevents public access.
What should I do if I get this DVA-C02 question wrong?
Review ACL processing order, placement rules (standard near destination, extended near source), and inbound vs outbound direction. Study wildcard masks and implicit deny. Then practise related DVA-C02 ACL questions on filtering logic and placement.
What is the key concept behind this question?
Standard ACLs match source addresses.
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 →
Same concept, more angles
2 more ways this is tested on DVA-C02
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. A company has an S3 bucket that stores sensitive data. They want to ensure that any object uploaded to the bucket is automatically encrypted with server-side encryption using AWS KMS (SSE-KMS). They also want to deny any uploads that do not specify the correct encryption. Which bucket policy condition should be used to enforce this requirement?
medium- ✓ A.s3:x-amz-server-side-encryption equals aws:kms
- B.s3:x-amz-server-side-encryption equals AES256
- C.s3:x-amz-server-side-encryption-aws-kms-key-id equals a specific key ARN
- D.aws:SecureTransport equals true
Why A: Option A is correct because the condition `s3:x-amz-server-side-encryption equals aws:kms` enforces that any PUT request to the S3 bucket must include the `x-amz-server-side-encryption` header set to `aws:kms`, which triggers SSE-KMS encryption. This policy condition ensures that objects uploaded without specifying SSE-KMS are denied, meeting the requirement to automatically encrypt all uploaded objects with AWS KMS.
Variation 2. A company is using an S3 bucket to store sensitive documents. They need to ensure that all objects are encrypted at rest using server-side encryption with AWS KMS. The bucket policy must enforce encryption by denying uploads that do not specify the required encryption. Which bucket policy statement should be added?
medium- ✓ A.Condition: StringNotEquals: 's3:x-amz-server-side-encryption': 'aws:kms'
- B.Condition: StringEquals: 's3:x-amz-server-side-encryption-aws:kms': 'true'
- C.Condition: Null: 's3:x-amz-server-side-encryption': 'true'
- D.Condition: StringNotEquals: 's3:x-amz-server-side-encryption': 'AES256'
Why A: Option A is correct because the bucket policy uses the `s3:x-amz-server-side-encryption` condition key with `StringNotEquals` to deny any upload where the header does not specify `aws:kms`. This ensures that only objects encrypted with AWS KMS (SSE-KMS) are allowed, enforcing server-side encryption at rest. The `Deny` effect combined with this condition blocks requests that either omit the encryption header or specify a different value like `AES256`.
Keep practising
More DVA-C02 practice questions
- A developer is troubleshooting an AWS Lambda function that is triggered by an S3 event. The function occasionally fails…
- A developer needs to call AWS APIs from application code running on EC2. Which credential source should the AWS SDK use…
- A developer needs to allow an IAM user in a different AWS account to assume a role in the developer's account. The role…
- A developer needs to grant an IAM role in Account B read-only access to objects in an S3 bucket in Account A. The bucket…
- An API Gateway HTTP API should allow access only to users authenticated by an external OIDC provider. Which authorizer t…
- A developer needs to allow an EC2 instance to read from a DynamoDB table. Which is the best practice to grant permission…
Last reviewed: Jun 20, 2026
This DVA-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 DVA-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.