DEA-C01 Data Operations and Support Practice Question
A data engineer notices that an Amazon Kinesis Data Firehose delivery stream is failing to deliver data to an Amazon S3 bucket. The CloudWatch metrics show 'DeliveryToS3.Success' is 0 and 'S3.BucketExists' is 1. What is the MOST likely cause?
⚠ Common exam trap
It's easy for candidates to confuse 'S3.BucketExists' with successful delivery, or assume a missing bucket is the issue when the metric clearly shows the bucket exists, leading them to overlook the IAM permission gap.
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 for Firehose lacks s3:PutObject permission.
The metric 'S3.BucketExists' is 1, confirming the S3 bucket exists, so the issue is not bucket existence. With 'DeliveryToS3.Success' at 0, the failure is in the write operation. The IAM role assumed by Firehose must have the s3:PutObject permission to deliver data; lacking it would cause all delivery attempts to fail silently, matching the observed metrics.
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 S3 bucket has an ACL that denies access to Firehose.
Why it's wrong here
S3.BucketExists reports 1, so the bucket is reachable; an ACL denying Firehose would typically surface as an access-denied delivery error rather than this metric pattern. ACLs are the legacy mechanism; bucket policies are the modern control. This would be the cause when the bucket itself is missing.
- ✗
The Firehose delivery stream Lambda transformation function is failing.
Why it's wrong here
A failing Lambda transformation returns invocation errors and, after retries, delivers records to the S3 error prefix; DeliveryToS3.Success would still register for successfully transformed batches. This would be the cause when records land in the error bucket. The zero success metric with the bucket present points elsewhere.
- ✓
The IAM role for Firehose lacks s3:PutObject permission.
Why this is correct
S3.BucketExists being 1 confirms the bucket is reachable, so the failure lies in authorisation. Firehose requires s3:PutObject in its IAM role to write objects; without it, every delivery attempt is denied and DeliveryToS3.Success stays at 0.
- ✗
The S3 bucket does not exist.
Why it's wrong here
The CloudWatch metric S3.BucketExists already reports 1, confirming the bucket is present, so a missing bucket cannot explain DeliveryToS3.Success being 0. This option is tempting because a deleted or misnamed bucket is a common Firehose failure, and it would be correct if S3.BucketExists returned 0.
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 →
Same concept, more angles
1 more way this is tested on DEA-C01
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 data engineer is troubleshooting a failed Amazon Kinesis Data Firehose delivery stream. The stream is configured to deliver data to an Amazon S3 bucket. The error log shows: 'The destination S3 bucket's bucket policy does not allow the firehose to put objects.' What is the MOST likely issue?
easy- A.The S3 bucket's ACL is configured to deny write access to the firehose.
- B.The IAM role used by Firehose does not have the necessary permissions.
- ✓ C.The S3 bucket policy does not include an Allow statement for the firehose to put objects.
- D.The IAM role's trust policy does not allow Firehose to assume the role.
Why C: The error states the bucket policy does not allow the firehose to put objects. The solution is to add an Allow statement in the bucket policy granting the firehose's IAM role permission to execute s3:PutObject. Option A is incorrect because the error is about bucket policy, not ACLs. Option B is incorrect because the error is already about permissions. Option D is incorrect because the issue is at the S3 bucket policy level, not IAM role trust policy.
JA
Written by Johnson Ajibi, MSc IT Security
Senior Network & Security Engineer · founder of Courseiva
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.