Refer to the exhibit. A company has an S3 bucket policy that requires server-side encryption with AES256 for all objects uploaded. However, users can still upload objects without encryption. What is the MOST likely reason?
If no encryption header is present, the condition evaluates to false, so Deny does not apply.
Why this answer
The bucket policy only requires encryption but does not explicitly deny requests that omit the `x-amz-server-side-encryption` header. Without a `Deny` effect for requests lacking the header, the policy is effectively a statement of intent rather than an enforcement mechanism. S3 bucket policies can enforce encryption by using a `Deny` statement with a condition key like `s3:x-amz-server-side-encryption` set to `AES256`.
Exam trap
The trap here is that candidates assume a policy with a `Condition` that requires encryption is sufficient, but without an explicit `Deny` for requests that omit the header, the policy is only a 'soft' requirement and does not block unencrypted uploads.
How to eliminate wrong answers
Option A is wrong because S3 bucket policies can enforce encryption using a `Deny` effect with the `s3:x-amz-server-side-encryption` condition key; bucket default encryption is a separate, simpler mechanism but not the only way. Option B is wrong because the condition key `s3:x-amz-server-side-encryption-aws-kms-key-id` is used to enforce a specific KMS key, not to require AES256 encryption; the correct key for AES256 is `s3:x-amz-server-side-encryption` with value `AES256`. Option C is wrong because the policy can apply to objects uploaded with AWS KMS managed keys if the condition key is set appropriately (e.g., `s3:x-amz-server-side-encryption` with value `aws:kms`), but the issue here is the lack of a `Deny` for missing headers, not the key type.