El job de reportes puede descargar un objeto cifrado desde S3, pero falla cuando AWS KMS intenta descifrar su data key.
Lee la llamada que falla e identifica qué capa de autorización la rechazó.
Prueba: aws cloudtrail lookup-events --lookup-attributes AttributeKey=EventName,AttributeValue=Decrypt
El role de reportes solo descifra sus datos.
La request exacta a KMS está permitida sin conceder decrypt con wildcard.
Lección
Rastrea AccessDenied hasta la API que realmente rechazó la llamada. En KMS, restringe por clave y encryption context para que un permiso necesario no se convierta en una capacidad general de descifrado.
Editar reporting-kms-policy.tf
Restringe el permiso a la clave de reportes y al prefijo reports/.