ثبت حسابرسی پایگاه داده بیدرنگ Firebase

این صفحه گزارش‌های حسابرسی ایجاد شده توسط Firebase را به عنوان بخشی از گزارش‌های حسابرسی Cloud توصیف می‌کند.

بررسی اجمالی

سرویس‌های Firebase گزارش‌های حسابرسی را می‌نویسند تا به شما در پاسخ به سؤالات «چه کسی، کجا و چه زمانی انجام داد؟» کمک کند. این گزارش‌های حسابرسی Cloud هستند که به عنوان بخشی از پروژه Google Cloud متصل به پروژه Firebase شما ارائه شده‌اند.

پروژه های Firebase شما هرکدام فقط شامل گزارش های حسابرسی برای منابعی هستند که مستقیماً در داخل پروژه هستند.

برای یک نمای کلی از گزارش‌های حسابرسی ابری، به نمای کلی گزارش‌های حسابرسی ابری مراجعه کنید. برای درک عمیق‌تر قالب گزارش حسابرسی، به درک گزارش‌های حسابرسی مراجعه کنید.

گزارش های حسابرسی موجود

انواع زیر گزارش های حسابرسی برای پایگاه داده بیدرنگ Firebase موجود است:

  • گزارش های حسابرسی فعالیت مدیریت

    شامل عملیات "نوشتن مدیر" است که ابرداده یا اطلاعات پیکربندی را می نویسد.

    نمی‌توانید گزارش‌های حسابرسی فعالیت مدیریت را غیرفعال کنید.

  • گزارش های حسابرسی دسترسی به داده ها

    شامل عملیات "خواندن سرپرست" است که فراداده یا اطلاعات پیکربندی را می خواند. همچنین شامل عملیات "خواندن داده" و "نوشتن داده" است که داده های ارائه شده توسط کاربر را می خواند یا می نویسد.

    برای دریافت گزارش های حسابرسی دسترسی به داده ها، باید به صراحت آنها را فعال کنید.

برای توصیف کاملتر انواع گزارش حسابرسی، به انواع گزارش حسابرسی مراجعه کنید.

عملیات حسابرسی شده

در زیر خلاصه می شود که کدام عملیات API با هر نوع گزارش حسابرسی در پایگاه داده بیدرنگ Firebase مطابقت دارد:

دسته گزارش های حسابرسی عملیات پایگاه داده بیدرنگ Firebase
گزارش‌های حسابرسی فعالیت سرپرست (ADMIN_WRITE)
  • CreateDatabaseInstance
  • DeleteDatabaseInstance
  • DisableDatabaseInstance
  • ReenableDatabaseInstance
گزارش های حسابرسی دسترسی به داده (ADMIN_READ)
  • GetDatabaseInstance
  • ListDatabaseInstances
گزارش های حسابرسی دسترسی به داده (DATA_READ یا DATA_WRITE)
گزارش های حسابرسی دسترسی به داده (DATA_READ)
  • خواندن. QueryMetadata مرتبط را ببینید.
  • گوش بده. QueryMetadata مرتبط را ببینید.
  • گوش ندادن
گزارش های حسابرسی دسترسی به داده (DATA_WRITE)
  • نوشتن
  • به روز رسانی. WriteMetadata مرتبط را ببینید.
  • OnDisconnectPut
  • OnDisconnectUpdate. WriteMetadata مرتبط را ببینید.
  • OnDisconnectCancel

اطلاعات احراز هویت حسابرسی

