Amazon IAM

Resumen General

IAM (Identity and Access Management) es un servicio de AWS que permite controlar de forma segura el acceso a los recursos de AWS mediante la gestión de usuarios, grupos, roles y políticas.

Links de Contenido

Anotaciones:

Conceptos básicos de IAM

IAM permite administrar el acceso a los recursos de AWS mediante identidades (usuarios, grupos, roles) y políticas de permisos.

  • Usuario: entidad que representa a una persona o aplicación que interactúa con AWS.
  • Grupo: colección de usuarios con políticas asociadas.
  • Rol: identidad que puede asumir cualquier entidad para ejecutar acciones.
  • Política: documento JSON que define permisos mediante Effect, Action, Resource y Condition.

Claves de acceso (Access Keys)

Las claves de acceso (Access Key ID y Secret Access Key) permiten autenticarse programáticamente a servicios de AWS.

  • Se generan para usuarios IAM.
  • Usar solo cuando no sea posible usar roles.
  • Evitar compartirlas o almacenarlas en texto plano.
  • Rotar periódicamente por seguridad.

Creación de usuarios y grupos

Al crear un usuario IAM, se puede definir si tendrá acceso mediante consola, CLI o SDK.

  • Generar contraseña automáticamente y permitir cambio al primer login.
  • Guardar el CSV con username y password.
  • Crear un grupo con políticas asignadas (como AdministratorAccess).
  • Agregar el nuevo usuario al grupo correspondiente.

Políticas en IAM (Policies)

Las políticas son documentos JSON que especifican permisos sobre recursos de AWS.

  • Effect: Allow | Deny
  • Action / NotAction: indica qué se puede (o no) hacer.
  • Resource / NotResource: especifica los recursos permitidos o denegados.
  • Condition: restricciones adicionales (ej. horario, MFA, etiquetas)
  • Deny siempre prevalece sobre Allow.

Generación de políticas personalizadas

Podés usar el generador visual de políticas o escribirlas manualmente en JSON.

  • Se puede declarar un array de recursos.
  • Variables como ${aws:username} permiten políticas dinámicas.
  • Se pueden usar condiciones temporales, de red o autenticación multifactor.
  • IAM Policy Simulator ayuda a testear la política antes de aplicarla.

Tipos de políticas en IAM

IAM permite aplicar distintos tipos de políticas según la necesidad.

  • Managed policies de AWS (predefinidas, no editables)
  • Customer managed policies (creadas por el usuario, reutilizables)
  • Inline policies (asociadas directamente a una identidad específica)
  • Permissions boundaries (límite superior de permisos que puede tener una entidad)
  • Session policies (se aplican durante sesiones temporales)

Roles en IAM

Los roles permiten delegar permisos de forma segura sin utilizar credenciales a largo plazo.

  • Service Role: EC2 asume un rol para acceder a S3, por ejemplo.
  • Service-linked Role: administrado por AWS para servicios específicos (no modificable)
  • Cross-account role: una cuenta permite a otra asumir un rol.
  • Identity provider role: acceso federado mediante OIDC, Google, Facebook, etc.
  • Custom trust policy: define quién puede asumir el rol.

RBAC y ABAC

IAM soporta dos modelos de control de acceso: basado en roles (RBAC) y en atributos (ABAC).

  • RBAC: permisos según función del usuario (ej. Developer, Admin, Auditor)
  • ABAC: permisos según etiquetas, útil en entornos con muchos recursos y usuarios.
  • Ejemplo ABAC: acceso a recursos con tag Departament=Marketing si el usuario tiene aws:PrincipalTag/Departament igual.

Auditoría y análisis

IAM ofrece herramientas para auditar el uso de identidades y permisos.

  • Credential Report: listado de usuarios y estado de credenciales.
  • Access Advisor: muestra cuándo un usuario accedió por última vez a un servicio.
  • Access Analyzer: detecta permisos externos (cross-account, public) y permite archivarlos o corregirlos.
  • IAM Policy Validator: verifica errores de seguridad en las políticas JSON.

Seguridad y buenas prácticas

Aplicar buenas prácticas de seguridad reduce el riesgo de accesos no autorizados.

  • No usar la cuenta root salvo para configuración inicial.
  • Proteger la root con MFA obligatorio.
  • Usar roles en vez de claves de acceso siempre que sea posible.
  • Rotar periódicamente las claves.
  • Aplicar principio de menor privilegio (Least Privilege).
  • Deshabilitar usuarios y roles no utilizados.
  • Utilizar contraseñas fuertes y políticas de expiración.
  • Habilitar MFA para todos los usuarios IAM.
  • Limitar acceso con condiciones (IP, tiempo, tags, etc.).

IAM Identity Center (ex AWS SSO)

Permite acceso federado y centralizado a múltiples cuentas de AWS con identidades externas.

  • Gestión de acceso para usuarios de Active Directory, Google Workspace, etc.
  • Asigna permisos a usuarios externos mediante grupos y políticas comunes.
  • Simplifica el acceso sin necesidad de múltiples claves o usuarios IAM por cuenta.