ثبت حسابرسی برای میزبانی برنامه Firebase، ثبت حسابرسی برای میزبانی برنامه Firebase

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

نمای کلی

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

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

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

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

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

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

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

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

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

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

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

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

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

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

نوع مجوز روش‌ها
ADMIN_READ google.firebase.apphosting.v1alpha.AppHosting.GetBackend
google.firebase.apphosting.v1alpha.AppHosting.GetBuild
google.firebase.apphosting.v1alpha.AppHosting.GetRollout
google.firebase.apphosting.v1alpha.AppHosting.GetTraffic
google.firebase.apphosting.v1alpha.AppHosting.ListBackends
google.firebase.apphosting.v1alpha.AppHosting.ListBuilds
google.firebase.apphosting.v1alpha.AppHosting.ListDomains
google.firebase.apphosting.v1alpha.AppHosting.ListRollouts
google.firebase.apphosting.v1beta.AppHosting.GetBackend
google.firebase.apphosting.v1beta.AppHosting.GetBuild
google.firebase.apphosting.v1beta.AppHosting.GetDomain
google.firebase.apphosting.v1beta.AppHosting.GetTraffic
google.firebase.apphosting.v1beta.AppHosting.ListBackends
google.firebase.apphosting.v1beta.AppHosting.ListBuilds
google.firebase.apphosting.v1beta.AppHosting.ListDomains
google.firebase.apphosting.v1beta.AppHosting.ListRollouts
ADMIN_WRITE google.firebase.apphosting.v1alpha.AppHosting.CreateBackend
google.firebase.apphosting.v1alpha.AppHosting.CreateBuild
google.firebase.apphosting.v1alpha.AppHosting.CreateDomain
google.firebase.apphosting.v1alpha.AppHosting.CreateRollout
google.firebase.apphosting.v1alpha.AppHosting.DeleteBackend
google.firebase.apphosting.v1alpha.AppHosting.DeleteBuild
google.firebase.apphosting.v1alpha.AppHosting.DeleteDomain
google.firebase.apphosting.v1alpha.AppHosting.UpdateBuild
google.firebase.apphosting.v1alpha.AppHosting.UpdateTraffic
google.firebase.apphosting.v1beta.AppHosting.CreateBackend
google.firebase.apphosting.v1beta.AppHosting.CreateBuild
google.firebase.apphosting.v1beta.AppHosting.CreateDomain
google.firebase.apphosting.v1beta.AppHosting.CreateRollout
google.firebase.apphosting.v1beta.AppHosting.DeleteBackend
google.firebase.apphosting.v1beta.AppHosting.DeleteBuild
google.firebase.apphosting.v1beta.AppHosting.DeleteDomain
google.firebase.apphosting.v1beta.AppHosting.UpdateBackend
google.firebase.apphosting.v1beta.AppHosting.UpdateDomain
google.firebase.apphosting.v1beta.AppHosting.UpdateTraffic

قالب گزارش حسابرسی

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

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

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

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

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

نام لاگ

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

projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Factivity
organizations/ORGANIZATION_ID/logs/cloudaudit.googleapis.com%2Fdata_access
نام سرویس

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

برای مشاهده لیست کاملی از نام‌های سرویس Cloud Logging API و نوع منبع تحت نظارت مربوط به آنها، به Map services to resources مراجعه کنید.

انواع منابع

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

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

فعال کردن گزارش‌گیری حسابرسی

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

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

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

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

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

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

  • نقش مشاهده‌گر گزارش‌ها ( roles/logging.viewer ) به شما دسترسی فقط خواندنی به گزارش‌های فعالیت مدیر، سیاست رد شده و حسابرسی رویدادهای سیستم می‌دهد. اگر فقط این نقش را داشته باشید، نمی‌توانید گزارش‌های حسابرسی دسترسی به داده‌ها را که در سطل _Default هستند، مشاهده کنید.

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

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

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

مشاهده گزارش‌ها

برای یافتن و مشاهده گزارش‌های حسابرسی، باید شناسه پروژه، پوشه یا سازمانی که می‌خواهید اطلاعات گزارش حسابرسی آن را مشاهده کنید، در Firebase داشته باشید. می‌توانید فیلدهای فهرست‌بندی شده 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 با استفاده از کنسول Google Cloud، ابزار خط فرمان gcloud یا رابط برنامه‌نویسی کاربردی Logging مشاهده کنید.

کنسول

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

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

    به صفحه کاوشگر گزارش‌ها بروید

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

  3. در پنل سازنده‌ی کوئری ، موارد زیر را انجام دهید:

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

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

      • برای گزارش‌های حسابرسی فعالیت مدیر، activity را انتخاب کنید.
      • برای گزارش‌های حسابرسی دسترسی به داده‌ها، data_access را انتخاب کنید.
      • برای گزارش‌های حسابرسی رویداد سیستم، system_event را انتخاب کنید.
      • برای گزارش‌های حسابرسی مربوط به عدم پذیرش سیاست (Policy Denied audit logs)، گزینه policy را انتخاب کنید.

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

    برای جزئیات بیشتر در مورد پرس‌وجو با استفاده از Logs Explorer، به بخش «ساخت پرس‌وجوهای گزارش» مراجعه کنید.

جی‌کلاود

ابزار خط فرمان gcloud یک رابط خط فرمان برای Cloud Logging API فراهم می‌کند. در هر یک از نام‌های گزارش، یک 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 ، به بخش «خواندن ورودی‌های گزارش» مراجعه کنید.

رابط برنامه‌نویسی کاربردی

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

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

  1. برای متد entries.list به بخش «این API را امتحان کنید» در مستندات بروید.

  2. کد زیر را در قسمت بدنه درخواست (Request body) فرم «این API را امتحان کنید» (Try this API) قرار دهید. کلیک روی این فرم از پیش پر شده، بدنه درخواست را به طور خودکار پر می‌کند، اما باید یک PROJECT_ID معتبر در هر یک از نام‌های گزارش (log name) وارد کنید.

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

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

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

گزارش‌های ممیزی مسیر

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

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

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

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

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

قیمت‌گذاری

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

گزارش‌های حسابرسی دسترسی به داده‌ها و گزارش‌های حسابرسی رد خط‌مشی (Policy Denied) مشمول هزینه هستند.

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