Courseiva

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 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

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 →

How Courseiva writes practice questions · Editorial policy

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.