IAM
📘 ¿Qué es AWS IAM?
AWS IAM (Identity and Access Management) es el servicio que permite gestionar de forma segura el acceso a los recursos de AWS. IAM te permite crear y administrar usuarios, grupos, roles y políticas de permisos que controlan quién puede hacer qué dentro de tu cuenta de AWS.
IAM es gratis y está disponible en todas las regiones de AWS.
🧩 Principales componentes
| Componente | Descripción |
|---|---|
| Usuario IAM | Representa a una persona o aplicación. Tiene credenciales únicas. |
| Grupo | Conjunto de usuarios IAM que comparten permisos comunes. |
| Rol IAM | Identidad sin credenciales propias, usada para delegar acceso temporal. |
| Política (Policy) | Documento JSON que define permisos (permitir o denegar). |
| Principal | Entidad que puede autenticarse (usuario, rol, federado, etc.) |
🔑 Tipos de autenticación en IAM
-
Acceso programático: mediante claves de acceso (Access Key ID + Secret Key)
-
Acceso a la consola de AWS: mediante usuario/contraseña
-
Autenticación multifactor (MFA): capa extra de seguridad (token físico o app)
🧱 Tipos de políticas en IAM
| Tipo de política | Uso |
|---|---|
| Managed Policy de AWS | Políticas listas para usar, gestionadas por AWS |
| Customer Managed Policy | Políticas creadas por el usuario |
| Inline Policy | Política adjunta directamente a un único recurso (usuario, grupo o rol) |
| Permissions Boundary | Límite superior de permisos para usuarios o roles |
| Service Control Policy (SCP) | Políticas a nivel de organización (solo con AWS Organizations) |
| Session Policy | Políticas temporales aplicadas a roles federados o sesiones STS |
📘 Sintaxis básica de una política JSON
{
"Version": "2012-10-17",
"Statement": [{
"Effect": "Allow",
"Action": "s3:ListBucket",
"Resource": "arn:aws:s3:::mi-bucket"
}]
}
-
Effect: Allow / Deny -
Action: Servicio y acción permitida -
Resource: ARNs (Amazon Resource Names) específicos
🧠 ¿Qué es un Rol IAM?
-
No tiene credenciales propias
-
Se asume temporalmente con permisos específicos
-
Muy usado para:
-
Delegación de acceso entre cuentas
-
EC2, Lambda y otros servicios que necesitan permisos para actuar
-
Federación de identidad (SSO, SAML, OIDC)
-
🛡️ Buenas prácticas de seguridad
| Práctica recomendada | Descripción |
|---|---|
| ❌ No usar la cuenta root a diario | Solo para tareas críticas puntuales |
| ✅ Activar MFA para todos los usuarios | Autenticación multifactor |
| ✅ Usar roles, no claves fijas | Más seguro y gestionable |
| ✅ Aplicar principio de menor privilegio | Solo los permisos necesarios |
| ✅ Revisar políticas con Access Analyzer | Detectar sobrepermisos o riesgos |
| ✅ Rotar claves regularmente | Mejora la seguridad en accesos API |
💰 Costos
-
IAM no tiene costo adicional
-
Solo se paga por los recursos accedidos con permisos
🧠 Preguntas tipo certificación
-
¿Qué servicio gestiona los permisos en AWS?
- ✅ AWS IAM
-
¿Qué componente se usa para delegar acceso temporal entre cuentas?
- ✅ IAM Role
-
¿Cuál es el mejor lugar para aplicar el principio de menor privilegio?
- ✅ IAM Policies
-
¿Cuál es el riesgo de usar usuarios IAM con claves de acceso fijas?
- ❌ Pueden ser robadas o mal gestionadas
-
¿Cómo puedes evitar que un usuario tenga más permisos de los deseados?
- ✅ Usando Permissions Boundaries
🔗 Integraciones y herramientas relacionadas
-
AWS Organizations: define límites con SCPs
-
IAM Access Analyzer: identifica accesos públicos o excesivos
-
AWS SSO: control centralizado de identidades externas
-
STS (Security Token Service): entrega tokens temporales de acceso
-
CloudTrail: audita actividades de IAM