Bu belgede, hangi yöntemler de dahil olmak üzere Firebase Realtime Database için denetleme günlüğü açıklanmaktadır denetleme günlüklerini, her yöntemin ürettiği denetleme günlükleriyle ilgili ayrıntıları ve denetleme günlüklerini oluşturmaz. Google Cloud Google Cloud kaynakları. Daha fazla bilgi için bkz. Cloud Denetleme Günlüklerine genel bakış.
Notlar
DATA_READ
ve DATA_WRITE
işlemleri için protoPayload.metadata
alanındaki alanlar hakkında ek bilgilere referans belgelerinden ulaşabilirsiniz.
Hizmet adı
Firebase Realtime Database denetleme günlükleri, firebasedatabase.googleapis.com
hizmet adını kullanır.
İzin türüne göre yöntemler
DATA_READ
, DATA_WRITE
ve kontrol özelliklerini kontrol eden yöntemler
ADMIN_READ
izinleri, şu kategorilere ayrılmış günlükler oluşturur:
Veri Erişimi denetleme günlükleri.
ADMIN_WRITE
izinlerini kontrol eden yöntemler günlük oluşturur
kategori:
Yönetici Etkinliği denetleme günlükleri.
İzin türü | Yöntemler |
---|---|
ADMIN_READ |
google.firebase.database.v1beta.RealtimeDatabaseService.GetDatabaseInstance google.firebase.database.v1beta.RealtimeDatabaseService.ListDatabaseInstances |
ADMIN_WRITE |
google.firebase.database.v1beta.RealtimeDatabaseService.CreateDatabaseInstance google.firebase.database.v1beta.RealtimeDatabaseService.DeleteDatabaseInstance google.firebase.database.v1beta.RealtimeDatabaseService.DisableDatabaseInstance google.firebase.database.v1beta.RealtimeDatabaseService.ReenableDatabaseInstance google.firebase.database.v1beta.RealtimeDatabaseService.UndeleteDatabaseInstance |
DATA_READ |
google.firebase.database.v1.RealtimeDatabase.Connect google.firebase.database.v1.RealtimeDatabase.Disconnect google.firebase.database.v1.RealtimeDatabase.Listen google.firebase.database.v1.RealtimeDatabase.OnDisconnectCancel google.firebase.database.v1.RealtimeDatabase.Read google.firebase.database.v1.RealtimeDatabase.Unlisten |
DATA_WRITE |
google.firebase.database.v1.RealtimeDatabase.OnDisconnectPut google.firebase.database.v1.RealtimeDatabase.OnDisconnectUpdate google.firebase.database.v1.RealtimeDatabase.RunOnDisconnect google.firebase.database.v1.RealtimeDatabase.Update google.firebase.database.v1.RealtimeDatabase.Write |
Her API arayüzü için denetleme günlükleri
Her yöntem için hangi izinlerin nasıl ve nasıl değerlendirildiği Firebase Realtime Database için Cloud Identity and Access Management belgelerini inceleyin.
google.firebase.database.v1.RealtimeDatabase
Aşağıdaki bölümde, aşağıdakilerle ilişkili denetleme günlükleriyle ilgili ayrıntılar verilmiştir:
yöntemleri google.firebase.database.v1.RealtimeDatabase
için geçerlidir.
Connect
- Yöntem:
google.firebase.database.v1.RealtimeDatabase.Connect
- Denetleme günlüğü türü: Veri erişimi
- İzinler:
firebasedatabase.data.connect - DATA_READ
- Yöntem uzun süreli veya akışlı bir işlemdir:
sayısı - Bu yöntem için filtre uygula:
protoPayload.methodName="google.firebase.database.v1.RealtimeDatabase.Connect"
Disconnect
- Yöntem:
google.firebase.database.v1.RealtimeDatabase.Disconnect
- Denetleme günlüğü türü: Veri erişimi
- İzinler:
firebasedatabase.data.connect - DATA_READ
- Yöntem uzun süreli veya akışlı bir işlemdir:
sayısı - Bu yöntem için filtre uygula:
protoPayload.methodName="google.firebase.database.v1.RealtimeDatabase.Disconnect"
Listen
- Yöntem:
google.firebase.database.v1.RealtimeDatabase.Listen
- Denetleme günlüğü türü: Veri erişimi
- İzinler:
firebasedatabase.data.get - DATA_READ
- Yöntem uzun süreli veya akışlı bir işlemdir:
sayısı - Bu yöntem için filtre uygula:
protoPayload.methodName="google.firebase.database.v1.RealtimeDatabase.Listen"
OnDisconnectCancel
- Yöntem:
google.firebase.database.v1.RealtimeDatabase.OnDisconnectCancel
- Denetleme günlüğü türü: Veri erişimi
- İzinler:
firebasedatabase.data.cancel - DATA_READ
- Yöntem uzun süreli veya akışlı bir işlemdir:
sayısı - Bu yöntem için filtre uygula:
protoPayload.methodName="google.firebase.database.v1.RealtimeDatabase.OnDisconnectCancel"
OnDisconnectPut
- Yöntem:
google.firebase.database.v1.RealtimeDatabase.OnDisconnectPut
- Denetleme günlüğü türü: Veri erişimi
- İzinler:
firebasedatabase.data.update - DATA_WRITE
- Yöntem uzun süreli veya akışlı bir işlemdir:
sayısı - Bu yöntem için filtre uygula:
protoPayload.methodName="google.firebase.database.v1.RealtimeDatabase.OnDisconnectPut"
OnDisconnectUpdate
- Yöntem:
google.firebase.database.v1.RealtimeDatabase.OnDisconnectUpdate
- Denetleme günlüğü türü: Veri erişimi
- İzinler:
firebasedatabase.data.update - DATA_WRITE
- Yöntem uzun süreli veya akışlı bir işlemdir:
sayısı - Bu yöntem için filtre uygula:
protoPayload.methodName="google.firebase.database.v1.RealtimeDatabase.OnDisconnectUpdate"
Read
- Yöntem:
google.firebase.database.v1.RealtimeDatabase.Read
- Denetleme günlüğü türü: Veri erişimi
- İzinler:
firebasedatabase.data.get - DATA_READ
- Yöntem uzun süreli veya akışlı bir işlemdir:
sayısı - Bu yöntem için filtre uygula:
protoPayload.methodName="google.firebase.database.v1.RealtimeDatabase.Read"
RunOnDisconnect
- Yöntem:
google.firebase.database.v1.RealtimeDatabase.RunOnDisconnect
- Denetleme günlüğü türü: Veri erişimi
- İzinler:
firebasedatabase.data.update - DATA_WRITE
- Yöntem uzun süreli veya akışlı bir işlemdir:
sayısı - Bu yöntem için filtre uygula:
protoPayload.methodName="google.firebase.database.v1.RealtimeDatabase.RunOnDisconnect"
Unlisten
- Yöntem:
google.firebase.database.v1.RealtimeDatabase.Unlisten
- Denetleme günlüğü türü: Veri erişimi
- İzinler:
firebasedatabase.data.cancel - DATA_READ
- Yöntem uzun süreli veya akışlı bir işlemdir:
sayısı - Bu yöntem için filtre uygula:
protoPayload.methodName="google.firebase.database.v1.RealtimeDatabase.Unlisten"
Update
- Yöntem:
google.firebase.database.v1.RealtimeDatabase.Update
- Denetleme günlüğü türü: Veri erişimi
- İzinler:
firebasedatabase.data.get - DATA_READ
firebasedatabase.data.get - DATA_WRITE
firebasedatabase.data.update - DATA_WRITE
- Yöntem uzun süreli veya akışlı bir işlemdir:
sayısı - Bu yöntem için filtre uygula:
protoPayload.methodName="google.firebase.database.v1.RealtimeDatabase.Update"
Write
- Yöntem:
google.firebase.database.v1.RealtimeDatabase.Write
- Denetleme günlüğü türü: Veri erişimi
- İzinler:
firebasedatabase.data.get - DATA_READ
firebasedatabase.data.get - DATA_WRITE
firebasedatabase.data.update - DATA_WRITE
- Yöntem uzun süreli veya akışlı bir işlemdir:
sayısı - Bu yöntem için filtre uygula:
protoPayload.methodName="google.firebase.database.v1.RealtimeDatabase.Write"
google.firebase.database.v1beta.RealtimeDatabaseService
Aşağıdaki bölümde, aşağıdakilerle ilişkili denetleme günlükleriyle ilgili ayrıntılar verilmiştir:
yöntemleri google.firebase.database.v1beta.RealtimeDatabaseService
için geçerlidir.
CreateDatabaseInstance
- Yöntem:
google.firebase.database.v1beta.RealtimeDatabaseService.CreateDatabaseInstance
- Denetleme günlüğü türü: Yönetici etkinliği
- İzinler:
firebasedatabase.instances.create - ADMIN_WRITE
- Yöntem uzun süreli veya akışlı bir işlemdir:
sayısı - Bu yöntem için filtre uygula:
protoPayload.methodName="google.firebase.database.v1beta.RealtimeDatabaseService.CreateDatabaseInstance"
DeleteDatabaseInstance
- Yöntem:
google.firebase.database.v1beta.RealtimeDatabaseService.DeleteDatabaseInstance
- Denetleme günlüğü türü: Yönetici etkinliği
- İzinler:
firebasedatabase.instances.delete - ADMIN_WRITE
- Yöntem uzun süreli veya akışlı bir işlemdir:
sayısı - Bu yöntem için filtre uygula:
protoPayload.methodName="google.firebase.database.v1beta.RealtimeDatabaseService.DeleteDatabaseInstance"
DisableDatabaseInstance
- Yöntem:
google.firebase.database.v1beta.RealtimeDatabaseService.DisableDatabaseInstance
- Denetleme günlüğü türü: Yönetici etkinliği
- İzinler:
firebasedatabase.instances.disable - ADMIN_WRITE
- Yöntem uzun süreli veya akışlı bir işlemdir:
sayısı - Bu yöntem için filtre uygula:
protoPayload.methodName="google.firebase.database.v1beta.RealtimeDatabaseService.DisableDatabaseInstance"
GetDatabaseInstance
- Yöntem:
google.firebase.database.v1beta.RealtimeDatabaseService.GetDatabaseInstance
- Denetleme günlüğü türü: Veri erişimi
- İzinler:
firebasedatabase.instances.get - ADMIN_READ
- Yöntem uzun süreli veya akışlı bir işlemdir:
sayısı - Bu yöntem için filtre uygula:
protoPayload.methodName="google.firebase.database.v1beta.RealtimeDatabaseService.GetDatabaseInstance"
ListDatabaseInstances
- Yöntem:
google.firebase.database.v1beta.RealtimeDatabaseService.ListDatabaseInstances
- Denetleme günlüğü türü: Veri erişimi
- İzinler:
firebasedatabase.instances.list - ADMIN_READ
- Yöntem uzun süreli veya akışlı bir işlemdir:
sayısı - Bu yöntem için filtre uygula:
protoPayload.methodName="google.firebase.database.v1beta.RealtimeDatabaseService.ListDatabaseInstances"
ReenableDatabaseInstance
- Yöntem:
google.firebase.database.v1beta.RealtimeDatabaseService.ReenableDatabaseInstance
- Denetleme günlüğü türü: Yönetici etkinliği
- İzinler:
firebasedatabase.instances.reenable - ADMIN_WRITE
- Yöntem uzun süreli veya akışlı bir işlemdir:
sayısı - Bu yöntem için filtre uygula:
protoPayload.methodName="google.firebase.database.v1beta.RealtimeDatabaseService.ReenableDatabaseInstance"
UndeleteDatabaseInstance
- Yöntem:
google.firebase.database.v1beta.RealtimeDatabaseService.UndeleteDatabaseInstance
- Denetleme günlüğü türü: Yönetici etkinliği
- İzinler:
firebasedatabase.instances.undelete - ADMIN_WRITE
- Yöntem uzun süreli veya akışlı bir işlemdir:
sayısı - Bu yöntem için filtre uygula:
protoPayload.methodName="google.firebase.database.v1beta.RealtimeDatabaseService.UndeleteDatabaseInstance"
Denetim kimlik doğrulama bilgileri
Denetleme günlüğü girişleri bilgi içerir günlüğe kaydedilen işlemi gerçekleştiren kimlikle ilgili. Bir isteği tanımlamak için arayan bir kullanıcı varsa AuditLog nesnesinde aşağıdaki alanlara bakın:
Gerçek zamanlı bağlantılar kurma. Realtime Database
Connect
işlemleri Realtime Database'in kimlik doğrulamasından sonra kimlik doğrulama verilerini günlüğe kaydetmemesi kurulduğundan emin olun. DolayısıylaConnect
, kimlik doğrulama bilgilerine sahip değil.AuthenticationInfo
nesnesi, şunun yer tutucusunu içerir:principalEmail
audit-pending-auth@firebasedatabase-{REGION_CODE}-prod.iam.gserviceaccount.com
.Google Kimlik Doğrulaması. Standart Google kullanan Realtime Database işlemleri Kimlik doğrulama (ör. Firebase Admin SDK'dan gelen trafik veya REST isteklerinden gelen trafik) standart bir OAuth jetonuyla kimlik doğrulaması yapılmış olmalıdır. gerçek kimlik bilgilerini içeren bir
AuthenticationInfo
nesnesine sahip olmalıdır e-posta gönderin.Firebase Authentication. Firebase Authentication kullanan Realtime Database işlemleri
principalEmail
değerini içerenAuthenticationInfo
nesnesiaudit-third-party-auth@firebasedatabase-{REGION_CODE}-prod.iam.gserviceaccount.com
. Aynı durum JWT'ler var.- Üçüncü taraf kimlik doğrulaması için JSON Web Token (JWT) kullanıldıysa
thirdPartyPrincipal
alanı, jetonun başlığını ve yükünü içerir. Örneğin, örnek, Firebase Authentication ile kimliği doğrulanan isteklerin denetleme günlükleri bu isteğin Firebase Authentication jetonunu dahil edin.
- Üçüncü taraf kimlik doğrulaması için JSON Web Token (JWT) kullanıldıysa
Kimlik doğrulama yok. Herhangi bir güncelleme kullanmayan Realtime Database işlemleri kimlik doğrulamasında
AuthenticationInfo
principalEmail
değeriaudit-no-auth@firebasedatabase-{REGION_CODE}-prod.iam.gserviceaccount.com
Açık güvenlik kurallarına sahip bir Realtime Database örneği bu tür istekleri kabul edebilir. Biz Tüm kullanıcılara veritabanlarının düzgün şekilde güvenliğini sağlamalarını öneririm.Eski gizli anahtar jetonları. Eski jetonları kullanan Realtime Database işlemleri yer tutucu içeren bir
AuthenticationInfo
nesnesine sahipprincipalEmail
/audit-secret-auth@firebasedatabase-{REGION_CODE}-prod.iam.gserviceaccount.com
. Gizli anahtarlarla imzalanmış JWT içinthirdPartyPrincipal
, JWT başlıklarını ve yük.
Firebase Güvenlik Kuralları değerlendirmelerini denetle
Cloud Denetleme günlükleri, gerçekleştirilmesi olası istekleri Kural değişikliklerinden etkilenir.
AuthorizationInfo nesnesinde authorization.permission
şunlardan biri olabilir:
firebasedatabase.data.get
: Şurada belirtilen yolda okuma erişimi verildiresource
.firebasedatabase.data.update
: Şurada belirtilen yolda yazma erişimi verildiresource
.firebasedatabase.data.connect
:Connect
veDisconnect
için yer tutucu. Realtime Database örneğine bağlanmak için yetkilendirme gerekmez.firebasedatabase.data.cancel
:Unlisten
veOnDisconnectCancel
için kullanılır. Daha önce yetkilendirilmiş bir işlemi iptal etmek veya iptal etmek için başka ek bir işlem gerekmez. yetkilendirme.
Cloud Audit günlüklerini Realtime Database profil oluşturucu sonuçlarıyla ilişkilendirme
Realtime Database'de ayrıntılı performans analizini gerçekleştirmek için Realtime Database profiler ile birlikte Realtime Database denetleme günlüğü. Her aracın kendine özgü güçlü yanları vardır.
Cloud Audit Logging | Realtime Database profil oluşturucu |
---|---|
|
|
Denetleme günlüğü içerikleri, aşağıda gösterildiği gibi profil aracı metriklerine karşılık gelir.
Denetleme Günlüğü işlem adı | Şuradaki özel değerler:RealtimeDatabaseAuditMetadata |
Profil oluşturucu işlemi adı |
---|---|---|
Bağlan | RequestType : REALTIME |
eşzamanlı bağlantı |
Bağlantıyı kes | RequestType : REALTIME |
eş zamanlı bağlantı kesilmesi |
Oku | RequestType : REALTIME |
gerçek zamanlı okuma |
Oku | RequestType : REST |
dinlenme |
Yazma | RequestType : REALTIME |
gerçek zamanlı-yazma |
Yazma | RequestType : REST |
yeniden-yazma |
Güncelle | RequestType REALTIME .
. Kontrol edin: PreconditionType . |
gerçek zamanlı-güncelleme gerçek zamanlı-işlem |
Güncelle | RequestType REST .
. Kontrol edin: PreconditionType . |
dinlenme-güncelleme rest-işlemi |
DinleyiciDinle | RequestType : REALTIME |
dinleyiciyi dinle |
Dinleyici Unvanı | RequestType : REALTIME |
dinleyici-dinleme |
Bağlantı Kesme | RequestType : REALTIME |
bağlantı kesilme noktası |
Bağlantıyı KeserkenGüncellen | RequestType : REALTIME |
bağlantıyı kesildiğinde-güncelleme |
Bağlantıyı Kesme: İptal | RequestType : REALTIME |
bağlantı kesildiğinde-iptal |
Bağlantı Kesme Çalıştırma | RequestType : REALTIME |
bağlantı kesildiğinde çalıştırma |