این صفحه گزارشهای حسابرسی ایجاد شده توسط Firebase را به عنوان بخشی از گزارشهای حسابرسی Cloud توصیف میکند.
بررسی اجمالی
سرویسهای Firebase گزارشهای حسابرسی را مینویسند تا به شما در پاسخ به سؤالات «چه کسی، کجا و چه زمانی انجام داد؟» کمک کند. این گزارشهای حسابرسی Cloud هستند که به عنوان بخشی از پروژه Google Cloud متصل به پروژه Firebase شما ارائه شدهاند.
پروژه های Firebase شما هرکدام فقط شامل گزارش های حسابرسی برای منابعی هستند که مستقیماً در داخل پروژه هستند.
برای یک نمای کلی از گزارشهای حسابرسی ابری، به نمای کلی گزارشهای حسابرسی ابری مراجعه کنید. برای درک عمیقتر قالب گزارش حسابرسی، به درک گزارشهای حسابرسی مراجعه کنید.
گزارش های حسابرسی موجود
انواع زیر گزارش های حسابرسی برای پایگاه داده بیدرنگ Firebase موجود است:
گزارش های حسابرسی فعالیت مدیریت
شامل عملیات "نوشتن مدیر" است که ابرداده یا اطلاعات پیکربندی را می نویسد.
نمیتوانید گزارشهای حسابرسی فعالیت مدیریت را غیرفعال کنید.
گزارش های حسابرسی دسترسی به داده ها
شامل عملیات "خواندن سرپرست" است که فراداده یا اطلاعات پیکربندی را می خواند. همچنین شامل عملیات "خواندن داده" و "نوشتن داده" است که داده های ارائه شده توسط کاربر را می خواند یا می نویسد.
برای دریافت گزارش های حسابرسی دسترسی به داده ها، باید به صراحت آنها را فعال کنید.
برای توصیف کاملتر انواع گزارش حسابرسی، به انواع گزارش حسابرسی مراجعه کنید.
عملیات حسابرسی شده
در زیر خلاصه می شود که کدام عملیات API با هر نوع گزارش حسابرسی در پایگاه داده بیدرنگ Firebase مطابقت دارد:
دسته گزارش های حسابرسی | عملیات پایگاه داده بیدرنگ Firebase |
---|---|
گزارشهای حسابرسی فعالیت سرپرست (ADMIN_WRITE) |
|
گزارش های حسابرسی دسترسی به داده (ADMIN_READ) |
|
گزارش های حسابرسی دسترسی به داده (DATA_READ یا DATA_WRITE) |
|
گزارش های حسابرسی دسترسی به داده (DATA_READ) |
|
گزارش های حسابرسی دسترسی به داده (DATA_WRITE) |
|
اطلاعات احراز هویت حسابرسی
ورودی های گزارش حسابرسی شامل اطلاعاتی درباره هویتی است که عملیات ثبت شده را انجام داده است. برای شناسایی تماس گیرنده درخواست، فیلدهای زیر را در شی 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 آن درخواست است.
- اگر از JSON Web Token (JWT) برای احراز هویت شخص ثالث استفاده شده باشد، فیلد
بدون احراز هویت عملیات پایگاه داده بیدرنگ که از احراز هویت استفاده نمیکنند دارای یک شی
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 خود استفاده کنید:
در کنسول GCP، به صفحه Logging > Logs Explorer بروید.
در صفحه Logs Explorer ، یک پروژه، پوشه یا سازمان Firebase موجود را انتخاب کنید.
در قسمت Query builder موارد زیر را انجام دهید:
در نوع منبع ، منبع Google Cloud را که میخواهید گزارش حسابرسی آن را ببینید، انتخاب کنید.
در Log name ، نوع گزارش حسابرسی را که می خواهید ببینید انتخاب کنید:
- برای گزارشهای حسابرسی فعالیت مدیریت، فعالیت را انتخاب کنید.
- برای گزارش های حسابرسی دسترسی به داده، data_access را انتخاب کنید.
- برای گزارش های حسابرسی رویداد سیستم، system_event را انتخاب کنید.
- برای گزارشهای حسابرسی رد شده، سیاست را انتخاب کنید.
اگر این گزینهها را نمیبینید، پس هیچ گزارش حسابرسی از آن نوع در پروژه، پوشه یا سازمان Firebase موجود نیست.
برای جزئیات بیشتر در مورد پرس و جو با استفاده از Logs Explorer، به Build log query مراجعه کنید.
gcloud
ابزار خط فرمان gcloud
یک رابط خط فرمان را برای API Cloud Logging فراهم می کند. یک FOLDER_ID
PROJECT_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 برای مشاهده ورودی های گزارش حسابرسی خود، موارد زیر را انجام دهید:
به بخش Try this API در مستندات روش
entries.list
بروید.موارد زیر را در قسمت بدنه درخواست فرم Try this API قرار دهید. با کلیک بر روی این فرم از پیش پر شده به طور خودکار بدنه درخواست پر می شود، اما باید یک
PROJECT_ID
معتبر در هر یک از نام های گزارش وارد کنید.{ "resourceNames": [ "projects/PROJECT_ID" ], "pageSize": 5, "filter": "logName : projects/PROJECT_ID/logs/cloudaudit.googleapis.com" }
روی Execute کلیک کنید.
برای جزئیات بیشتر در مورد پرس و جو، به ثبت زبان پرس و جو مراجعه کنید.
برای مثالی از ورودی گزارش حسابرسی و نحوه یافتن مهمترین اطلاعات در آن، به نمونه ورودی گزارش حسابرسی مراجعه کنید.
سیاهههای مربوط به حسابرسی مسیر
میتوانید گزارشهای حسابرسی را به همان روشی که میتوانید انواع دیگر گزارشها را مسیریابی کنید، به مقصدهای پشتیبانی شده هدایت کنید. در اینجا دلایلی وجود دارد که ممکن است بخواهید گزارش های حسابرسی خود را مسیریابی کنید:
برای نگهداری گزارشهای حسابرسی برای مدت طولانیتر یا استفاده از قابلیتهای جستجوی قدرتمندتر، میتوانید کپیهای گزارشهای حسابرسی خود را به Google Cloud Storage، BigQuery یا Google Cloud Pub/Sub هدایت کنید. با استفاده از Cloud Pub/Sub میتوانید به برنامههای دیگر، مخازن دیگر و اشخاص ثالث مسیریابی کنید.
برای مدیریت گزارشهای حسابرسی خود در کل یک سازمان، میتوانید سینکهای انبوهی ایجاد کنید که میتوانند گزارشها را از هر یا همه پروژههای Firebase در سازمان هدایت کنند.
- اگر گزارشهای حسابرسی دسترسی به داده فعال شما، پروژههای Firebase شما را بر روی تخصیص گزارشهای شما فشار میآورد، میتوانید سینکهایی ایجاد کنید که گزارشهای حسابرسی دسترسی به دادهها را از Logging حذف کنند.
برای دستورالعملهای مربوط به گزارشهای مسیریابی، به پیکربندی سینکها مراجعه کنید.
قیمت گذاری
گزارشهای حسابرسی فعالیت مدیریت و گزارشهای حسابرسی رویداد سیستم بدون هزینه هستند.
گزارشهای حسابرسی دسترسی به داده و گزارشهای حسابرسی رد شده در خط مشی قابل پرداخت هستند.
برای اطلاعات بیشتر درباره قیمتگذاری Cloud Logging، قیمتگذاری مجموعه عملیات Google Cloud را ببینید: Cloud Logging .