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
- 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 üzere Node.js 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 uygulamasını yükleyin. Aşağıdaki talimatlarda, Gemini CLI eklentisinin nasıl yükleneceği ve Security Rules oluşturmak için nasıl kullanılacağı açıklanmaktadır. Başka bir yapay zeka asistanı kullanmayı tercih ederseniz istemi uzantının deposundan kopyalayıp seçtiğiniz yapay zeka asistanına yapıştırabilirsiniz.
- Bu Gemini CLI uzantısı, oluşturduğu Firebase Security Rules öğesini doğrulamak için Firebase MCP sunucusunu kullanır. MCP sunucusu, Security Rules'nizin daha kolay test edilmesi ve dağıtılması için de kullanılabilir. 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 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:
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 uzantısını yükleyin:
gemini extensions install https://github.com/firebase/snippets-rulesBaşlangıç Gemini CLI:
geminiProjenizin 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_IDUzantı, üst dizinde bir
firestore.rulesdosyası ve oluşturulan Security Rules için birim testleri içeren bir Node.js projesi barındıran yeni birrules_testdizini 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_NAMEUzantı, üst dizinde bir
storage.rulesdosyası ve oluşturulan Security Rules için birim testleri içeren bir Node.js projesi barındıran yeni birstorage_rules_testdizini 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ırmaya çalışır.
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_testveyastorage_rules_testdizinindekiREADME.mddosyası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: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.