Question 1,291 of 1,616
SecuritymediumMultiple ChoiceObjective-mapped

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 ClassMin DurationRetrievalUse Case
S3 StandardNoneImmediateFrequently accessed data
S3 Standard-IA30 daysImmediateInfrequent access, rapid retrieval
S3 One Zone-IA30 daysImmediateNon-critical infrequent data
S3 Intelligent-TieringNoneImmediate–hoursUnknown or changing access patterns
S3 Glacier Instant90 daysMillisecondsArchive with instant retrieval
S3 Glacier Flexible90 daysMinutes–hoursArchive, flexible retrieval
S3 Glacier Deep Archive180 daysHoursLong-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.

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.

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 →

How Courseiva writes practice questions · Editorial policy

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

Last reviewed: Jun 20, 2026

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.

Loading comments…

Sign in to join the discussion.

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.