ورودی های گزارش حسابرسی شامل اطلاعاتی درباره هویتی است که عملیات ثبت شده را انجام داده است. برای شناسایی تماس گیرنده درخواست، فیلدهای زیر را در شی AuditLog ببینید:

  • ایجاد ارتباطات بیدرنگ عملیات Realtime Database Connect داده های احراز هویت را ثبت نمی کند زیرا پایگاه داده بیدرنگ پس از برقراری اتصال احراز هویت می شود. بنابراین، Connect هیچ اطلاعاتی برای احراز هویت ندارد. شیء AuthenticationInfo حاوی یک ایمیل principalEmail مکان‌نمای audit-pending-auth@firebasedatabase-{REGION_CODE}-prod.iam.gserviceaccount.com است.

  • احراز هویت گوگل عملیات پایگاه داده بیدرنگ که از احراز هویت استاندارد Google استفاده می کنند، مانند ترافیک از Firebase Admin SDK یا درخواست های REST احراز هویت شده با یک نشانه OAuth استاندارد ، یک شی AuthenticationInfo دارند که حاوی ایمیل اعتبار واقعی است.

  • احراز هویت Firebase. عملیات پایگاه داده هم‌زمان که از احراز هویت Firebase استفاده می‌کنند دارای یک شی AuthenticationInfo هستند که حاوی یک مقدار principalEmail audit-third-party-auth@firebasedatabase-{REGION_CODE}-prod.iam.gserviceaccount.com است. اگر راه حل احراز هویت خود را با برش JWT های سفارشی پیاده سازی کنید، همین امر صادق است.

    • اگر از JSON Web Token (JWT) برای احراز هویت شخص ثالث استفاده شده باشد، فیلد thirdPartyPrincipal شامل هدر و بار توکن است. برای مثال، گزارش‌های حسابرسی برای درخواست‌های احراز هویت شده با Firebase Authentication شامل نشانه Firebase Authentication آن درخواست است.
  • بدون احراز هویت عملیات پایگاه داده بی‌درنگ که از احراز هویت استفاده نمی‌کنند دارای یک شی AuthenticationInfo هستند که حاوی یک مقدار principalEmail audit-no-auth@firebasedatabase-{REGION_CODE}-prod.iam.gserviceaccount.com است یک نمونه پایگاه داده بی‌درنگ با قوانین امنیتی باز ممکن است چنین درخواست‌هایی را اعطا کند. . ما به همه کاربران توصیه می کنیم پایگاه داده خود را به درستی ایمن کنند.

  • توکن های اسرار میراثی عملیات پایگاه داده هم‌زمان با استفاده از نشانه‌های قدیمی دارای یک شی AuthenticationInfo است که حاوی یک مکان‌نمای principalEmail audit-secret-auth@firebasedatabase-{REGION_CODE}-prod.iam.gserviceaccount.com است. برای JWT امضا شده با اسرار، thirdPartyPrincipal حاوی سرصفحه‌های JWT و محموله است.

ارزیابی قوانین امنیتی Firebase را بررسی کنید

گزارش‌های حسابرسی ابری می‌توانند برای شناسایی درخواست‌هایی استفاده شوند که به طور بالقوه تحت تأثیر تغییرات قوانین قرار می‌گیرند.

در شیء AuthorizationInfo ، authorization.permission می تواند یکی از موارد زیر باشد:

  • firebasedatabase.data.get : دسترسی خواندنی که در مسیر مشخص شده در resource داده شده است.
  • firebasedatabase.data.update : دسترسی بنویسید که در مسیر مشخص شده در resource داده شده است.
  • firebasedatabase.data.connect : مکان نگهدار برای Connect و Disconnect . برای اتصال به یک نمونه پایگاه داده بیدرنگ نیازی به مجوز نیست.
  • firebasedatabase.data.cancel : برای Unlisten و OnDisconnectCancel استفاده می شود. لغو یا لغو عملیاتی که قبلاً مجاز شده است نیازی به مجوز اضافی ندارد.

گزارش های حسابرسی ابری را با نتایج نمایه ساز پایگاه داده بیدرنگ مرتبط کنید

شما می توانید تجزیه و تحلیل عملکرد عمیق را در پایگاه داده بیدرنگ با استفاده از نمایه ساز پایگاه داده بیدرنگ در ترکیب با گزارش حسابرسی پایگاه داده بیدرنگ انجام دهید. هر ابزاری نقاط قوت خود را دارد.

گزارش حسابرسی ابری نمایه ساز پایگاه داده بیدرنگ
  • ممیزی دسترسی به پایگاه های داده
  • به طور مداوم تمام درخواست ها را ضبط می کند
  • امکان پرس و جوی گذشته نگر را فراهم می کند
  • حاوی اطلاعات دقیق رمز تأیید است
  • هزینه استفاده را متحمل می شود
  • برای تجزیه و تحلیل عملکرد استفاده می شود
  • ابزار مفیدی را برای شناسایی هات اسپات و در نتیجه بهینه سازی عملکرد ارائه می دهد
  • می تواند پخش شنونده را اندازه گیری کند، که به دلیل حجم داده بالقوه در گزارش های حسابرسی موجود نیست
  • سبک و بیدرنگ، که آن را برای آزمایش بار زنده خوب می کند. ممکن است چند دقیقه طول بکشد تا ورودی‌های گزارش حسابرسی ظاهر شوند.

محتویات گزارش حسابرسی مطابق با معیارهای نمایه ساز مطابق شکل زیر است.

نام عملیات ثبت حسابرسی مقادیر ویژه در
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 است در حال قطع شدن

فرمت گزارش حسابرسی

