Comando de IA: escrever regras de segurança do Firebase

Esse comando pode ajudar seu assistente de IA, como o Gemini CLI, a gerar e refinar Firebase Security Rules para seu app. Use o comando para criar Security Rules para casos de uso comuns, como conceder acesso específico do usuário, implementar permissões baseadas em papéis e validar dados.

Esse comando se concentra na geração de Security Rules para:

  • Cloud Firestore: protege coleções e documentos com base na lógica do seu app.
  • Cloud Storage for Firebase: valida as permissões de acesso aos arquivos armazenados.

Usar esse comando pode ajudar você a começar com uma postura de segurança forte, mas sempre teste seu Security Rules antes de implantar na produção. Para mais informações sobre como testar o Security Rules, consulte Começar a usar o Firebase Security Rules: testar suas Security Rules.

Pré-requisitos

Limitações

Estamos trabalhando para melhorar essa experiência, então essa lista de limitações pode mudar. Volte a esta página para ver se há novidades.

  • O comando foi criado para gerar Firebase Security Rules para Cloud Firestore e Cloud Storage for Firebase. Ele ainda não é capaz de gerar Security Rules para Firebase Realtime Database.

  • Firebase Security Rules não são chamados ao acessar seu banco de dados ou bucket de um servidor ou outro ambiente de back-end, como ao usar o Firebase Admin SDK. Se você estiver usando o Admin SDK, será responsável por gerenciar a autorização e a validação de dados no código do back-end.

  • O Gemini no Firebase no console do Firebase não consegue gerar Firebase Security Rules, mesmo usando esse comando. Em vez disso, use um assistente de IA alternativo que tenha acesso à sua base de código, como o Gemini CLI (descrito nesta página).

Usar o comando

Esse comando está disponível na extensão Gemini CLI para Firebase Security Rules e gera seus Security Rules e testes. Essa extensão analisa seu código-fonte para ajudar a identificar esquemas de dados e padrões de acesso para Cloud Firestore e Cloud Storage. Ele foi projetado para criar Security Rules com base no princípio de privilégio mínimo e tenta descobrir vulnerabilidades por simulações iterativas de "ataque". Para ajudar na verificação final, ele fornece um pacote de testes de unidade inicial usando @firebase/rules-unit-testing, permitindo que você verifique sua lógica de segurança localmente usando o Firebase Local Emulator Suite.

Para usar essa extensão, siga três etapas descritas nesta seção:

  1. Gere seu Security Rules e testes.

  2. Analise os resultados da validação e do teste de Security Rules.

  3. Implante Security Rules no seu projeto do Firebase.

Etapa 1: gerar Security Rules e testes

Instale e execute a extensão:

  1. Instalar a extensão Gemini CLI:

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

    gemini
  3. Na raiz do projeto, execute a extensão para gerar Security Rules para Cloud Firestore ou Cloud Storage:

    • Gerar Security Rules para Cloud Firestore:

      /firebase-rules:firestore Generate Firebase Security Rules using PROJECT ID PROJECT_ID

      No diretório principal, a extensão cria um arquivo firestore.rules e um novo diretório rules_test que contém um projeto Node.js com testes de unidade para o Security Rules gerado.

    • Gerar Security Rules para Cloud Storage for Firebase:

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

      No diretório principal, a extensão cria um arquivo storage.rules e um novo diretório storage_rules_test que contém um projeto Node.js com testes de unidade para o Security Rules gerado.

Etapa 2: revisar a validação e os resultados do teste de Security Rules

  1. Verifique se o assistente de IA fez o seguinte. Você vai receber um resumo gerado depois que a extensão for executada.

    • Validação de sintaxe: depois de gerar Security Rules, a Gemini CLI valida automaticamente a sintaxe usando o comando firebase_validate_security_rules do servidor MCP do Firebase.

    • Testes de unidade: depois de validar a sintaxe, o Gemini CLI tenta executar os testes de unidade gerados usando o Firebase Local Emulator Suite.

  2. Se os testes não forem executados automaticamente, inicie o Firebase Local Emulator Suite em um terminal separado e use uma das seguintes opções para executar os testes:

    • Opção 1: instruir o Gemini CLI a executar testes:

      Firebase Emulator Suite is running in a separate terminal. Please execute the tests.
      
    • Opção 2: execute os testes manualmente seguindo as instruções no arquivo README.md no diretório rules_test ou storage_rules_test.

Etapa 3: implante Security Rules no seu Projeto do Firebase

Quando o resultado das Security Rules geradas for satisfatório, use os seguintes comandos da CLI do Firebase para implantar as Security Rules no seu Projeto do Firebase:

  • Cloud Firestore

    firebase deploy --only firestore:rules
  • Cloud Storage for Firebase

    firebase deploy --only storage

Outros recursos

  • Para mais ajuda com sua postura de segurança, use a extensão de segurança para Gemini CLI, uma extensão de código aberto que analisa mudanças no código para identificar riscos de segurança e vulnerabilidades.