این سند گزارش حسابرسی برای پایگاه داده بیدرنگ Firebase را شرح می دهد. سرویسهای Google Cloud گزارشهای حسابرسی ایجاد میکنند که فعالیتهای مدیریتی و دسترسی به منابع Google Cloud شما را ثبت میکنند. برای اطلاعات بیشتر در مورد گزارش حسابرسی ابری، به موارد زیر مراجعه کنید:
- انواع گزارش حسابرسی
- ساختار ورودی گزارش حسابرسی
- ذخیره و مسیریابی گزارش های حسابرسی
- خلاصه قیمت گذاری Cloud Logging
- گزارش های حسابرسی دسترسی به داده را فعال کنید
یادداشت ها
اطلاعات اضافی درباره فیلدهای protoPayload.metadata
برای عملیات DATA_READ
و DATA_WRITE
در مستندات مرجع موجود است.
نام سرویس
گزارش های حسابرسی پایگاه داده بیدرنگ Firebase از نام سرویس firebasedatabase.googleapis.com
استفاده می کند. فیلتر برای این سرویس:
protoPayload.serviceName="firebasedatabase.googleapis.com"
روش ها بر اساس نوع مجوز
هر مجوز IAM دارای یک ویژگی type
است که مقدار آن یک enum است که می تواند یکی از چهار مقدار باشد: ADMIN_READ
، ADMIN_WRITE
، DATA_READ
، یا DATA_WRITE
. هنگامی که یک متد را فراخوانی می کنید، پایگاه داده بیدرنگ Firebase یک گزارش حسابرسی ایجاد می کند که دسته بندی آن به ویژگی type
مجوز مورد نیاز برای اجرای روش بستگی دارد. روشهایی که به مجوز IAM با مقدار ویژگی type
DATA_READ
، DATA_WRITE
، یا ADMIN_READ
نیاز دارند، گزارشهای حسابرسی دسترسی به داده را ایجاد میکنند. روشهایی که به مجوز IAM با مقدار ویژگی type
ADMIN_WRITE
نیاز دارند، گزارشهای حسابرسی فعالیت مدیریت را ایجاد میکنند.
نوع مجوز | روش ها |
---|---|
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 |
گزارش های حسابرسی رابط API
برای اطلاعات در مورد نحوه و مجوزهایی که برای هر روش ارزیابی می شوند، به مستندات Cloud Identity and Access Management برای پایگاه داده بیدرنگ Firebase مراجعه کنید.
google.firebase.database.v1.RealtimeDatabase
گزارشهای حسابرسی زیر با روشهای متعلق به google.firebase.database.v1.RealtimeDatabase
مرتبط هستند.
Connect
- روش :
google.firebase.database.v1.RealtimeDatabase.Connect
- نوع گزارش حسابرسی : دسترسی به داده ها
- مجوزها :
-
firebasedatabase.data.connect - DATA_READ
-
- روش یک عملیات طولانی مدت یا جریان است : خیر.
- فیلتر برای این روش :
protoPayload.methodName="google.firebase.database.v1.RealtimeDatabase.Connect"
Disconnect
- روش :
google.firebase.database.v1.RealtimeDatabase.Disconnect
- نوع گزارش حسابرسی : دسترسی به داده ها
- مجوزها :
-
firebasedatabase.data.connect - DATA_READ
-
- روش یک عملیات طولانی مدت یا جریان است : خیر.
- فیلتر برای این روش :
protoPayload.methodName="google.firebase.database.v1.RealtimeDatabase.Disconnect"
Listen
- روش :
google.firebase.database.v1.RealtimeDatabase.Listen
- نوع گزارش حسابرسی : دسترسی به داده ها
- مجوزها :
-
firebasedatabase.data.get - DATA_READ
-
- روش یک عملیات طولانی مدت یا جریان است : خیر.
- فیلتر برای این روش :
protoPayload.methodName="google.firebase.database.v1.RealtimeDatabase.Listen"
OnDisconnectCancel
- روش :
google.firebase.database.v1.RealtimeDatabase.OnDisconnectCancel
- نوع گزارش حسابرسی : دسترسی به داده ها
- مجوزها :
-
firebasedatabase.data.cancel - DATA_READ
-
- روش یک عملیات طولانی مدت یا جریان است : خیر.
- فیلتر برای این روش :
protoPayload.methodName="google.firebase.database.v1.RealtimeDatabase.OnDisconnectCancel"
OnDisconnectPut
- روش :
google.firebase.database.v1.RealtimeDatabase.OnDisconnectPut
- نوع گزارش حسابرسی : دسترسی به داده ها
- مجوزها :
-
firebasedatabase.data.update - DATA_WRITE
-
- روش یک عملیات طولانی مدت یا جریان است : خیر.
- فیلتر برای این روش :
protoPayload.methodName="google.firebase.database.v1.RealtimeDatabase.OnDisconnectPut"
OnDisconnectUpdate
- روش :
google.firebase.database.v1.RealtimeDatabase.OnDisconnectUpdate
- نوع گزارش حسابرسی : دسترسی به داده ها
- مجوزها :
-
firebasedatabase.data.update - DATA_WRITE
-
- روش یک عملیات طولانی مدت یا جریان است : خیر.
- فیلتر برای این روش :
protoPayload.methodName="google.firebase.database.v1.RealtimeDatabase.OnDisconnectUpdate"
Read
- روش :
google.firebase.database.v1.RealtimeDatabase.Read
- نوع گزارش حسابرسی : دسترسی به داده ها
- مجوزها :
-
firebasedatabase.data.get - DATA_READ
-
- روش یک عملیات طولانی مدت یا جریان است : خیر.
- فیلتر برای این روش :
protoPayload.methodName="google.firebase.database.v1.RealtimeDatabase.Read"
RunOnDisconnect
- روش :
google.firebase.database.v1.RealtimeDatabase.RunOnDisconnect
- نوع گزارش حسابرسی : دسترسی به داده ها
- مجوزها :
-
firebasedatabase.data.update - DATA_WRITE
-
- روش یک عملیات طولانی مدت یا جریان است : خیر.
- فیلتر برای این روش :
protoPayload.methodName="google.firebase.database.v1.RealtimeDatabase.RunOnDisconnect"
Unlisten
- روش :
google.firebase.database.v1.RealtimeDatabase.Unlisten
- نوع گزارش حسابرسی : دسترسی به داده ها
- مجوزها :
-
firebasedatabase.data.cancel - DATA_READ
-
- روش یک عملیات طولانی مدت یا جریان است : خیر.
- فیلتر برای این روش :
protoPayload.methodName="google.firebase.database.v1.RealtimeDatabase.Unlisten"
Update
- روش :
google.firebase.database.v1.RealtimeDatabase.Update
- نوع گزارش حسابرسی : دسترسی به داده ها
- مجوزها :
-
firebasedatabase.data.get - DATA_WRITE
-
firebasedatabase.data.update - DATA_WRITE
-
- روش یک عملیات طولانی مدت یا جریان است : خیر.
- فیلتر برای این روش :
protoPayload.methodName="google.firebase.database.v1.RealtimeDatabase.Update"
Write
- روش :
google.firebase.database.v1.RealtimeDatabase.Write
- نوع گزارش حسابرسی : دسترسی به داده ها
- مجوزها :
-
firebasedatabase.data.update - DATA_WRITE
-
- روش یک عملیات طولانی مدت یا جریان است : خیر.
- فیلتر برای این روش :
protoPayload.methodName="google.firebase.database.v1.RealtimeDatabase.Write"
google.firebase.database.v1beta.RealtimeDatabaseService
گزارشهای حسابرسی زیر با روشهای متعلق به google.firebase.database.v1beta.RealtimeDatabaseService
مرتبط هستند.
CreateDatabaseInstance
- روش :
google.firebase.database.v1beta.RealtimeDatabaseService.CreateDatabaseInstance
- نوع گزارش حسابرسی : فعالیت مدیر
- مجوزها :
-
firebasedatabase.instances.create - ADMIN_WRITE
-
- روش یک عملیات طولانی مدت یا جریان است : خیر.
- فیلتر برای این روش :
protoPayload.methodName="google.firebase.database.v1beta.RealtimeDatabaseService.CreateDatabaseInstance"
DeleteDatabaseInstance
- روش :
google.firebase.database.v1beta.RealtimeDatabaseService.DeleteDatabaseInstance
- نوع گزارش حسابرسی : فعالیت مدیر
- مجوزها :
-
firebasedatabase.instances.delete - ADMIN_WRITE
-
- روش یک عملیات طولانی مدت یا جریان است : خیر.
- فیلتر برای این روش :
protoPayload.methodName="google.firebase.database.v1beta.RealtimeDatabaseService.DeleteDatabaseInstance"
DisableDatabaseInstance
- روش :
google.firebase.database.v1beta.RealtimeDatabaseService.DisableDatabaseInstance
- نوع گزارش حسابرسی : فعالیت مدیر
- مجوزها :
-
firebasedatabase.instances.disable - ADMIN_WRITE
-
- روش یک عملیات طولانی مدت یا جریان است : خیر.
- فیلتر برای این روش :
protoPayload.methodName="google.firebase.database.v1beta.RealtimeDatabaseService.DisableDatabaseInstance"
GetDatabaseInstance
- روش :
google.firebase.database.v1beta.RealtimeDatabaseService.GetDatabaseInstance
- نوع گزارش حسابرسی : دسترسی به داده ها
- مجوزها :
-
firebasedatabase.instances.get - ADMIN_READ
-
- روش یک عملیات طولانی مدت یا جریان است : خیر.
- فیلتر برای این روش :
protoPayload.methodName="google.firebase.database.v1beta.RealtimeDatabaseService.GetDatabaseInstance"
ListDatabaseInstances
- روش :
google.firebase.database.v1beta.RealtimeDatabaseService.ListDatabaseInstances
- نوع گزارش حسابرسی : دسترسی به داده ها
- مجوزها :
-
firebasedatabase.instances.list - ADMIN_READ
-
- روش یک عملیات طولانی مدت یا جریان است : خیر.
- فیلتر برای این روش :
protoPayload.methodName="google.firebase.database.v1beta.RealtimeDatabaseService.ListDatabaseInstances"
ReenableDatabaseInstance
- روش :
google.firebase.database.v1beta.RealtimeDatabaseService.ReenableDatabaseInstance
- نوع گزارش حسابرسی : فعالیت مدیر
- مجوزها :
-
firebasedatabase.instances.reenable - ADMIN_WRITE
-
- روش یک عملیات طولانی مدت یا جریان است : خیر.
- فیلتر برای این روش :
protoPayload.methodName="google.firebase.database.v1beta.RealtimeDatabaseService.ReenableDatabaseInstance"
UndeleteDatabaseInstance
- روش :
google.firebase.database.v1beta.RealtimeDatabaseService.UndeleteDatabaseInstance
- نوع گزارش حسابرسی : فعالیت مدیر
- مجوزها :
-
firebasedatabase.instances.undelete - ADMIN_WRITE
-
- روش یک عملیات طولانی مدت یا جریان است : خیر.
- فیلتر برای این روش :
protoPayload.methodName="google.firebase.database.v1beta.RealtimeDatabaseService.UndeleteDatabaseInstance"
اطلاعات احراز هویت حسابرسی
ورودی های گزارش حسابرسی شامل اطلاعاتی درباره هویتی است که عملیات ثبت شده را انجام داده است. برای شناسایی تماس گیرنده درخواست، فیلدهای زیر را در شی AuditLog ببینید:
ایجاد ارتباطات بیدرنگ عملیات Realtime Database
Connect
داده های احراز هویت را ثبت نمی کند زیرا Realtime Database پس از برقراری اتصال احراز هویت می شود. بنابراین،Connect
هیچ اطلاعاتی برای احراز هویت ندارد. شیءAuthenticationInfo
حاوی یکprincipalEmail
مکاننمایaudit-pending-auth@firebasedatabase-{REGION_CODE}-prod.iam.gserviceaccount.com
است.احراز هویت گوگل عملیات Realtime Database که از احراز هویت استاندارد Google استفاده می کنند، مانند ترافیک از Firebase Admin SDK یا درخواست های REST احراز هویت شده با یک نشانه OAuth استاندارد ، یک شی
AuthenticationInfo
دارند که حاوی ایمیل اعتبار واقعی است.Firebase Authentication . عملیات Realtime Database که از Firebase Authentication استفاده میکنند دارای یک شی
AuthenticationInfo
هستند که حاوی یک مقدارprincipalEmail
audit-third-party-auth@firebasedatabase-{REGION_CODE}-prod.iam.gserviceaccount.com
است. اگر راه حل احراز هویت خود را با برش JWT های سفارشی پیاده سازی کنید، همین امر صادق است.- اگر از JSON Web Token (JWT) برای احراز هویت شخص ثالث استفاده شده باشد، فیلد
thirdPartyPrincipal
شامل هدر و بار توکن است. برای مثال، گزارشهای حسابرسی برای درخواستهای احراز هویت شده با Firebase Authentication شامل نشانه Firebase Authentication آن درخواست است.
- اگر از JSON Web Token (JWT) برای احراز هویت شخص ثالث استفاده شده باشد، فیلد
بدون احراز هویت عملیات Realtime Database که از احراز هویت استفاده نمیکنند دارای یک شی
AuthenticationInfo
هستند که حاوی یک مقدارprincipalEmail
audit-no-auth@firebasedatabase-{REGION_CODE}-prod.iam.gserviceaccount.com
است یک نمونه Realtime Database با قوانین امنیتی باز ممکن است چنین درخواستهایی را اعطا کند. . ما به همه کاربران توصیه می کنیم پایگاه داده خود را به درستی ایمن کنند.توکن های اسرار میراثی عملیات Realtime Database با استفاده از نشانههای قدیمی دارای یک شی
AuthenticationInfo
است که حاوی یک مکاننمایprincipalEmail
audit-secret-auth@firebasedatabase-{REGION_CODE}-prod.iam.gserviceaccount.com
است. برای JWT امضا شده با اسرار،thirdPartyPrincipal
حاوی سرصفحههای JWT و محموله است.
ارزیابی Firebase Security Rules بررسی کنید
گزارشهای حسابرسی ابری میتوانند برای شناسایی درخواستهایی استفاده شوند که به طور بالقوه تحت تأثیر تغییرات Rules قرار میگیرند.
در شیء AuthorizationInfo ، authorization.permission
می تواند یکی از موارد زیر باشد:
-
firebasedatabase.data.get
: دسترسی خواندنی که در مسیر مشخص شده درresource
داده شده است. -
firebasedatabase.data.update
: دسترسی بنویسید که در مسیر مشخص شده درresource
داده شده است. -
firebasedatabase.data.connect
: مکان نگهدار برایConnect
وDisconnect
. برای اتصال به یک نمونه Realtime Database نیازی به مجوز نیست. -
firebasedatabase.data.cancel
: برایUnlisten
وOnDisconnectCancel
استفاده می شود. لغو یا لغو عملیاتی که قبلاً مجاز شده است نیازی به مجوز اضافی ندارد.
گزارشهای حسابرسی ابری را با نتایج نمایهگر Realtime Database مرتبط کنید
شما می توانید تجزیه و تحلیل عملکرد عمیق را در Realtime Database با استفاده از نمایه ساز Realtime Database در ترکیب با گزارش حسابرسی Realtime Database انجام دهید. هر ابزاری نقاط قوت خود را دارد.
گزارش حسابرسی ابری | نمایه ساز Realtime Database |
---|---|
|
|
محتویات گزارش حسابرسی مطابق با معیارهای نمایه ساز مطابق شکل زیر است.
نام عملیات ثبت حسابرسی | مقادیر ویژه درRealtimeDatabaseAuditMetadata | نام عملیات نمایه |
---|---|---|
اتصال | RequestType REALTIME است | همزمان اتصال |
قطع کن | RequestType REALTIME است | همزمان قطع ارتباط |
بخوانید | RequestType REALTIME است | خواندن بیدرنگ |
بخوانید | RequestType REST است | استراحت بخوانید |
بنویسید | RequestType REALTIME است | بلادرنگ بنویس |
بنویسید | RequestType REST است | استراحت بنویس |
به روز رسانی | RequestType REALTIME است.PreconditionType بررسی کنید. | به روز رسانی بیدرنگ معاملات بیدرنگ |
به روز رسانی | RequestType REST است.PreconditionType بررسی کنید. | به روز رسانی مجدد معامله استراحت |
شنونده گوش کن | RequestType REALTIME است | شنونده-گوش کن |
LinerUnlisten | RequestType REALTIME است | شنونده - گوش ندادن |
OnDisconnectPut | RequestType REALTIME است | روی قطع و وصل کردن |
OnDisconnectUpdate | RequestType REALTIME است | به روز رسانی قطع ارتباط |
OnDisconnectCancel | RequestType REALTIME است | در قطع-لغو |
RunOnDisconnect | RequestType REALTIME است | در حال قطع شدن |