Esta instrucción puede ayudar a tu asistente de IA (como Gemini CLI) a generar y definir mejor Firebase Security Rules para tu app. Puedes usar la instrucción para crear borradores de Security Rules para casos de uso comunes, como otorgar acceso específico para usuarios, implementar permisos basados en roles y validar datos.
Esta instrucción se enfoca en generar Security Rules para lo siguiente:
- Cloud Firestore: Protege las colecciones y los documentos según la lógica de tu app.
- Cloud Storage for Firebase: Valida los permisos de acceso a tus archivos almacenados.
Usar esta instrucción puede ayudarte a comenzar con una postura de seguridad sólida, pero siempre debes probar tus Security Rules de forma exhaustiva antes de implementarlas en producción. Para obtener más información sobre cómo probar las Security Rules, consulta Primeros pasos con las Firebase Security Rules: Prueba tus Security Rules.
Requisitos previos
- Familiarízate con las prácticas recomendadas de las Firebase Security Rules.
- Para ejecutar pruebas de unidades de Firebase Security Rules y usar Firebase Local Emulator Suite, instala Node.js y Firebase CLI. Para obtener instrucciones completas, consulta Instala, configura e integra Firebase Local Emulator Suite.
- Recomendación: Si aún no lo has hecho, instala Gemini CLI. En las siguientes instrucciones, se explica cómo instalar y usar una extensión de Gemini CLI para generar Security Rules. Si prefieres usar otro asistente de IA, puedes copiar y pegar la instrucción del repositorio de la extensión en el asistente de IA que elijas.
- Esta extensión de Gemini CLI usa el servidor de MCP de Firebase para validar las Firebase Security Rules que genera. El servidor de MCP también se puede usar para facilitar las pruebas y la implementación de tus Security Rules. Instala el servidor de MCP de Firebase antes de usar la extensión para generar Firebase Security Rules.
Limitaciones
Estamos mejorando activamente esta experiencia, por lo que esta lista de limitaciones puede cambiar. Vuelve a consultarla con frecuencia para enterarte de las novedades.
La instrucción está diseñada para generar Firebase Security Rules para Cloud Firestore y Cloud Storage for Firebase. Aún no puede generar Security Rules para Firebase Realtime Database.
No se llama a las Firebase Security Rules cuando se accede a tu base de datos o bucket desde un servidor o cualquier otro entorno de backend, como cuando se usa el Firebase Admin SDK. Si usas el Admin SDK, eres responsable de administrar la autorización y la validación de datos en tu código de backend.
Gemini en Firebase dentro de Firebase console no puede generar Firebase Security Rules, incluso cuando se usa esta instrucción. En su lugar, usa un asistente de IA alternativo que tenga acceso a tu base de código, como Gemini CLI (que se describe en esta página).
Cómo usar la instrucción
Esta instrucción está disponible en la extensión de Gemini CLI para Firebase Security Rules para generar tus Security Rules y pruebas. Esta extensión analiza tu código fuente para ayudarte a identificar esquemas de datos y patrones de acceso para Cloud Firestore y Cloud Storage. Está diseñada para redactar Security Rules según el principio de privilegio mínimo y trata de descubrir vulnerabilidades a través de simulaciones de "ataque" iterativas. Para ayudarte con la verificación final, proporciona un conjunto de pruebas de unidades iniciales con @firebase/rules-unit-testing, lo que te permite verificar tu lógica de seguridad de forma local con Firebase Local Emulator Suite.
Para usar esta extensión, se requieren tres pasos que se describen en esta sección:
Paso 1: Genera Security Rules y pruebas
Instala y ejecuta la extensión:
Instala la extensión de Gemini CLI.
gemini extensions install https://github.com/firebase/snippets-rulesInicia Gemini CLI:
geminiDesde la raíz de tu proyecto, ejecuta la extensión para generar Security Rules para Cloud Firestore o Cloud Storage:
Genera Security Rules para Cloud Firestore:
/firebase-rules:firestore Generate Firebase Security Rules using PROJECT ID PROJECT_IDEn el directorio principal, la extensión crea un archivo
firestore.rulesy un nuevo directoriorules_testque contiene un proyecto de Node.js con pruebas de unidades para las Security Rules generadas.Genera Security Rules para Cloud Storage for Firebase:
/firebase-rules:storage Generate Firebase Security Rules using PROJECT ID PROJECT_ID and BUCKET NAME BUCKET_NAMEEn el directorio principal, la extensión crea un archivo
storage.rulesy un nuevo directoriostorage_rules_testque contiene un proyecto de Node.js con pruebas de unidades para las Security Rules generadas.
Paso 2: Revisa la validación de las Security Rules y los resultados de las pruebas
Asegúrate de que tu asistente de IA haga lo siguiente. Deberías obtener un resumen generado después de que se ejecute la extensión.
Validación de sintaxis: Después de generar Security Rules, Gemini CLI valida automáticamente la sintaxis con el comando
firebase_validate_security_rulesdel servidor de MCP de Firebase.Pruebas de unidades: Después de validar la sintaxis, Gemini CLI intenta ejecutar las pruebas de unidades generadas con Firebase Local Emulator Suite.
Si las pruebas no se ejecutan automáticamente, inicia Firebase Local Emulator Suite en una terminal separada y, luego, usa una de las siguientes opciones para ejecutar las pruebas:
Opción 1: Indícale a Gemini CLI que ejecute pruebas:
Firebase Emulator Suite is running in a separate terminal. Please execute the tests.Opción 2: Ejecuta las pruebas de forma manual siguiendo las instrucciones del archivo
README.mden el directoriorules_testostorage_rules_test.
Paso 3: Implementa Security Rules en tu proyecto de Firebase
Cuando estés conforme con el resultado de tus Security Rules generadas, usa los siguientes comandos de Firebase CLI para implementar las Security Rules en tu proyecto de Firebase:
Cloud Firestore
firebase deploy --only firestore:rulesCloud Storage for Firebase
firebase deploy --only storage
Recursos adicionales
- Para obtener ayuda adicional con tu postura de seguridad, también puedes usar la extensión de seguridad para Gemini CLI, una extensión de código abierto que analiza los cambios de código para identificar riesgos y vulnerabilidades de seguridad.