Tema 4 · 7 · Panel Streamlit y seguridad del Data Lake (opcional)
Diapositivas del Tema 4: no hay una diapositiva específica en el README original; es material de apoyo del laboratorio (el panel lee los datos de NYC de 04.03). Duración: 10 a 15 minutos. Coste: la instancia EC2 cuesta unos 0,19 USD por hora (unos 4,6 USD al día) si tu cuenta no la cubre con el plan gratuito; se apaga sola a las 4 horas (se para, no se borra); para más tiempo, ./gestionar-datalake.sh crear (otras 4 h) o crear --permanente.
Qué vas a hacer
Vas a abrir el panel web «NYC Yellow Taxi - Data Lake Demo» que despliega el stack en una instancia EC2 y a entender qué riesgos de seguridad tiene el laboratorio (puerto 8501 abierto, usuario DataLakeAdmin opcional). No tiene ejercicio evaluable: es para ver tus datos en un panel.
Qué se crea en AWS: nada nuevo. La instancia EC2 g214-datalake-demo-demo-ec2 ya la creó el stack de 04.01 si lo lanzaste con CREATE_EC2=true (el valor por defecto).
Qué contiene esta carpeta
| Fichero | Para qué sirve | Paso en que se usa |
|---|---|---|
README.md |
Esta guía (no hay scripts ni SQL: no hay nada que subir a CloudShell) | Todos |
Antes de empezar
- Necesitas el Data Lake de 04.01 creado con la instancia EC2 (
CREATE_EC2=true, el valor por defecto; conCREATE_EC2=falseno hay panel). - Necesitas los datos de NYC de 04.03 NYC Taxi ya cargados (
./gestionar-nyc-taxi.sh). - Una red que deje abrir
http://...:8501. Regióneu-north-1.
Cómo llevar los ficheros a CloudShell
No hace falta: esta carpeta solo tiene este README. Puedes leerlo en tu PC.
Paso a paso
Paso 1 · Abrir el panel
- Copia
StreamlitURLde los Outputs (consola: CloudFormation > tu stack > Outputs; script de 04.01: opción 4 del menú o./gestionar-datalake.sh estado(la dirección cambia si la EC2 se ha parado y arrancado); o el ficherodatos.txt). Tiene la formahttp://<dns-de-la-instancia>:8501. - Ábrela en el navegador con
http://(nohttps). - Qué verás: la página «NYC Yellow Taxi - Data Lake Demo» con dos botones, «Abrir Dashboard Temporal» (cuatro KPI del mes, viajes por hora, tarifa media por hora y hora pico) y «Abrir Explorador de Rutas» (tabla de las rutas más frecuentes con un deslizador «Top N rutas» de 5 a 50 y un gráfico de dispersión de viajes frente a tarifa media). La portada solo anuncia lo que las páginas hacen: no hay análisis por día de la semana ni mapas. La barra lateral lista tres entradas (
app,app rutas,app temporal) y en ella eliges el mes. Si escribes la dirección a mano, las páginas sonhttp://<dns>:8501/app_temporalyhttp://<dns>:8501/app_rutas(no/temporal: da «Page not found»). - Los números del panel no coinciden con los de Athena sobre la tabla raw: el panel descarta los viajes con distancia, tarifa o duración no positivas (por ejemplo, en septiembre de 2025 el panel cuenta 3.838.405 viajes y la tabla raw, 4.251.015).
Si no carga justo después de crear el stack, espera unos minutos: la instancia sigue instalando programas cuando el stack ya figura como creado. Si sale «No hay datos», ejecuta antes ./gestionar-nyc-taxi.sh (04.03).
Paso 2 · Entender la seguridad del panel
El panel abre el puerto 8501 a Internet sin contraseña (por defecto a cualquiera, 0.0.0.0/0) y no abre el 22: la instancia no tiene clave SSH. Para limitarlo a tu ordenador, crea el stack con STREAMLIT_CIDR=<tu-ip>/32 ./gestionar-datalake.sh (tu IP pública, la de tu PC, que ves en https://checkip.amazonaws.com; no la de CloudShell). Eso se decide al crear el stack, en 04.01.
Paso 3 · El usuario DataLakeAdmin (seguridad)
La plantilla puede crear un usuario IAM llamado DataLakeAdmin con permisos de administrador sobre TODA tu cuenta, con una contraseña fija (la misma para todos) y una clave de acceso cuya parte secreta saldría en los Outputs y en datos.txt. Era una comodidad para una demostración en clase y es un riesgo en una cuenta real, así que ahora no se crea: el parámetro CreateDemoAdminUser vale false por defecto, el script gestionar-datalake.sh no lo cambia y el laboratorio funciona con tu propia sesión.
- Para comprobar que no existe: IAM > Users no debe listar
DataLakeAdmin, y los Outputs del stack no deben incluirDataLakeAdminPasswordni las claves. - Solo existirá si, a propósito, creas el stack desde la consola con
CreateDemoAdminUser=true. No lo hagas salvo que tu docente te lo pida para una demostración. - Si lo activaste: no inicies sesión con él, no compartas capturas de los Outputs ni subas
datos.txta ningún sitio, y desaparece cuando eliminas el stack. Para reducir el riesgo mientras dure: IAM > Users >DataLakeAdmin> Security credentials: desactiva la clave de acceso (Deactivate) y cambia la contraseña de consola. No borres el usuario a mano; deja que lo borre el stack.
Errores frecuentes
| Qué ves | Causa | Solución |
|---|---|---|
| La URL de Streamlit no carga | La instancia aún se está preparando, el navegador fuerza https, o tu red bloquea el puerto 8501 |
Espera unos minutos, usa http://, y prueba desde otra red. /temporal da «Page not found»: usa /app_temporal |
| «No hay datos» en el panel | No has cargado NYC Taxi | Ejecuta ./gestionar-nyc-taxi.sh (04.03) |
No hay StreamlitURL en los Outputs |
El stack se creó con CREATE_EC2=false |
Es normal; el panel es opcional |
| Los números no coinciden con Athena | El panel descarta viajes con distancia, tarifa o duración no positivas | Es lo esperado (paso 1, punto 4) |
Limpieza
Solo lo de esta actividad (el stack NO se borra aquí: se borra al final del Tema 4 desde 04.01, y debe ser lo último):
- Apaga la instancia si vas a conservar el stack unos días: se apaga sola a las 4 horas, o antes con EC2 > Instances > selecciona
g214-datalake-demo-demo-ec2> Instance state > Stop. Para arrancarla y ampliar el plazo,./gestionar-datalake.sh crear(la dirección pública del panel cambia:estadola muestra). Detenida deja de costar por hora de cómputo (el disco sigue costando céntimos). - Si vas a borrar el stack, no hace falta: la instancia se borra con él.
- Si activaste
DataLakeAdmin, se va con el stack; mientras tanto, aplica las medidas del paso 3.
Cómo sabes que has terminado
- [ ] Has abierto el panel con
http://y has visto el Dashboard Temporal y el Explorador de Rutas (o sabes que tu stack se creó sin EC2). - [ ] Sabes explicar por qué los números del panel no coinciden con los de la tabla raw.
- [ ] IAM > Users no lista
DataLakeAdmin. - [ ] Has apagado la instancia EC2 o tienes claro que la borrará el stack al final.
Anterior: 04.06 Optimizar y presupuesto · Siguiente: ninguna. Vuelve a 04.01 · Limpieza final para borrar el stack.