Instrucción de IA: Escribe reglas de seguridad de Firebase

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

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:

  1. Genera tus Security Rules y pruebas.

  2. Revisa la validación de las Security Rules y los resultados de las pruebas.

  3. Implementa las Security Rules en tu proyecto de Firebase.

Paso 1: Genera Security Rules y pruebas

Instala y ejecuta la extensión:

  1. Instala la extensión de Gemini CLI.

    gemini extensions install https://github.com/firebase/snippets-rules
  2. Inicia Gemini CLI:

    gemini
  3. Desde 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_ID

      En el directorio principal, la extensión crea un archivo firestore.rules y un nuevo directorio rules_test que 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_NAME

      En el directorio principal, la extensión crea un archivo storage.rules y un nuevo directorio storage_rules_test que 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

  1. 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_rules del 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.

  2. 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.md en el directorio rules_test o storage_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:rules
  • Cloud 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.