Repository navigation
Seguridad
🇬🇧 English
Comunica las vulnerabilidades de forma privada mediante los avisos de seguridad de GitHub, no en issues públicas.
- Las credenciales de la nube y de la base de datos permanecen en el servidor. El navegador solo habla con las APIs del backend.
- En Azure, todos los componentes usan identidades administradas; el código no contiene secretos.
- Los secretos locales viven en
.env,iac/.env,iac/.azure/*.local.jsonyfunctions/local.settings.json, todos ignorados por Git.
| Identidad | Permisos |
|---|---|
| Function colectora | Reader en las suscripciones inventariadas; escritura en sus propios contenedores de Storage. |
| Web |
Lectura de blobs, DML en PostgreSQL, Inventory.Generate en la API de la Function, Cost Management Reader, lectura de métricas y gestión limitada de la Function para Administración. |
| Web (Miembros, opcional) | Solo el permiso de aplicación User.Read.All de Microsoft Graph. |
| Migrador | El único proceso con DDL en PostgreSQL. |
El colector solo lee la configuración de los recursos. Nunca lee contenido de blobs, datos de bases de datos, secretos de Key Vault, claves de cuentas ni cadenas de conexión.
- Las páginas y APIs de datos están protegidas en el servidor. Una configuración inválida bloquea el acceso en lugar de pasar a modo público.
- Las sesiones son cookies JWT
HttpOnlyySameSite=Laxque caducan a las 8 horas. - Los roles de Goliat se vuelven a comprobar en el servidor en cada petición.
- La Function valida firma, emisor, tenant, audiencia, caducidad, cliente, tipo de token, scope y rol antes de leer el cuerpo de la petición.
- Las APIs de datos devuelven
Cache-Control: private, no-store. - Las respuestas incluyen
X-Content-Type-Options: nosniff,X-Frame-Options: SAMEORIGINy una política de referrer restrictiva. - Las peticiones que modifican estado exigen el mismo origen y un cuerpo JSON de tamaño limitado.
- El iframe del diagrama de arquitectura está aislado con sandbox.
Antes de enviar un token a Azure Resource Manager, FinOps valida origen, credenciales en la URL, ruta de la suscripción y ciclos de paginación. Aplica límites por proceso y devuelve 429 con Retry-After cuando se superan. Las suscripciones se fijan en el servidor; el navegador no puede enviar IDs ni endpoints.
Nunca se registran cuerpos, cookies, tokens, query strings ni SQL. Los errores externos solo conservan su tipo y código.
La web y el colector usan ahora @azure/identity 4.14.1 con @azure/msal-node 7.1.2 corregido, resolviendo GHSA-xcx6-jx8p-x3h5. Se han actualizado ambos lockfiles. Mantén actualizados los dos proyectos; una auditoría limpia no garantiza la ausencia de vulnerabilidades.
- Valida el tenant, los permisos, el TLS de PostgreSQL y la identidad de Azure del entorno.
- Define una política de retención para snapshots y blobs.
- Aplica las políticas de acceso condicional, MFA e invitados de tu organización. Los roles de Goliat no las sustituyen.
Goliat Cloud Inventory · Home · Web / Website · Daniel J. Saldaña · Licencia no comercial / Noncommercial licence
Web / Website · Versiones / Releases
Español
- Arquitectura
- Primeros pasos
- Configuración
- Autenticación y roles
- Despliegue en Azure
- Colector de inventario
- Vistas del inventario
- Costes FinOps
- Administración
- Contenedores Docker
- Desarrollo y pruebas
- Seguridad
- Solución de problemas
- Web del producto
English