Yapay Zeka İstemleri: Firebase Güvenlik Kuralları Yazma

Bu istem, yapay zeka asistanınızın (ör. Gemini CLI) uygulamanız için Firebase Security Rules oluşturmasına ve iyileştirmesine yardımcı olabilir. İstemden, kullanıcıya özel erişim verme, role dayalı izinler uygulama ve verileri doğrulama gibi yaygın kullanım alanları için Security Rules taslağı oluşturmak üzere yararlanabilirsiniz.

Bu istem, Security Rules için içerik oluşturmaya odaklanır:

  • Cloud Firestore: Uygulamanızın mantığına göre koleksiyonları ve dokümanları güvenli hale getirin.
  • Cloud Storage for Firebase: Depolanan dosyalarınızın erişim izinlerini doğrulayın.

Bu istemi kullanmak, güçlü bir güvenlik duruşuyla başlamanıza yardımcı olabilir ancak üretime dağıtmadan önce Security Rules öğenizi her zaman kapsamlı bir şekilde test etmeniz gerekir. Security Rules'ı test etme hakkında daha fazla bilgi için Firebase Security Rules'ı kullanmaya başlama: Security Rules'ı test etme başlıklı makaleyi inceleyin.

Ön koşullar

Sınırlamalar

Bu deneyimi iyileştirmek için çalışmalarımız devam ediyor. Bu nedenle, sınırlamaların listesi değişebilir. Güncellemeler için sık sık tekrar kontrol edin.

  • İstem, Cloud Firestore ve Cloud Storage for Firebase için Firebase Security Rules oluşturacak şekilde tasarlanmıştır. Henüz Firebase Realtime Database için Security Rules oluşturamıyor.

  • Firebase Security Rules, veritabanınıza veya paketinize bir sunucudan ya da başka bir arka uç ortamından erişilirken (ör. Firebase Admin SDK kullanılırken) çağrılmaz. Admin SDK kullanıyorsanız yetkilendirme ve veri doğrulama işlemlerini arka uç kodunuzda yönetmekten siz sorumlusunuz.

  • Firebase konsolundaki Gemini, Firebase bu istem kullanıldığında bile Firebase Security Rules oluşturamıyor. Bunun yerine, Gemini CLI (bu sayfada açıklanmıştır) gibi kod tabanınıza erişimi olan alternatif bir yapay zeka asistanı kullanın.

İstemi kullanma

Bu istem, Security Rules ve testlerinizi oluşturmak için Firebase Security Rules'e yönelik Gemini CLI uzantısında kullanılabilir. Bu uzantı, Cloud Firestore ve Cloud Storage için veri şemalarını ve erişim kalıplarını belirlemenize yardımcı olmak amacıyla kaynak kodunuzu analiz eder. En az ayrıcalık ilkesine göre Security Rules oluşturmak üzere tasarlanmıştır ve yinelemeli "saldırı" simülasyonları aracılığıyla güvenlik açıklarını ortaya çıkarmaya çalışır. Son doğrulamaya yardımcı olmak için @firebase/rules-unit-testing kullanan bir başlangıç birimi test paketi sağlar. Bu sayede, Firebase Local Emulator Suite kullanarak güvenlik mantığınızı yerel olarak doğrulayabilirsiniz.

Bu uzantıyı kullanmak için bu bölümde açıklanan üç adımı uygulamanız gerekir:

  1. Security Rules ve testlerinizi oluşturun.

  2. Security RulesDoğrulama ve test sonuçlarını inceleyin.

  3. Security Rules öğesini Firebase projenize dağıtın.

1. adım: Security Rules ve testler oluşturun

Uzantıyı yükleyip çalıştırma:

  1. Gemini CLI uzantısını yükleyin:

    gemini extensions install https://github.com/firebase/snippets-rules
  2. Başlangıç Gemini CLI:

    gemini
  3. Projenizin kökünden uzantıyı çalıştırarak Security Rules oluşturun (Cloud Firestore veya Cloud Storage için):

    • Cloud Firestore için Security Rules oluşturun:

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

      Uzantı, üst dizinde bir firestore.rules dosyası ve oluşturulan Security Rules için birim testleri içeren bir Node.js projesi barındıran yeni bir rules_test dizini oluşturur.

    • Cloud Storage for Firebase için Security Rules oluşturun:

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

      Uzantı, üst dizinde bir storage.rules dosyası ve oluşturulan Security Rules için birim testleri içeren bir Node.js projesi barındıran yeni bir storage_rules_test dizini oluşturur.

2. adım: Security Rules doğrulama ve test sonuçlarını inceleyin

  1. Yapay zeka asistanınızın aşağıdakileri yaptığından emin olun. Uzantı çalıştırıldıktan sonra oluşturulmuş bir özet alırsınız.

    • Söz dizimi doğrulama: Security Rules oluşturulduktan sonra Gemini CLI, Firebase MCP sunucusundaki firebase_validate_security_rules komutunu kullanarak söz dizimini otomatik olarak doğrular.

    • Birim testleri: Söz dizimi doğrulandıktan sonra Gemini CLI, Firebase Local Emulator Suite kullanarak oluşturulan birim testlerini çalıştırmaya çalışır.

  2. Testler otomatik olarak çalışmıyorsa, Firebase Local Emulator Suite'ı ayrı bir terminalde başlatın, ardından testleri çalıştırmak için aşağıdaki seçeneklerden birini kullanın:

    • 1. seçenek: Gemini CLI'ya testleri çalıştırmasını söyleyin:

      Firebase Emulator Suite is running in a separate terminal. Please execute the tests.
      
    • 2. seçenek: rules_test veya storage_rules_test dizinindeki README.md dosyasındaki talimatları uygulayarak testleri manuel olarak çalıştırın.

3. adım: Security Rules öğesini Firebase projenize dağıtın

Oluşturulan Security Rules sonucundan memnun kaldığınızda Security Rules'yı Firebase projenize dağıtmak için aşağıdaki Firebase KSA komutlarını kullanın:

  • Cloud Firestore

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

    firebase deploy --only storage

Ek kaynaklar

  • Güvenlik durumunuzla ilgili ek yardım için Gemini CLI için güvenlik uzantısını da kullanabilirsiniz. Bu açık kaynaklı uzantı, güvenlik risklerini ve güvenlik açıklarını belirlemek için kod değişikliklerini analiz eder.