DEV Community

Cover image for Tu Nube como una Base de Datos: Guía Práctica de Steampipe para AWS
Kevin Lupera
Kevin Lupera

Posted on

Tu Nube como una Base de Datos: Guía Práctica de Steampipe para AWS

Administrar una infraestructura en Amazon Web Services (AWS) puede ser complejo. Entre políticas de IAM, grupos de seguridad y cientos de recursos efímeros, es fácil perder de vista si estamos cumpliendo con las buenas prácticas de seguridad y gobernanza.
Tradicionalmente, esto requería scripts complicados o procesar enormes archivos JSON. Pero, ¿qué pasaría si pudieras consultar tu infraestructura de AWS usando simplemente SQL? Aquí es donde entra Steampipe.

demo

¿Qué es Steampipe?

Steampipe es una herramienta de código abierto que introduce el paradigma de "Infraestructura como SQL". Su magia reside en que expone las APIs de AWS como si fueran tablas de una base de datos relacional.

Lo mejor de todo es que utiliza un enfoque "Zero-ETL", lo que significa que no necesitas extraer ni transformar datos; consultas la configuración de tu nube en tiempo real directamente desde la fuente.

¿Por qué deberías usarlo?

  1. Simplicidad: Si sabes escribir un SELECT, ya sabes usar Steampipe.
  2. Visión Holística: Puedes unir datos de múltiples cuentas y regiones en una sola consulta.
  3. Cumplimiento Instantáneo: Permite verificar si tu entorno se alinea con marcos internacionales como el CIS AWS Foundations Benchmark o el pilar de seguridad del AWS Well-Architected Framework.

Ahora, vamos a ensuciarnos las manos con el código para que puedas empezar a auditar tus mejores prácticas de AWS hoy mismo.

result

Pasos

  1. Preparación del entorno Steampipe se instala en menos de un minuto y utiliza un enfoque Zero-ETL, lo que significa que no necesitas configurar bases de datos complejas para empezar a consultar. Para MAC:
brew install turbot/tap/steampipe
Enter fullscreen mode Exit fullscreen mode

Una vez instalado, el primer paso es instalar el plugin de AWS. Sin un plugin, Steampipe no tiene nada que consultar. Ejecuta esto en tu terminal:
Instalar el conector de AWS

steampipe plugin install aws
Enter fullscreen mode Exit fullscreen mode

Este comando descargará las tablas necesarias para que Steampipe pueda "hablar" con las APIs de Amazon.

  1. Consultando tu infraestructura con SQL Ahora que tienes el plugin, puedes entrar al modo interactivo de Steampipe simplemente escribiendo steampipe query. Aquí es donde ocurre la magia del "Infraestructura como SQL". A continuación, te presento tres consultas alineadas con el AWS Well-Architected Framework:

A. Seguridad: Identificar Grupos de Seguridad "puertos abiertos al mundo"
Una de las fallas de configuración más comunes es dejar puertos abiertos a 0.0.0.0/0. Usa este SQL para encontrarlos:

select
  group_id,
  group_name,
  ip_protocol,
  from_port,
  to_port
from
  aws_vpc_security_group_rule
where
  is_ipv4 = true
  and cidr_ipv4 = '0.0.0.0/0';
Enter fullscreen mode Exit fullscreen mode

Este comando te devolverá una tabla clara con los IDs de los grupos que violan esta buena práctica.
B. Gobernanza: Usuarios de IAM sin MFA habilitado
La seguridad de la identidad es el primer pilar. Puedes cruzar datos para ver quiénes no tienen autenticación de múltiples factores:

select
  name,
  mfa_enabled,
  password_last_used
from
  aws_iam_user
where
  mfa_enabled = false;
Enter fullscreen mode Exit fullscreen mode

C. Optimización de Costes: Volúmenes EBS huérfanos
Las buenas prácticas también implican eficiencia financiera (FinOps). Identifica discos que no están asociados a ninguna instancia y que están gastando dinero innecesariamente:

select
  volume_id,
  region,
  size,
  status
from
  aws_ebs_volume
where
  state = 'available'; -- 'available' significa que no está en uso
Enter fullscreen mode Exit fullscreen mode
  1. Automatización con "Mods" de Cumplimiento Si no quieres escribir cada consulta desde cero, puedes usar los "mods" de cumplimiento. Estos paquetes contienen cientos de controles preconfigurados para marcos como el CIS AWS Foundations Benchmark.
# Ejemplo: Descargar e iniciar el mod de cumplimiento de AWS
git clone https://github.com/turbot/steampipe-mod-aws-compliance.git
cd steampipe-mod-aws-compliance
steampipe check all
Enter fullscreen mode Exit fullscreen mode

¿Qué verás en tu pantalla?
Imagina un tablero de control en tu terminal donde cada control (como "Cifrado de S3" o "Rotación de claves de IAM") aparece con un color: Verde (Pass) si cumples, o Rojo (Alarm) si hay un riesgo.

  1. Visualización y Dashboards Steampipe no es solo texto. Gracias a herramientas como Powerpipe, puedes visualizar estas configuraciones en tableros interactivos que puedes compartir con tus clientes o equipos de DevOps. Imagen sugerida para el post: Captura de pantalla de un dashboard de Steampipe mostrando un gráfico de torta con el porcentaje de cumplimiento del CIS Benchmark en AWS.

preview

Resumen de comandos rápidos

Acción Comando
Instalar plugin steampipe plugin install aws
Iniciar consola SQL steampipe query

Conclusión

Steampipe transforma la auditoría de AWS de una tarea tediosa de revisión de JSONs a una experiencia fluida y potente mediante SQL estándar. Ya sea para seguridad, costos o gobernanza, tener el control total de tus datos en tiempo real es el estándar que tu infraestructura merece.

Top comments (0)