SAP-C02 Practice Question: Design Solutions for Organizational Complexity
Network Topology
A company uses a cross-account IAM role 'LogDelivery' in account 111122223333 to write logs to an S3 bucket 'my-company-logs' in a logging account. The bucket policy is shown above. Logs are not being delivered. What is the MOST likely issue?
⚠ Common exam trap
Many exam-takers assume the bucket policy's `Principal` element with an account ID automatically grants access to all IAM roles in that account, but in reality, the bucket policy must explicitly list the role ARN or use `"AWS": "arn:aws:iam::111122223333:root"` to allow all principals in the account, and even then, the role must be assumed by a trusted service.
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 bucket policy restricts access to a specific account only.
The bucket policy restricts access to a specific AWS account (e.g., `"AWS": "111122223333"`), which only grants access to the account's root user, not to IAM roles. For the cross-account IAM role 'LogDelivery' to write logs, the bucket policy must explicitly allow the role's ARN or use `"AWS": "arn:aws:iam::111122223333:root"` to include all IAM principals in the account. Since the policy only allows the account root, the role is denied, causing the delivery failure. Option B is correct because the policy's account-only restriction does not cover the role.
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 bucket policy lacks s3:GetObject permission.
Why it's wrong here
PutObject is sufficient for writing logs.
- ✓
The bucket policy restricts access to a specific account only.
Why this is correct
The resource pattern includes account 111122223333, so logs from other accounts would be denied.
- ✗
The IAM role is not trusted by the bucket policy.
Why it's wrong here
The bucket policy trusts the role ARN directly.
- ✗
The bucket policy has an explicit deny that overrides the allow.
Why it's wrong here
There is no deny statement in the policy.
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
Courseiva writes every SAP-C02 question from scratch — 1,660 in total, each with an explanation and a wrong-answer breakdown. None are copied from real exams or dumps. Learn why practice questions differ from exam dumps →
JA
Written by Johnson Ajibi, MSc IT Security
Senior Network & Security Engineer · founder of Courseiva
This SAP-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 SAP-C02 exam.