AWS IAM
Servicio de autenticación y autorización para controlar de forma segura el acceso a recursos AWS, proporcionando gestión de acceso granular mediante usuarios, grupos, roles y políticas
Descripción general
AWS IAM (Identity and Access Management) es el servicio fundamental de seguridad que controla quién puede acceder a qué recursos AWS y bajo qué condiciones. Permite crear y gestionar usuarios, grupos y roles con políticas de permisos detalladas que definen exactamente qué acciones están permitidas o denegadas sobre qué recursos.
Lógica de evaluación de políticas y práctica del mínimo privilegio
IAM evalúa las políticas siguiendo un orden específico: primero verifica denegaciones explícitas (siempre ganan), luego busca permisos explícitos, y si no encuentra ninguno aplica la denegación implícita por defecto. Las políticas se expresan en JSON con elementos Effect (Allow/Deny), Action (operaciones API), Resource (ARNs) y opcionalmente Condition (restricciones contextuales). El principio de mínimo privilegio requiere otorgar solo los permisos estrictamente necesarios. IAM Access Analyzer ayuda a identificar recursos compartidos externamente y permisos no utilizados. Las políticas de límite de permisos (Permissions Boundary) establecen el máximo de permisos que un rol puede tener, útil para delegar la creación de roles sin riesgo de escalación de privilegios.
Roles IAM y credenciales temporales
Los roles IAM proporcionan credenciales temporales en lugar de credenciales permanentes (access keys), siendo la práctica recomendada para casi todos los casos de uso. Los servicios AWS asumen roles (ej: Lambda execution role, EC2 instance profile) para obtener permisos sin almacenar credenciales. La federación permite que usuarios externos (SAML, OIDC) asuman roles sin crear usuarios IAM. STS (Security Token Service) emite credenciales temporales con duración configurable. El encadenamiento de roles permite que un rol asuma otro rol, útil para acceso cross-account. Las session policies permiten restringir aún más los permisos de una sesión específica sin modificar la política del rol.
Gestión a gran escala con Organizations e IAM Identity Center
En entornos multi-cuenta, Organizations proporciona Service Control Policies (SCPs) que establecen guardrails a nivel organizacional, limitando los permisos máximos disponibles en cada cuenta independientemente de las políticas IAM locales. IAM Identity Center (anteriormente AWS SSO) centraliza la autenticación para múltiples cuentas, eliminando la necesidad de crear usuarios IAM en cada cuenta. Los Permission Sets definen conjuntos de permisos reutilizables que se asignan a usuarios/grupos para cuentas específicas. Esta combinación permite gestionar el acceso de cientos de desarrolladores a decenas de cuentas de forma escalable y auditable.