ورودی های گزارش حسابرسی شامل اشیاء زیر است:

  • خود ورودی گزارش که یک شی از نوع LogEntry است. زمینه های مفید شامل موارد زیر است:

    • logName شامل شناسه منبع و نوع گزارش حسابرسی است.
    • resource شامل هدف عملیات ممیزی شده است.
    • timestamp حاوی زمان عملیات حسابرسی شده است.
    • protoPayload حاوی اطلاعات ممیزی شده است.
  • داده های گزارش حسابرسی، که یک شی AuditLog است که در قسمت protoPayload ورودی گزارش نگهداری می شود.

  • اطلاعات حسابرسی اختصاصی سرویس اختیاری، که یک شی خاص سرویس است. برای ادغام های قدیمی تر، این شی در قسمت serviceData شی AuditLog نگهداری می شود. ادغام های جدیدتر از فیلد metadata استفاده می کنند.

برای سایر فیلدها در این اشیاء و نحوه تفسیر آنها، درک گزارش های حسابرسی را مرور کنید.

اطلاعات اضافی درباره فیلدهای protoPayload.metadata برای عملیات DATA_READ و DATA_WRITE در مستندات مرجع موجود است.

نام لاگ

نام‌های منابع گزارش‌های حسابرسی Cloud نشان‌دهنده پروژه Firebase یا سایر نهادهای Google Cloud هستند که گزارش‌های حسابرسی را در اختیار دارند، و اینکه آیا گزارش حاوی داده‌های گزارش‌گیری «فعالیت سرپرست»، «دسترسی به داده‌ها»، «خط‌مشی رد شده است» یا داده‌های گزارش حسابرسی رویداد سیستم است. برای مثال، موارد زیر نام گزارش‌های گزارش‌های حسابرسی فعالیت مدیریت سطح پروژه و گزارش‌های حسابرسی دسترسی به داده‌های سازمان را نشان می‌دهد. متغیرها نشان دهنده شناسه های پروژه و سازمان Firebase هستند.

projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Factivity
organizations/ORGANIZATION_ID/logs/cloudaudit.googleapis.com%2Fdata_access

نام سرویس

گزارش های حسابرسی پایگاه داده بیدرنگ Firebase از نام سرویس firebasedatabase.googleapis.com استفاده می کند.

برای فهرست کامل نام‌های سرویس‌های Cloud Logging API و نوع منبع نظارت شده مربوط به آن‌ها، به نقشه خدمات به منابع مراجعه کنید.

انواع منابع

گزارش‌های حسابرسی پایگاه داده بیدرنگ Firebase از نوع منبع audited_resource برای همه گزارش‌های حسابرسی استفاده می‌کنند.

برای فهرستی از انواع منابع نظارت شده و اطلاعات توصیفی Cloud Logging، به انواع منابع نظارت شده مراجعه کنید.

ثبت حسابرسی را فعال کنید

گزارش های حسابرسی فعالیت مدیریت همیشه فعال هستند. شما نمی توانید آنها را غیرفعال کنید

گزارش‌های حسابرسی دسترسی به داده به‌طور پیش‌فرض غیرفعال هستند و نوشته نمی‌شوند مگر اینکه صریحاً فعال شوند (به استثنای گزارش‌های حسابرسی دسترسی به داده برای BigQuery، که غیرفعال نمی‌شود).

گزارش‌های حسابرسی دسترسی به داده برای پایگاه داده بیدرنگ با علامت زدن DATA_READ و/یا DATA_WRITE در کنسول GCP تغییر می‌کنند. بین زمانی که گزارش‌ها در کنسول GCP فعال/غیرفعال می‌شوند تا زمانی که گزارش‌ها شروع/توقف تحویل گزارش‌ها می‌شوند، تا یک ساعت تاخیر وجود دارد.

برای دستورالعمل‌های فعال کردن برخی یا همه گزارش‌های حسابرسی دسترسی به داده، به پیکربندی گزارش‌های دسترسی به داده مراجعه کنید.

مجوزها و نقش ها

مجوزها و نقش‌های Cloud IAM توانایی شما را برای دسترسی به داده‌های گزارش‌های حسابرسی در منابع Google Cloud تعیین می‌کنند.

