Una política IAM concede a un rol kms:Decrypt sobre una clave de AWS KMS, pero la llamada se deniega. ¿Por qué?
Respuesta breve
Porque una key policy de KMS, a diferencia de la mayoría de las políticas de recursos de AWS, no concede permisos automáticamente a la cuenta ni a sus identidades. Los allow de IAM solo funcionan si la key policy incluye una declaración (la predeterminada usa el principal raíz de la cuenta) que habilite las políticas IAM. Sin ella, las políticas IAM que permiten el acceso son ineficaces, aunque las que lo deniegan siguen aplicándose. Revisa primero la key policy, no solo el rol.
Muchos ingenieros de AWS aprenden que las políticas de identidad de IAM bastan para llegar a un recurso. KMS es la excepción clásica y aparece en entrevistas de nube porque rompe ese modelo mental.
El mecanismo
AWS documenta que, a diferencia de otras políticas de recursos de AWS, una key policy de KMS no concede permisos automáticamente a la cuenta ni a ninguna de sus identidades. Por eso la key policy predeterminada contiene una declaración para el principal de la cuenta (arn:aws:iam::<account-id>:root) con kms:*. Esa declaración no da acceso a todos los principales; permite a la cuenta usar políticas IAM para delegar los permisos. AWS indica que sin ella, las políticas IAM que permiten el acceso a la clave son ineficaces, aunque las que lo deniegan siguen funcionando.
Por qué importa
- Un rol con un allow IAM perfecto de
kms:Decryptfalla si la key policy carece de esa declaración habilitadora o se reescribió. - Una key policy que nombra a un solo usuario corre el riesgo de dejar la clave ingobernable si se elimina ese usuario; la declaración del principal de la cuenta reduce ese riesgo.
- Orden de depuración: key policy, luego políticas IAM, luego deny explícitos.
Por qué fallan los distractores
Una política de confianza controla quién puede asumir un rol, no lo que el rol puede hacer con una clave. KMS sí respeta las políticas IAM una vez habilitadas. Los deny prevalecen sobre los allow, pero nada aquí sugiere un deny.
Qué buscan los entrevistadores
Reconocer que KMS evalúa primero la key policy y que IAM solo funciona cuando la key policy delega en él.
Posibles preguntas de seguimiento
- ¿Qué hace realmente la declaración predeterminada de la key policy para el principal raíz de la cuenta?
- ¿Por qué una key policy que nombra a un solo usuario es un riesgo de gestionabilidad?
- ¿Cómo encajan los grants de KMS con las key policies y las políticas IAM?