IAM: Primeros Pasos en AWS

Clase 4 de 75Curso de AWS Certified Solutions Architect Associate

Introducción a IAM en AWS: Usuarios, Grupos, Roles y Políticas

Identity and Access Management (IAM) es el servicio de AWS que permite gestionar de forma segura el acceso a los recursos en la nube. Cuando hablamos de IAM, nos referimos a las entidades y las políticas que controlan quién puede hacer qué y dónde en Amazon Web Services. A continuación, se describen los principios básicos que debes conocer para administrar y diseñar permisos en AWS y así empezar a gestionar los usuarios de nuestro proyecto para Nexiia Bank.

IAM Usuarios

1. Conceptos de Usuario, Grupo y Rol IAM

Usuarios

Un usuario IAM representa a una persona o aplicación que necesita acceso a recursos de AWS. Cada usuario tiene sus propias credenciales:

  • Credenciales de inicio de sesión (usuario/contraseña) para la consola de AWS (la interfaz web que hemos visto en el anterior laboratorio).
  • Access Keys para la CLI, SDKs o APIs.

Grupos

Un grupo IAM simplifica la gestión de permisos. Por ejemplo, puedes tener un grupo de desarrolladores con permisos específicos; otro grupo para las personas del área contable; otro para el área de soporte; y así. Tener distintos grupos nos ayuda, ya que podemos asignar los permisos necesarios para cada tipo de rol en la organización; cuando entre un nuevo empleado solo será necesario agregarlo al grupo existente y así tomará los permisos de este automáticamente.

Roles

Un rol IAM permite a usuarios o servicios asumir permisos temporalmente sin tener credenciales fijas:

  • Un usuario IAM puede asumir un rol.
  • Un servicio de AWS, como EC2, también puede asumir un rol para acceder a otros servicios (como por ejemplo obtener un objeto en S3).

Diferencias esenciales

Un rol no tiene credenciales permanentes. Cuando se asume un rol, se generan credenciales temporales que expiran poco después de su uso. Por esto mismo, es considerado una buena práctica de seguridad el uso de roles siempre que se pueda.

2. Políticas: AWS Managed, Customer Managed Policies e Inline Policies

Para controlar quién puede hacer qué, usamos políticas. Estas definen acciones permitidas o denegadas sobre ciertos recursos.

AWS IAM

  1. AWS Managed Policies
    • Mantenidas por AWS.
    • Uso general, cubren necesidades comunes.
    • Facilitan su aplicación, listas para usar.
  2. Customer Managed Policies
    • Creadas por ti según tus necesidades.
    • Reutilizables en distintas entidades.
    • Mayor control y personalización.
  3. Inline Policies
    • Embebidas directamente en una entidad (usuario, grupo o rol).
    • Útiles para escenarios muy puntuales.
    • Mantenimiento más complejo.

3. Uso de Credenciales de Acceso y Buenas Prácticas

Las Access Keys son pares de credenciales usadas en CLI, SDK o API. Buenas prácticas incluyen:

  • Rotar periódicamente las Access Keys.
  • Activar MFA para cuentas que tengan acceso a la consola de AWS.
  • Eliminar/deshabilitar Access Keys cuando ya no son necesarias.
  • Usar roles siempre que sea posible para llamar a otros servicios en vez de Access Keys.

4. Principio de Privilegio Mínimo

Otorga solo los permisos necesarios a cada entidad para que puedan realizar sus tareas. Este principio:

  • Reduce el riesgo de acciones indebidas.
  • Facilita la auditoría.
  • Minimiza el impacto en caso de comprometerse una credencial.

5. Creación de Roles para Servicios de AWS (Ejemplo: EC2 -> S3)

Un rol IAM permite que un servicio acceda a otro sin exponer credenciales fijas:

  1. Crea un rol IAM con permisos para S3.
  2. Asocia el rol a una instancia EC2.
  3. La instancia puede acceder a S3 sin credenciales embebidas.

6. Estructura de las Políticas JSON

Las políticas en formato JSON determinan las acciones permitidas o denegadas:

  • Effect: Indica si es “Allow” o “Deny”.
  • Action: Lista de acciones de AWS autorizadas o denegadas (p. ej., s3:PutObject).
  • Resource: Recursos cubiertos por la política (p. ej., un bucket S3).
  • Condition: Filtros adicionales (direcciones IP, uso de MFA, etc.).

Ejemplo: permitir s3:PutObject en mi-bucket-ejemplo solo si se inició sesión con MFA.


IAM es esencial para controlar la seguridad y el acceso en tu organización. Conociendo usuarios, grupos, roles, políticas, y aplicando principios de mejor práctica, puedes mantener una arquitectura segura y escalable.