هنگامی که تصمیم می گیرید کدام مجوزها و نقش های خاص Logging در مورد استفاده شما اعمال می شود، موارد زیر را در نظر بگیرید:

  • نقش Logs Viewer ( roles/logging.viewer ) به شما امکان دسترسی فقط خواندنی به گزارش‌های حسابرسی Admin Activity، Policy Denied و System Event را می‌دهد. اگر فقط این نقش را دارید، نمی‌توانید گزارش‌های حسابرسی دسترسی به داده را که در سطل _Default هستند مشاهده کنید.

  • نقش Private Logs Viewer (roles/logging.privateLogViewer ) شامل مجوزهای موجود در roles/logging.viewer ، به علاوه توانایی خواندن گزارش های حسابرسی دسترسی به داده در سطل _Default است.

    توجه داشته باشید که اگر این گزارش‌های خصوصی در سطل‌های تعریف‌شده توسط کاربر ذخیره شوند، هر کاربری که مجوز خواندن گزارش‌ها در آن سطل‌ها را داشته باشد، می‌تواند گزارش‌های خصوصی را بخواند. برای اطلاعات بیشتر در مورد سطل های گزارش، به بررسی کلی مسیریابی و ذخیره سازی مراجعه کنید.

برای اطلاعات بیشتر در مورد مجوزها و نقش‌های Cloud IAM که برای داده‌های گزارش حسابرسی اعمال می‌شود، به کنترل دسترسی مراجعه کنید.

دیدن گزارش وقایع

برای یافتن و مشاهده گزارش‌های حسابرسی، باید شناسه پروژه، پوشه یا سازمانی که می‌خواهید اطلاعات گزارش حسابرسی را برای آن مشاهده کنید، بدانید. می‌توانید سایر فیلدهای LogEntry نمایه‌شده مانند resource.type را نیز مشخص کنید. برای جزئیات، بررسی سریع یافتن ورودی های گزارش .

در زیر نام های گزارش حسابرسی آمده است. آنها شامل متغیرهایی برای شناسه های پروژه، پوشه یا سازمان Firebase هستند:

   projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Factivity
   projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Fdata_access
   projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Fsystem_event
   projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Fpolicy

   folders/FOLDER_ID/logs/cloudaudit.googleapis.com%2Factivity
   folders/FOLDER_ID/logs/cloudaudit.googleapis.com%2Fdata_access
   folders/FOLDER_ID/logs/cloudaudit.googleapis.com%2Fsystem_event
   folders/FOLDER_ID/logs/cloudaudit.googleapis.com%2Fpolicy

   organizations/ORGANIZATION_ID/logs/cloudaudit.googleapis.com%2Factivity
   organizations/ORGANIZATION_ID/logs/cloudaudit.googleapis.com%2Fdata_access
   organizations/ORGANIZATION_ID/logs/cloudaudit.googleapis.com%2Fsystem_event
   organizations/ORGANIZATION_ID/logs/cloudaudit.googleapis.com%2Fpolicy

می‌توانید گزارش‌های حسابرسی را در Cloud Logging با استفاده از کنسول GCP، ابزار خط فرمان gcloud یا Logging API مشاهده کنید.

کنسول

می‌توانید از Logs Explorer در کنسول GCP برای بازیابی ورودی‌های گزارش حسابرسی برای پروژه، پوشه یا سازمان Firebase خود استفاده کنید:

  1. در کنسول GCP، به صفحه Logging > Logs Explorer بروید.

    به صفحه Logs Explorer بروید

  2. در صفحه Logs Explorer ، یک پروژه، پوشه یا سازمان Firebase موجود را انتخاب کنید.

  3. در قسمت Query builder موارد زیر را انجام دهید:

    • در نوع منبع ، منبع Google Cloud را که می‌خواهید گزارش حسابرسی آن را ببینید، انتخاب کنید.

    • در Log name ، نوع گزارش حسابرسی را که می خواهید ببینید انتخاب کنید:

      • برای گزارش‌های حسابرسی فعالیت مدیریت، فعالیت را انتخاب کنید.
      • برای گزارش های حسابرسی دسترسی به داده، data_access را انتخاب کنید.
      • برای گزارش های حسابرسی رویداد سیستم، system_event را انتخاب کنید.
      • برای گزارش‌های حسابرسی رد شده، سیاست را انتخاب کنید.

    اگر این گزینه‌ها را نمی‌بینید، پس هیچ گزارش حسابرسی از آن نوع در پروژه، پوشه یا سازمان Firebase موجود نیست.

    برای جزئیات بیشتر در مورد پرس و جو با استفاده از Logs Explorer، به Build log query مراجعه کنید.

gcloud

ابزار خط فرمان gcloud یک رابط خط فرمان را برای API Cloud Logging فراهم می کند. یک PROJECT_ID ، FOLDER_ID ، یا ORGANIZATION_ID معتبر در هر یک از نام‌های گزارش ارائه کنید.

