Gestión de Roles, Grupos y Políticas en AWS IAM

Clase 48 de 80Curso AWS Cloud Practitioner Certification

AWS Identity and Access Management (IAM) es el servicio que permite gestionar el acceso a los recursos de AWS de manera segura. Imagina una empresa con múltiples empleados, cada uno con roles específicos. IAM te permite asignar permisos adecuados a cada usuario, grupo o servicio, asegurando que solo tengan acceso a lo que necesitan. En esta clase, exploraremos cómo gestionar roles, grupos, políticas personalizadas y la implementación de MFA para proteger tu infraestructura.


Roles y Grupos en IAM: Cómo Asignarlos y Gestionarlos

pexels-olia-danilevich-4974912.jpg

Usuarios IAM

Los usuarios IAM son identidades individuales que representan a personas o aplicaciones. Cada usuario puede tener permisos específicos para realizar acciones en AWS.

Ejemplo: Un desarrollador necesita permisos para crear instancias EC2, mientras que un administrador requiere acceso completo al entorno.

Grupos IAM

Los grupos son colecciones de usuarios que comparten permisos comunes.

Ventajas:

  • Administración más sencilla: Asignar permisos a un grupo en lugar de a cada usuario individual reduce la complejidad.
  • Menor propensión a errores: Centralizar los permisos en grupos minimiza el riesgo de configuraciones incorrectas.
  • Mayor rapidez: Agregar o revocar accesos es más eficiente, ya que solo necesitas modificar el grupo.
  • Mejor control y visibilidad: Facilita el monitoreo y auditoría de los permisos asignados.

Limitación: Los grupos no pueden anidarse (un grupo no puede contener a otro grupo).

Roles IAM

Los roles son similares a los usuarios, pero no están asociados a una persona específica.

Usos comunes:

  • Permitir que servicios de AWS, como EC2 o Lambda, asuman permisos para realizar acciones.
  • Acceso entre cuentas o para usuarios externos mediante proveedores de identidad.

Ejemplo práctico:

Un rol permite que una instancia EC2 acceda a un bucket S3 para almacenar archivos, sin necesidad de compartir credenciales de usuario.


Diferencias entre Usuarios Root e IAM

Usuario Root

  • Tiene acceso total a todos los servicios y recursos de la cuenta.
  • Se utiliza solo para tareas críticas, como la configuración inicial o la gestión de métodos de pago.
  • Riesgo: Usarlo para tareas diarias aumenta la probabilidad de errores o accesos no autorizados.

Usuarios IAM

  • Son identidades creadas para tareas específicas con permisos limitados.
  • Se pueden asignar a personas o aplicaciones.
  • Ventaja: Permiten un control granular sobre los permisos, siguiendo el principio de menor privilegio.

Buenas prácticas:

  • No usar el usuario root para tareas diarias.
  • Crear un usuario IAM con permisos administrativos para la gestión diaria.

Creación y Aplicación de Políticas Personalizadas

Las políticas personalizadas permiten definir permisos específicos para usuarios, grupos o roles. Esto asegura un control granular sobre quién puede hacer qué en tu infraestructura.

Tipos de Políticas en IAM

  1. Gestionadas por AWS: Políticas predefinidas y mantenidas por AWS.
  2. Gestionadas por el Cliente: Políticas creadas y gestionadas por el cliente.
  3. Políticas en Línea: Adjuntadas directamente a un único recurso.

Ejemplo de Política Personalizada

Permitir acceso de solo lectura a un bucket S3 específico:

json Copy Code { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "s3:ListBucket", "Resource": "arn:aws:s3:::example_bucket" } ] }

Aquí es importante considerar que esto puede ser de tipo “allow” o “deny”.

En una política de “allow” y “deny” sobre el mismo recurso, se ganará el “deny”. Incluso si hay múltiples “allow”, un solo “deny” los anulará todos.

Pasos para Crear una Política

  1. Ve al panel de IAM en la consola de AWS.
  2. Selecciona "Policies" y haz clic en "Create policy".
  3. Usa el editor JSON para definir permisos específicos (AWS también tiene la opción de editar estos permisos en una interfaz, por si los JSON se hacen complicados).
  4. Revisa y valida la política con IAM Policy Simulator.
  5. Asigna la política a un usuario, grupo o rol.

Ejemplo práctico:

Un equipo de desarrollo necesita acceso de lectura y escritura a un bucket S3. Creas una política personalizada y la aplicas al grupo "Desarrolladores". Esto asegura que todos los miembros del grupo tengan los permisos necesarios.


Laboratorio Breve: Configuración de una Política de Acceso

Escenario:

Tu empresa necesita que un equipo de soporte técnico tenga acceso para listar y obtener objetos de un bucket S3 específico.

  1. Crea una política personalizada:

    json Copy Code { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:ListBucket", "s3:GetObject" ], "Resource": [ "arn:aws:s3:::example_bucket", "arn:aws:s3:::example_bucket/*" ] } ] }
  2. Asigna la política al grupo "Soporte Técnico".

  3. Valida la política con IAM Policy Simulator para asegurarte de que solo permite las acciones necesarias.

Pregunta para reflexionar:

¿Cómo garantizarías que esta política no permita acceso no autorizado a otros recursos?


Cómo Implementar MFA en Usuarios IAM

pexels-olia-danilevich-4974915.jpg

La autenticación multifactor (MFA) añade una capa adicional de seguridad al requerir un segundo factor, como un código generado por una app, además de la contraseña.

Beneficios de MFA

  • Reduce el riesgo de accesos no autorizados.
  • Protege contra compromisos de contraseña.
  • Cumple con requisitos de auditoría y normativas.

Pasos para Configurar MFA

  1. Inicia sesión en la consola de AWS y ve a "IAM".
  2. Selecciona el usuario al que deseas habilitar MFA.
  3. En la pestaña "Seguridad", haz clic en "Activar MFA".
  4. Elige un dispositivo virtual (como Google Authenticator) o físico (como Yubikeys).
  5. Sigue las instrucciones para sincronizar el dispositivo.
  6. Verifica el código generado por el dispositivo para completar la configuración.

Ejemplo práctico:

Habilitar MFA para un usuario IAM con permisos administrativos asegura que incluso si su contraseña es comprometida, un atacante no podrá acceder sin el segundo factor.

Política para Requerir MFA:

json Copy Code { "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Action": "*", "Resource": "*", "Condition": { "Bool": { "aws:MultiFactorAuthPresent": false } } } ] }

Revisión de Políticas Gestionadas vs Políticas en Línea

Políticas Gestionadas

  • Pueden ser reutilizadas por múltiples usuarios, grupos o roles.
  • Más fáciles de mantener y actualizar.
  • Ejemplo: Una política gestionada por AWS para acceso de solo lectura a S3.

Políticas en Línea

  • Adjuntadas directamente a un único recurso.
  • Más específicas, pero difíciles de gestionar a gran escala.
  • Ejemplo: Una política en línea para un rol que permite acceso temporal a un bucket S3.

Recomendación:

Usa políticas gestionadas para permisos comunes y políticas en línea solo para casos específicos.


La gestión avanzada de IAM y permisos es esencial para proteger tu infraestructura en AWS. Al usar roles, grupos, políticas personalizadas y MFA, puedes garantizar que cada usuario o servicio tenga acceso solo a lo que necesita.

Recuerda siempre validar y revisar tus configuraciones para evitar errores que puedan comprometer la seguridad.