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 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: Kayıtlı 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 uygulamanızı 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
- Firebase Security Rules En iyi uygulamalar hakkında bilgi edinin.
- Firebase Security Rules için birim testleri çalıştırmak ve Firebase Local Emulator Suite kullanmak için Node.js'yi ve Firebase CLI'yı yükleyin. Talimatların tamamı için Firebase Local Emulator Suite yükleme, yapılandırma ve entegre etme başlıklı makaleyi inceleyin.
- Önerilen: Henüz yapmadıysanız Gemini CLI'ı yükleyin.
Aşağıdaki talimatlarda, Gemini CLI için Firebase uzantısının nasıl yükleneceği ve kullanılacağı açıklanmaktadır. Bu uzantı, Security Rules oluşturmak için kullanılır. Başka bir yapay zeka asistanı kullanmayı tercih ederseniz Cloud Firestore veya Cloud Storage for Firebase için istemi
firebase-toolsdeposundan kopyalayıp seçtiğiniz yapay zeka asistanına yapıştırabilirsiniz. - Gemini CLI için Firebase uzantısı, Firebase Security Rules oluşturup doğrulayan istemlere erişmek ve Security Rules'nin test edilmesi ve dağıtılmasına yardımcı olmak için Firebase MCP sunucusuna bağlanır. Uzantıyı kullanarak Firebase Security Rules oluşturmadan önce Firebase MCP sunucusunu yükleyin.
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 GeminiFirebase, bu istem kullanıldığında bile Firebase Security Rules oluşturamıyor. Bunun yerine, kod tabanınıza erişimi olan alternatif bir yapay zeka asistanı (ör. bu sayfada açıklanan Gemini CLI) kullanın.
İstemi kullanma
Bu istem, Security Rules ve testlerinizi oluşturmak için Security Rules Gemini CLI Security Rules uzantısındaki Security Rules özelliği aracılığıyla 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. Bu araç, 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:
Security RulesDoğrulama ve test sonuçlarını inceleyin.
1. adım: Security Rules ve testler oluşturun
Uzantıyı yükleyip çalıştırma:
Gemini CLI için Firebase uzantısını yükleyin:
gemini extensions install https://github.com/gemini-cli-extensions/firebaseBaşlangıç Gemini CLI:
geminiProjenizin kökünden uzantıyı çalıştırarak Security Rules oluşturun. Bu işlem Cloud Firestore veya Cloud Storage için yapılabilir:
Cloud Firestore için Security Rules oluşturun:
/firestore:generate_security_rulesUzantı, üst dizinde
firestore.rulesdosyası ve oluşturulan Security Rules için birim testleri içeren bir Node.js projesi barındıran yeni birsecurity_rules_test_firestoredizini oluşturur.Cloud Storage for Firebase için Security Rules oluşturun:
/storage:generate_security_rulesUzantı, üst dizinde bir
storage.rulesdosyası ve oluşturulan Security Rules için birim testleri içeren bir Node.js projesi barındıran yeni birsecurity_rules_test_storagedizini oluşturur.
2. adım: Security Rules doğrulama ve test sonuçlarını inceleyin
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_ruleskomutunu 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ırmayı dener.
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 test çalıştırması talimatı verin:
Firebase Emulator Suite is running in a separate terminal. Please execute the tests.2. seçenek:
rules_testveyastorage_rules_testdizinindekiREADME.mddosyasında yer alan 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:rulesCloud 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.