Cloud Firestore Güvenlik Kuralları ile altyapıyı yönetmek veya sunucu tarafı kimlik doğrulama ve yetkilendirme kodu yazmak zorunda kalmadan mükemmel bir kullanıcı deneyimi oluşturmaya odaklanabilirsiniz.
Güvenlik kuralları, basit ama anlaşılır bir biçimde erişim kontrolü ve veri doğrulama sağlar. Kullanıcılarınızın verilerini güvende tutan kullanıcı tabanlı ve rol tabanlı erişim sistemleri oluşturmak için Cloud Firestore Güvenlik Kuralları ile Firebase Authentication kullanmanız gerekir.
Güvenlik kuralları sürüm 2
Mayıs 2019 itibariyle, Cloud Firestore güvenlik kurallarının 2. sürümü kullanıma sunulmuştur. Kuralların 2. sürümü, yinelemeli joker karakterlerin davranışını değiştirir {name=**}
. Koleksiyon grubu sorgularını kullanmayı planlıyorsanız, sürüm 2'yi kullanmalısınız. rules_version = '2';
güvenlik kurallarınızdaki ilk satır:
rules_version = '2';
service cloud.firestore {
match /databases/{database}/documents {
Yazma kuralları
Tüm Cloud Firestore Güvenlik Kuralları, veritabanınızdaki belgeleri tanımlayan ve bu belgelere erişimi kontrol eden ifadelere allow
match
ifadelerinden oluşur:
service cloud.firestore {
match /databases/{database}/documents {
match /<some_path>/ {
allow read, write: if <some_condition>;
}
}
}
Bir Cloud Firestore mobil/web istemci kitaplığından gelen her veritabanı isteği, herhangi bir veri okumadan veya yazmadan önce güvenlik kurallarınıza göre değerlendirilir. Kurallar, belirtilen belge yollarından herhangi birine erişimi reddederse, isteğin tamamı başarısız olur.
Aşağıda temel kural setlerinin bazı örnekleri verilmiştir. Bu kurallar geçerli olmakla birlikte, üretim uygulamaları için önerilmez:
Kimlik doğrulama gerekli
// Allow read/write access on all documents to any user signed in to the application
service cloud.firestore {
match /databases/{database}/documents {
match /{document=**} {
allow read, write: if request.auth != null;
}
}
}
Hepsini inkar etmek
// Deny read/write access to all users under any conditions
service cloud.firestore {
match /databases/{database}/documents {
match /{document=**} {
allow read, write: if false;
}
}
}
Hepsine izin ver
// Allow read/write access to all users under any conditions
// Warning: **NEVER** use this rule set in production; it allows
// anyone to overwrite your entire database.
service cloud.firestore {
match /databases/{database}/documents {
match /{document=**} {
allow read, write: if true;
}
}
}
Yukarıdaki örneklerde kullanılan {document=**}
yolu, veritabanının tamamındaki herhangi bir belgeyle eşleşir. Belirli veri yollarının nasıl eşleştirileceğini ve hiyerarşik verilerle nasıl çalışılacağını öğrenmek için güvenlik kurallarını yapılandırma kılavuzuna devam edin.
Test kuralları
Cloud Firestore, kural kümenizi test etmek için kullanabileceğiniz bir kural simülatörü sağlar. Simülatöre, Firebase konsolunun Cloud Firestore bölümündeki Kurallar sekmesinden erişebilirsiniz.
Kural simülatörü, kimliği doğrulanmış ve kimliği doğrulanmamış okumaları, yazmaları ve silmeleri simüle etmenizi sağlar. Kimliği doğrulanmış bir isteği simüle ettiğinizde, çeşitli sağlayıcılardan kimlik doğrulama belirteçleri oluşturabilir ve bunları önizleyebilirsiniz. Simüle edilmiş istekler, şu anda dağıtılan kural kümenize değil, düzenleyicinizdeki kural kümesine göre çalışır.
Kuralları dağıtma
Cloud Firestore'u mobil uygulamanızdan kullanmaya başlamadan önce güvenlik kurallarını dağıtmanız gerekir. Kuralları Firebase konsolunda veya Firebase CLI'yi kullanarak dağıtabilirsiniz.
Cloud Firestore Güvenlik Kurallarında yapılan güncellemelerin yeni sorguları ve dinleyicileri etkilemesi bir dakika kadar sürebilir. Ancak, değişikliklerin tam olarak yayılması ve etkin dinleyicilerin etkilenmesi 10 dakika kadar sürebilir.
Firebase konsolunu kullanın
İlk kural kümenizi oluşturmak ve dağıtmak için Firebase konsolunun Cloud Firestore bölümündeki Kurallar sekmesini açın.
Çevrimiçi düzenleyicide kurallarınızı yazın, ardından Yayınla'yı tıklayın.
Firebase CLI'yi kullanın
Kuralları Firebase CLI kullanarak da dağıtabilirsiniz. CLI'yi kullanmak, uygulama kodunuzla kurallarınızı sürüm kontrolü altında tutmanıza ve mevcut dağıtım sürecinizin bir parçası olarak kuralları dağıtmanıza olanak tanır.
// Set up Firestore in your project directory, creates a .rules file
firebase init firestore
// Edit the generated .rules file to your desired security rules
// ...
// Deploy your .rules file
firebase deploy --only firestore:rules
Bulut Depolama için güvenliği artırın
Uygulamalarınız, Cloud Firestore'un güçlü veritabanı özelliklerinden ve Cloud Storage'ın dosya depolama ve yönetim özelliklerinden faydalanacaktır. Cloud Firestore, Firebase Güvenlik Kuralları tarafından her iki ürün için kullanılabilen yetkilendirme gereksinimlerini yakalayabildiğinden, bu ürünler birlikte kullanıldığında uygulama güvenliğini de güçlendirir. Daha fazla bilgi için Bulut Depolama kılavuzuna bakın.
Sonraki adımlar
- Güvenlik kurallarını nasıl yapılandıracağınızı öğrenin.
- Özel güvenlik kuralları koşulları yazın.
- Güvenlik kuralları referansını okuyun.