DEA-C01 Data Security and Governance Practice Question
A data engineer manages an AWS Glue ETL job that reads from an Amazon S3 bucket and writes to another bucket. The security team mandates that all data at rest in both buckets be encrypted with customer-managed AWS KMS keys, and that each service use a distinct key. The Glue job's IAM role currently has s3:GetObject and s3:PutObject permissions but jobs fail with an access denied error when writing output. What is the MOST likely cause?
⚠ Common exam trap
The trap here is focusing only on S3 bucket policies and IAM S3 actions while overlooking that SSE-KMS adds a second authorization layer requiring kms:GenerateDataKey and kms:Decrypt on the key itself.
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 IAM role lacks kms:GenerateDataKey and kms:Decrypt permissions on the customer-managed KMS key used by the output bucket.
Writing to an S3 bucket encrypted with SSE-KMS using a customer-managed key requires both the S3 PutObject permission and KMS permissions on that key, specifically kms:GenerateDataKey for uploads and kms:Decrypt for downloads. The Glue execution role only has S3 permissions, so the KMS authorization check fails and S3 returns access denied. Granting the role the needed KMS actions on the output key fixes the job.
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 output bucket uses SSE-S3 by default, which overrides the SSE-KMS setting and prevents the customer-managed key from being used.
Why it's wrong here
SSE-S3 and SSE-KMS are separate configurations; a bucket default does not silently override an explicit SSE-KMS request. The scenario states the requirement is customer-managed KMS keys, and the observed failure is consistent with missing KMS permissions rather than an encryption-type conflict. This option mischaracterizes how S3 default encryption behaves.
- ✗
The KMS key policy does not allow the AWS Glue service principal to use the key for cryptographic operations.
Why it's wrong here
For S3 SSE-KMS, the caller is the IAM role assumed by the Glue job, not the Glue service principal. Key policies must grant the role, or the account must delegate through IAM. Granting the Glue service principal would not help because the request is signed by the job's execution role, so this is not the root cause.
- ✗
The S3 bucket policy on the output bucket does not include a statement allowing the Glue job role to perform s3:PutObject.
Why it's wrong here
The role already has s3:PutObject, and the scenario describes an encryption-related failure rather than a general permission denial. If the bucket policy were the only issue, the error would typically reference the S3 action, not KMS. The described symptom points to key usage rather than bucket-level S3 authorization.
- ✓
The IAM role lacks kms:GenerateDataKey and kms:Decrypt permissions on the customer-managed KMS key used by the output bucket.
Why this is correct
When S3 uses SSE-KMS with a customer-managed key, writing an object requires the caller to have kms:GenerateDataKey on that key, and reading requires kms:Decrypt. The Glue role has S3 permissions but no KMS permissions, so the PutObject call fails with access denied. Adding the required KMS actions on the output key resolves the failure.
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
This DEA-C01 question is part of Courseiva's 1,321-question bank — original exam-style content with full explanations and wrong-answer analysis, never real exam questions or exam dumps. Learn why practice questions differ from exam dumps →
JA
Written and reviewed by Johnson Ajibi, MSc IT Security
Senior Network & Security Engineer · founder of Courseiva
Last reviewed September 2026 · checked against the official Amazon Web Services exam blueprint
This DEA-C01 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 DEA-C01 exam.