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 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 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 Rules de forma exhaustiva antes de implementarlas en producción. Para obtener más información sobre cómo probar las Rules, consulta Primeros pasos con las Firebase Security Rules: Prueba tus reglas.

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.

  • Gemini en Firebase no puede generar Firebase Security Rules. Usa un asistente de IA alternativo, como Gemini CLI.
  • La instrucción está diseñada para generar Firebase Security Rules para Cloud Firestore y Cloud Storage for Firebase. Aún no puede generar 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.

Cómo usar la instrucción

  1. Usa la extensión experimental de Gemini CLI para Firebase Security Rules y genera tus reglas 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 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 instalar y usar la extensión, sigue estos pasos:

    1. Instala la extensión de Gemini CLI.

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

      gemini
      
    1. Desde la raíz de tu proyecto, ejecuta la extensión para generar reglas para Cloud Firestore:

      /firebase-rules:firestore Generate rules using PROJECT ID PROJECT_ID
      

      O bien genera reglas para Cloud Storage:

      /firebase-rules:storage Generate rules using PROJECT ID PROJECT_ID and BUCKET NAME BUCKET_NAME
      

    La extensión crea un directorio rules_test para Cloud Firestore o un directorio storage_rules_test para Cloud Storage en la raíz del proyecto. Este nuevo directorio contiene el archivo .rules generado junto con un proyecto de Node.js con pruebas de unidades.

  2. Revisa la validación de reglas y los resultados de las pruebas:

    • Validación de sintaxis: Después de generar reglas, 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. Para que se ejecuten las pruebas, debes ejecutar Firebase Local Emulator Suite en una terminal separada.

    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:

    *   Instruct Gemini CLI to run tests:
        ```none
        Firebase Emulator Suite is running in a separate terminal. Please
        execute the tests.
        ```
    *   Run tests manually by following the instructions in the `README.md`
        file in the `rules_test` or `storage_rules_test` directory.
    
  3. Cuando estés conforme con el resultado de tus Rules generadas, usa el siguiente comando de Firebase CLI para implementar las Rules.

    Cloud Firestore

    firebase deploy --only firestore:rules

    Cloud Storage

    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.