این سند گزارش حسابرسی برای پایگاه داده بیدرنگ 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.GetDatabaseInstancegoogle.firebase.database.v1beta.RealtimeDatabaseService.ListDatabaseInstances |
ADMIN_WRITE | google.firebase.database.v1beta.RealtimeDatabaseService.CreateDatabaseInstancegoogle.firebase.database.v1beta.RealtimeDatabaseService.DeleteDatabaseInstancegoogle.firebase.database.v1beta.RealtimeDatabaseService.DisableDatabaseInstancegoogle.firebase.database.v1beta.RealtimeDatabaseService.ReenableDatabaseInstancegoogle.firebase.database.v1beta.RealtimeDatabaseService.UndeleteDatabaseInstance |
DATA_READ | google.firebase.database.v1.RealtimeDatabase.Connectgoogle.firebase.database.v1.RealtimeDatabase.Disconnectgoogle.firebase.database.v1.RealtimeDatabase.Listengoogle.firebase.database.v1.RealtimeDatabase.OnDisconnectCancelgoogle.firebase.database.v1.RealtimeDatabase.Readgoogle.firebase.database.v1.RealtimeDatabase.Unlisten |
DATA_WRITE | google.firebase.database.v1.RealtimeDatabase.OnDisconnectPutgoogle.firebase.database.v1.RealtimeDatabase.OnDisconnectUpdategoogle.firebase.database.v1.RealtimeDatabase.RunOnDisconnectgoogle.firebase.database.v1.RealtimeDatabase.Updategoogle.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هستند که حاوی یک مقدارprincipalEmailaudit-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هستند که حاوی یک مقدارprincipalEmailaudit-no-auth@firebasedatabase-{REGION_CODE}-prod.iam.gserviceaccount.comاست یک نمونه Realtime Database با قوانین امنیتی باز ممکن است چنین درخواست هایی را اعطا کند. ما به همه کاربران توصیه می کنیم پایگاه داده خود را به درستی ایمن کنند.توکن های اسرار میراثی عملیات Realtime Database با استفاده از نشانههای قدیمی دارای یک شی
AuthenticationInfoاست که حاوی یک مکاننمایprincipalEmailaudit-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 است | در حال قطع شدن |