برای خواندن ورودی های گزارش حسابرسی در سطح پروژه Firebase، دستور زیر را اجرا کنید:

gcloud logging read "logName : projects/PROJECT_ID/logs/cloudaudit.googleapis.com" --project=PROJECT_ID

برای خواندن ورودی های گزارش حسابرسی در سطح پوشه، دستور زیر را اجرا کنید:

gcloud logging read "logName : folders/FOLDER_ID/logs/cloudaudit.googleapis.com" --folder=FOLDER_ID

برای خواندن ورودی های گزارش حسابرسی در سطح سازمان، دستور زیر را اجرا کنید:

gcloud logging read "logName : organizations/ORGANIZATION_ID/logs/cloudaudit.googleapis.com" --organization=ORGANIZATION_ID

برای اطلاعات بیشتر درباره استفاده از ابزار gcloud ، به خواندن ورودی‌های گزارش مراجعه کنید.

API

هنگام ساخت پرس و جوهای خود، متغیرها را با مقادیر معتبر جایگزین کنید، نام یا شناسه های گزارش حسابرسی مناسب در سطح پروژه، سطح پوشه یا سازمان را که در نام های گزارش حسابرسی فهرست شده است، جایگزین کنید. به عنوان مثال، اگر درخواست شما شامل PROJECT_ID باشد، شناسه پروژه ای که ارائه می کنید باید به پروژه Firebase انتخاب شده فعلی مراجعه کند.

برای استفاده از Logging API برای مشاهده ورودی های گزارش حسابرسی خود، موارد زیر را انجام دهید:

  1. به بخش Try this API در مستندات روش entries.list بروید.

  2. موارد زیر را در قسمت بدنه درخواست فرم Try this API قرار دهید. با کلیک بر روی این فرم از پیش پر شده به طور خودکار بدنه درخواست پر می شود، اما باید یک PROJECT_ID معتبر در هر یک از نام های گزارش وارد کنید.

    {
      "resourceNames": [
        "projects/PROJECT_ID"
      ],
      "pageSize": 5,
      "filter": "logName : projects/PROJECT_ID/logs/cloudaudit.googleapis.com"
    }
    
  3. روی Execute کلیک کنید.

برای جزئیات بیشتر در مورد پرس و جو، به ثبت زبان پرس و جو مراجعه کنید.

برای مثالی از ورودی گزارش حسابرسی و نحوه یافتن مهمترین اطلاعات در آن، به نمونه ورودی گزارش حسابرسی مراجعه کنید.

سیاهههای مربوط به حسابرسی مسیر

می‌توانید گزارش‌های حسابرسی را به همان روشی که می‌توانید انواع دیگر گزارش‌ها را مسیریابی کنید، به مقصدهای پشتیبانی شده هدایت کنید. در اینجا دلایلی وجود دارد که ممکن است بخواهید گزارش های حسابرسی خود را مسیریابی کنید:

  • برای نگهداری گزارش‌های حسابرسی برای مدت طولانی‌تر یا استفاده از قابلیت‌های جستجوی قدرتمندتر، می‌توانید کپی‌های گزارش‌های حسابرسی خود را به Google Cloud Storage، BigQuery یا Google Cloud Pub/Sub هدایت کنید. با استفاده از Cloud Pub/Sub می‌توانید به برنامه‌های دیگر، مخازن دیگر و اشخاص ثالث مسیریابی کنید.

  • برای مدیریت گزارش‌های حسابرسی خود در کل یک سازمان، می‌توانید سینک‌های انبوهی ایجاد کنید که می‌توانند گزارش‌ها را از هر یا همه پروژه‌های Firebase در سازمان هدایت کنند.

  • اگر گزارش‌های حسابرسی دسترسی به داده فعال شما، پروژه‌های Firebase شما را بر تخصیص گزارش‌های شما فشار می‌دهد، می‌توانید سینک‌هایی ایجاد کنید که گزارش‌های حسابرسی دسترسی به داده‌ها را از ورود حذف کنند.

برای دستورالعمل‌های مربوط به گزارش‌های مسیریابی، به پیکربندی سینک‌ها مراجعه کنید.

قیمت گذاری

گزارش‌های حسابرسی فعالیت مدیریت و گزارش‌های حسابرسی رویداد سیستم بدون هزینه هستند.

گزارش‌های حسابرسی دسترسی به داده و گزارش‌های حسابرسی رد شده در خط مشی قابل پرداخت هستند.

برای اطلاعات بیشتر درباره قیمت‌گذاری Cloud Logging، قیمت‌گذاری مجموعه عملیات Google Cloud را ببینید: Cloud Logging .