Skip to main content

Command Palette

Search for a command to run...

AWS Nuke: Qué es, para qué sirve y cómo eliminar cuentas de AWS de forma segura

Updated
4 min read
AWS Nuke: Qué es, para qué sirve y cómo eliminar cuentas de AWS de forma segura

Cuando trabajás con AWS en serio —múltiples cuentas, entornos sandbox, CI/CD, pruebas automatizadas— limpiar recursos manualmente deja de ser una opción.
Ahí aparece una herramienta tan poderosa como peligrosa si no se entiende bien: AWS Nuke.

En este artículo vamos a ver:

  • ✅ Qué es AWS Nuke

  • ✅ Para qué sirve (y para qué no)

  • ✅ Cómo funciona internamente

  • ✅ Ejemplos de uso reales

  • ✅ Buenas prácticas y advertencias


¿Qué es AWS Nuke?

AWS Nuke es una herramienta open source creada por Rebuy que permite eliminar casi todos los recursos de una cuenta de AWS de forma automática.

👉 En pocas palabras:

AWS Nuke destruye una cuenta de AWS para dejarla totalmente limpia.

Funciona vía AWS APIs y es capaz de borrar:

  • EC2, EBS, AMIs

  • S3 buckets

  • RDS, DynamoDB

  • Lambda

  • API Gateway

  • EKS / ECS

  • CloudWatch

  • IAM roles (no root)

  • Y muchos más


¿Por qué existe AWS Nuke?

Porque AWS NO tiene un botón de “delete everything”.

Usos típicos:

  • Cuentas sandbox descartables

  • Ambientes de testing automatizado

  • Laboratorios de training

  • Reset completo antes de reutilizar una cuenta

  • CI/CD que crea infraestructura efímera


¿Qué NO es AWS Nuke?

❌ No es una herramienta de limpieza selectiva
❌ No es para producción
❌ No es “terraform destroy”
❌ No tiene rollback

💡 Si lo ejecutás mal, perdés la cuenta completa (datos incluidos).


Cómo funciona AWS Nuke

El flujo general es:

  1. Se conecta a una cuenta AWS usando credenciales

  2. Lista todos los recursos soportados

  3. Aplica filtros y exclusiones

  4. Elimina recurso por recurso

  5. Reintenta hasta que no queda nada

⚠️ Algunos recursos requieren múltiples pasadas (por dependencias).


Instalación de AWS Nuke

Opción 1: Binario

brew install aws-nuke

o descargando el binario desde GitHub.

Opción 2: Docker (muy recomendado)

docker run --rm -it \
  -v $(pwd)/config.yml:/config.yml \
  quay.io/rebuy/aws-nuke:v2.25.0 \
  aws-nuke -c /config.yml --dry-run

Archivo de configuración (config.yml)

Ejemplo básico:

regions:
  - us-east-1
  - global

account-blocklist:
  - "123456789012" # Cuenta productiva (NUNCA NUKLEAR)

accounts:
  "111111111111":
    filters:
      IAMUser:
        - "admin"

🔎 Conceptos clave del config

✅ regions

Define dónde buscar y borrar recursos.

✅ account-blocklist

Crítico. Obligatorio.
Previene nukear cuentas prohibidas.

✅ Best practice: incluir SIEMPRE la cuenta root y producción.


Dry Run (modo seguro)

Antes de ejecutar nada:

aws-nuke -c config.yml --dry-run

Este modo:

  • No elimina nada

  • Muestra exactamente qué se borraría

  • Es obligatorio correrlo siempre

💡 Nunca ejecutes AWS Nuke en modo activo sin un dry-run previo.


Ejemplo 1: Limpiar una cuenta sandbox

Caso típico:

  • Developers prueban cosas

  • Recursos quedan colgados

  • Costos innecesarios

Config simple:

regions:
  - us-east-1
  - global

account-blocklist:
  - "999999999999"

accounts:
  "111111111111": {}

Ejecución real:

aws-nuke -c config.yml --no-dry-run

Resultado:
✅ Cuenta completamente vacía
✅ Lista para reutilizar


Ejemplo 2: Integración con CI/CD

Uso común:

  • Pipeline crea una cuenta temporal

  • Ejecuta tests

  • Al final → nuke automático

Ejemplo en pipeline:

aws-nuke -c config.yml --force --no-dry-run

Flags importantes:

  • --force: no pide confirmación interactiva

  • --no-dry-run: ejecuta de verdad

⚠️ Usar solo en cuentas descartables.


Ejemplo 3: Training y workshops

En workshops:

  • Cada alumno tiene su cuenta

  • Al finalizar el día → reset total

AWS Nuke permite:

  • Evitar costos residuales

  • Reutilizar cuentas para el próximo grupo

  • Garantizar entorno limpio


Filtros y exclusiones

AWS Nuke NO puede borrar todo (ej: root user), pero sí casi todo.

Ejemplo: proteger un bucket específico

accounts:
  "111111111111":
    filters:
      S3Bucket:
        - "important-logs-bucket"

Seguridad y buenas prácticas

✅ Usar siempre:

  • SCPs que bloqueen AWS Nuke en prod

  • account-blocklist

  • Dry run obligatorio

✅ Ejecutar desde:

  • Cuenta de seguridad

  • Rol dedicado

  • Pipeline controlado

❌ Nunca:

  • Ejecutar manualmente “por las dudas”

  • Usar en prod

  • Omitir blocklist


AWS Nuke + SCPs (combinación ideal)

Una muy buena práctica es:

  • ✅ SCP bloquea acciones destructivas en prod

  • ✅ AWS Nuke solo funciona en:

    • Sandbox

    • Dev

    • Accounts efímeras

Esto alinea perfecto con:

  • AWS CAF

  • Control preventivo

  • Gobierno organizacional


Conclusión

AWS Nuke es una motosierra.

En manos correctas:
✅ Ahorra tiempo
✅ Reduce costos
✅ Automatiza limpieza

En manos incorrectas:
💥 Destrucción total

Si trabajás con AWS a escala, AWS Nuke no es opcional, pero el gobierno sí es obligatorio.