Requête d'IA : écrire des règles de sécurité Firebase

Cette invite peut aider votre assistant IA, tel que Gemini CLI, à générer et à affiner Firebase Security Rules pour votre application. Vous pouvez utiliser l'invite pour rédiger Rules pour des cas d'utilisation courants, tels que l'octroi d'un accès spécifique à l'utilisateur, l'implémentation d'autorisations basées sur les rôles et la validation des données.

Cette requête vise à générer Rules pour :

  • Cloud Firestore : sécurisez les collections et les documents en fonction de la logique de votre application.
  • Cloud Storage for Firebase : validez les autorisations d'accès à vos fichiers stockés.

Cette requête peut vous aider à adopter une stratégie de sécurité solide, mais vous devez toujours tester minutieusement votre Rules avant de le déployer en production. Pour en savoir plus sur le test de Rules, consultez Premiers pas avec Firebase Security Rules : tester vos règles.

Prérequis

Limites

Nous mettons tout en œuvre pour améliorer cette fonctionnalité. Cette liste de limites est donc susceptible d'évoluer. Consultez cette page régulièrement pour vous tenir informé.

  • Gemini dans Firebase n'est pas en mesure de générer Firebase Security Rules. Utilisez un autre assistant IA, tel que Gemini CLI.
  • La requête est conçue pour générer Firebase Security Rules pour Cloud Firestore et Cloud Storage for Firebase. Il n'est pas encore capable de générer des Rules pour Firebase Realtime Database.
  • Firebase Security Rules ne sont pas appelées lorsque vous accédez à votre base de données ou à votre bucket depuis un serveur ou un autre environnement de backend, par exemple lorsque vous utilisez Firebase Admin SDK. Si vous utilisez Admin SDK, vous êtes responsable de la gestion de l'autorisation et de la validation des données dans votre code de backend.

Utiliser le prompt

  1. Utilisez l'extension expérimentale Gemini CLI pour Firebase Security Rules afin de générer vos règles et vos tests.

    Cette extension analyse votre code source pour vous aider à identifier les schémas de données et les modèles d'accès pour Cloud Firestore et Cloud Storage. Il est conçu pour rédiger des Rules en fonction du principe du moindre privilège et tente de découvrir les failles grâce à des simulations d'attaques itératives. Pour vous aider à effectuer la validation finale, il fournit une suite de tests unitaires de départ à l'aide de @firebase/rules-unit-testing, ce qui vous permet de valider votre logique de sécurité en local à l'aide de la suite d'émulateurs locaux Firebase.

    Pour installer et utiliser l'extension :

    1. Installez l'extension Gemini CLI :

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

      gemini
      
    1. À partir de la racine de votre projet, exécutez l'extension pour générer des règles pour Cloud Firestore :

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

      Vous pouvez également générer des règles pour Cloud Storage :

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

    L'extension crée un répertoire rules_test pour Cloud Firestore ou un répertoire storage_rules_test pour Cloud Storage dans la racine de votre projet. Ce nouveau répertoire contient le fichier .rules généré, ainsi qu'un projet Node.js avec des tests unitaires.

  2. Examinez la validation des règles et les résultats des tests :

    • Validation de la syntaxe : après avoir généré des règles, Gemini CLI valide automatiquement la syntaxe à l'aide de la commande firebase_validate_security_rules du serveur Firebase MCP.
    • Tests unitaires : après avoir validé la syntaxe, Gemini CLI tente d'exécuter les tests unitaires générés à l'aide de Firebase Local Emulator Suite. Pour que les tests s'exécutent, vous devez exécuter Firebase Local Emulator Suite dans un terminal distinct.

    Si les tests ne s'exécutent pas automatiquement, démarrez Firebase Local Emulator Suite dans un terminal distinct, puis utilisez l'une des options suivantes pour exécuter les tests :

    *   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. Lorsque vous êtes satisfait du résultat de votre Rules généré, utilisez la commande CLI Firebase suivante pour déployer le Rules.

    Cloud Firestore

    firebase deploy --only firestore:rules

    Cloud Storage

    firebase deploy --only storage

Autres ressources

  • Pour obtenir de l'aide supplémentaire concernant votre posture de sécurité, vous pouvez également utiliser l'extension de sécurité pour Gemini CLI, une extension Open Source qui analyse les modifications de code pour identifier les risques et les failles de sécurité.