The report exists, but the application gets AccessDenied
An EC2 reporting application uses an IAM role in the same account as its private S3 bucket. The role can read the reports prefix. An object encrypted with a customer-managed KMS key still fails to download. Test objects using S3-managed encryption keys are readable, and no explicit deny has been identified.
Your design taskWhich additional permission path would you investigate before changing the bucket or network?
Review the decision: security
A reasoned approach. Check authorization for kms:Decrypt on the object's actual KMS key. The role's S3 read permission is only one part of the request; the KMS key policy must also permit the role directly or enable an appropriate IAM permission path.
Why the shortcut fails. Making the bucket public or attaching AdministratorAccess does not diagnose the missing authorization and would broaden access unnecessarily.
Check your work. Record the object encryption key, the calling role and the relevant key-policy and IAM statements. Explain why the role can read the allowed report but still cannot read a different prefix.