Dominando AWS IAM
IAM es uno de los temas más frecuentes en el examen CLF-C02. Esta guía cubre los componentes principales de IAM, su modelo de permisos y las herramientas de seguridad que debes conocer.
---
¿Qué es IAM?
IAM (Identity and Access Management) es el servicio de AWS que controla de forma segura el acceso a los recursos de AWS. Determina quién puede hacer qué dentro de tu entorno AWS.
IAM gestiona tres conceptos principales:
Usuarios: Identidades individuales que interactúan con los servicios de AWS Grupos: Colecciones de usuarios que comparten permisos comunes Roles: Permisos temporales asignados a servicios o aplicaciones de AWS
IAM es un servicio global sin costo adicional. No es necesario seleccionar una región específica para utilizarlo.
---
Usuarios y Grupos
| | Descripción | |--|--| | Usuario de IAM | Identidad única con credenciales (nombre de usuario/contraseña, claves de acceso) | | Grupo de IAM | Agrupación lógica de usuarios para simplificar la gestión de permisos |
Existen reglas importantes sobre la relación entre usuarios y grupos. Un usuario no tiene que pertenecer a ningún grupo. Un usuario puede pertenecer a varios grupos al mismo tiempo. Sin embargo, los grupos no pueden contener otros grupos — el anidamiento no está permitido.
---
Permisos y Políticas
Los permisos se definen mediante documentos de política JSON que especifican qué acciones están permitidas o denegadas.
Estructura de Política
| Elemento | Descripción | |---------|-------------| | Version | Versión del lenguaje de política (siempre 2012-10-17) | | Effect | Allow o Deny | | Action | Acción del servicio de AWS a permitir o denegar | | Resource | Recurso de AWS de destino (ARN) |
Al diseñar políticas, sigue el Principio del Menor Privilegio: otorga solo los permisos necesarios para la tarea en cuestión. Esto reduce significativamente el riesgo de acceso no autorizado.
Tipos de Políticas
| Tipo | Descripción | |------|-------------| | Políticas Gestionadas por AWS | Políticas reutilizables predefinidas proporcionadas por AWS | | Políticas Gestionadas por el Cliente | Políticas personalizadas creadas y mantenidas por el usuario | | Políticas Inline | Políticas integradas directamente en un usuario, grupo o rol específico |
---
Roles de IAM
Los roles de IAM permiten que los servicios de AWS accedan a otros servicios de AWS sin almacenar credenciales a largo plazo en el código. Este es un enfoque significativamente más seguro que incorporar claves de acceso directamente en el código de la aplicación.
Casos de uso comunes:
Una instancia de EC2 accediendo a buckets de S3 Una función de Lambda leyendo o escribiendo en DynamoDB
Para cualquier aplicación que se ejecute en AWS, usar un rol de IAM en lugar de un usuario de IAM es el enfoque recomendado. Elimina el riesgo de que las credenciales a largo plazo queden expuestas.
---
MFA (Autenticación Multifactor)
MFA añade una segunda capa de seguridad sobre una contraseña. Incluso si una contraseña es robada, MFA impide el acceso no autorizado a la cuenta.
Dispositivos MFA en AWS
| Tipo | Descripción | |------|-------------| | MFA Virtual | Aplicaciones de smartphone como Google Authenticator o Authy (TOTP) | | MFA de Hardware | Dispositivos de token físico como Gemalto | | Clave de Seguridad U2F | Claves de seguridad basadas en USB |
Siempre se debe activar MFA en la cuenta raíz y en los usuarios de IAM con privilegios elevados.
---
Política de Contraseña
AWS IAM permite configurar las siguientes reglas de contraseña para tu cuenta:
Longitud mínima de contraseña Tipos de caracteres obligatorios (mayúsculas, minúsculas, números, símbolos) Prevención de reutilización de contraseñas Período de expiración (por ejemplo, cada 90 días)
---
Tres Formas de Acceder a AWS
| Método | Descripción | |--------|-------------| | Consola de Administración de AWS | Interfaz gráfica basada en web | | AWS CLI | Comandos de terminal para automatización | | AWS SDK | Acceso programático mediante lenguajes como Python y JavaScript |
Ejemplo de CLI
Ejemplo de SDK (Python boto3)
Tanto la CLI como el SDK requieren claves de acceso (ID de clave de acceso y clave de acceso secreta). Estas claves nunca deben compartirse ni incluirse directamente en el código fuente.
---
Herramientas de Seguridad de IAM
| Herramienta | Propósito | |------------|----------| | Informe de Credenciales de IAM | Lista todos los usuarios de IAM y el estado de sus credenciales, útil para auditorías | | Asesor de Acceso de IAM | Muestra cuándo se usaron los permisos por última vez, ayudando a identificar y eliminar accesos innecesarios | | Simulador de Políticas de IAM | Prueba y valida políticas antes de aplicarlas |
Utiliza el Informe de Credenciales para auditorías de seguridad periódicas. El Asesor de Acceso es especialmente útil para mantener el Principio del Menor Privilegio al identificar permisos que ya no se usan.
---
Modelo de Responsabilidad Compartida
| Responsabilidad de AWS | Responsabilidad del Cliente | |----------------------|---------------------------| | Proteger la infraestructura del servicio IAM | Gestionar usuarios, grupos y roles | | Garantizar la disponibilidad del servicio | Establecer políticas de contraseña sólidas y activar MFA | | Proporcionar políticas gestionadas por AWS | Aplicar el menor privilegio y realizar auditorías periódicas |
---
Mejores Prácticas de IAM
Minimiza el uso de la cuenta raíz. Usa usuarios de IAM para las operaciones diarias. Aplica el Principio del Menor Privilegio de forma consistente. Activa MFA en la cuenta raíz y en todos los usuarios de IAM administrativos. Usa roles de IAM para las aplicaciones en lugar de incluir claves de acceso en el código. Rota las claves de acceso de forma regular. Audita los permisos periódicamente mediante el Informe de Credenciales y el Asesor de Acceso.
---
Puntos Clave para el Examen
IAM es un servicio global: no es necesario seleccionar una región Una política es un documento JSON; los elementos clave son Effect, Action y Resource Los grupos no pueden anidarse dentro de otros grupos MFA es la última línea de defensa si una contraseña se ve comprometida El rol de IAM es la forma segura de otorgar permisos a los servicios de AWS El Informe de Credenciales es la herramienta de auditoría; el Asesor de Acceso identifica permisos no utilizados