Skip to content
English
On this page

Ejercicio: Gestión de Accesos con AWS IAM

Objetivo

Crear y configurar diferentes tipos de accesos en AWS usando IAM, implementando el principio de privilegios mínimos.

Escenario

Simularemos la configuración de accesos para una empresa pequeña con los siguientes roles:

  • Desarrollador Junior (acceso limitado)
  • Administrador de S3 (acceso completo a S3)
  • Auditor (acceso de solo lectura)

Parte 1: Crear Grupos y Políticas

1. Crear Grupos de IAM

  1. Ve a IAM > User groups
  2. Crea los siguientes grupos:
    - Developers
    - S3Admins
    - Auditors

2. Crear Políticas Personalizadas

Política para Desarrolladores

  1. Ve a IAM > Policies > Create policy
  2. Usa el editor JSON:
json
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "ec2:Describe*",
                "ec2:StartInstances",
                "ec2:StopInstances"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "s3:GetObject",
                "s3:PutObject",
                "s3:ListBucket"
            ],
            "Resource": [
                "arn:aws:s3:::dev-bucket-${aws:username}/*",
                "arn:aws:s3:::dev-bucket-${aws:username}"
            ]
        }
    ]
}

Nombre: DeveloperRestrictedAccess

Política para Auditores

json
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "ec2:Describe*",
                "s3:List*",
                "s3:Get*",
                "iam:List*",
                "iam:Get*"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Deny",
            "Action": [
                "s3:GetObject"
            ],
            "Resource": "arn:aws:s3:::*/*"
        }
    ]
}

Nombre: AuditorReadOnlyAccess

3. Asignar Políticas a Grupos

  1. Grupo Developers:

    • DeveloperRestrictedAccess
    • AWSCloudFormationReadOnlyAccess
  2. Grupo S3Admins:

    • AmazonS3FullAccess
  3. Grupo Auditors:

    • AuditorReadOnlyAccess

Parte 2: Crear Usuarios y Asignar a Grupos

1. Crear Usuarios de Prueba

  1. Ve a IAM > Users > Add users
  2. Crea los siguientes usuarios:
junior-dev
s3-admin
auditor
  1. Selecciona "Access key - Programmatic access" y "Password - AWS Management Console access"

2. Asignar Usuarios a Grupos

  • junior-dev → Developers
  • s3-admin → S3Admins
  • auditor → Auditors

Parte 3: Probar los Accesos

1. Configurar Recursos de Prueba

  1. Crear un bucket S3:
Nombre: dev-bucket-junior-dev
  1. Subir algunos archivos de prueba al bucket

2. Pruebas de Acceso

Para cada usuario, inicia sesión en la consola y verifica:

Usuario junior-dev:

  • [ ] Puede ver instancias EC2
  • [ ] Puede iniciar/detener instancias
  • [ ] Puede acceder solo a su bucket específico
  • [ ] No puede crear nuevos buckets

Usuario s3-admin:

  • [ ] Tiene acceso completo a S3
  • [ ] Puede crear/eliminar buckets
  • [ ] No puede acceder a EC2

Usuario auditor:

  • [ ] Puede ver recursos pero no modificarlos
  • [ ] Puede listar buckets pero no ver contenido
  • [ ] Puede ver configuraciones de IAM

Parte 4: Implementar MFA

1. Configurar MFA para un Usuario

  1. Como administrador, habilita MFA para un usuario
  2. Configura una aplicación MFA (Google Authenticator)
  3. Verifica el acceso con MFA

2. Crear Política que Requiera MFA

json
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "s3:ListAllMyBuckets",
            "Resource": "*",
            "Condition": {"Bool": {"aws:MultiFactorAuthPresent": "true"}}
        }
    ]
}

Verificación

Tu ejercicio está completo cuando:

  • Todos los usuarios pueden acceder solo a sus recursos asignados
  • Las políticas restrictivas funcionan correctamente
  • MFA está configurado y funcionando
  • Puedes verificar los logs de acceso en CloudTrail

Limpieza

  1. Eliminar usuarios creados
  2. Eliminar grupos creados
  3. Eliminar políticas personalizadas
  4. Eliminar bucket de prueba

Conceptos Clave para el Examen

  • Diferencia entre usuarios, grupos y roles
  • Políticas gestionadas vs personalizadas
  • Principio de privilegios mínimos
  • Importancia del MFA
  • Uso de variables en políticas
  • Best practices de seguridad