تصف هذه الصفحة سجلات التدقيق التي تم إنشاؤها بواسطة Firebase كجزء من Cloud Audit Logs .
ملخص
تكتب خدمات Firebase سجلات تدقيق لمساعدتك في الإجابة عن الأسئلة ، "من فعل ماذا وأين ومتى؟". هذه هي سجلات Cloud Audit ، المقدمة كجزء من مشروع Google Cloud المتصل بمشروع Firebase .
يحتوي كل مشروع من مشاريع Firebase على سجلات تدقيق الموارد الموجودة مباشرة داخل المشروع.
للحصول على نظرة عامة على Cloud Audit Logs ، راجع نظرة عامة على Cloud Audit Logs. للحصول على فهم أعمق لتنسيق سجل التدقيق ، راجع فهم سجلات التدقيق .
سجلات التدقيق المتاحة
الأنواع التالية من سجلات التدقيق متاحة لقاعدة بيانات Firebase Realtime:
سجلات تدقيق نشاط المسؤول
يتضمن عمليات "كتابة المسؤول" التي تكتب البيانات الوصفية أو معلومات التكوين.
لا يمكنك تعطيل سجلات تدقيق نشاط المسؤول.
سجلات تدقيق الوصول إلى البيانات
يتضمن عمليات "قراءة المسؤول" التي تقرأ البيانات الوصفية أو معلومات التكوين. يتضمن أيضًا عمليات "قراءة البيانات" و "كتابة البيانات" التي تقرأ أو تكتب البيانات المقدمة من المستخدم.
لتلقي سجلات تدقيق الوصول إلى البيانات ، يجب تمكينها بشكل صريح.
للحصول على أوصاف أكمل لأنواع سجلات التدقيق ، راجع أنواع سجلات التدقيق .
العمليات المدققة
يلخص ما يلي عمليات واجهة برمجة التطبيقات التي تتوافق مع كل نوع من أنواع سجلات التدقيق في قاعدة بيانات Firebase Realtime:
فئة سجلات التدقيق | عمليات قاعدة بيانات Firebase Realtime |
---|---|
سجلات تدقيق نشاط المسؤول (ADMIN_WRITE) |
|
سجلات تدقيق الوصول إلى البيانات (ADMIN_READ) |
|
سجلات تدقيق الوصول إلى البيانات (DATA_READ أو DATA_WRITE) |
|
سجلات تدقيق الوصول إلى البيانات (DATA_READ) |
|
سجلات تدقيق الوصول إلى البيانات (DATA_WRITE) |
|
تدوين معلومات المصادقة
تتضمن إدخالات سجل التدوين معلومات حول الهوية التي نفذت العملية المسجلة. لتحديد متصل الطلب ، راجع الحقول التالية داخل كائن AuditLog:
إقامة اتصالات في الوقت الفعلي. لا تسجل عمليات Realtime Database
Connect
بيانات المصادقة منذ أن تصادق Realtime Database بعد إنشاء الاتصال. لذلك ،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
. وينطبق الشيء نفسه إذا قمت بتنفيذ حل المصادقة الخاص بك عن طريق سك JWTs المخصصة.- إذا تم استخدام JSON Web Token (JWT) لمصادقة جهة خارجية ، فإن حقل الطرف الثالث
thirdPartyPrincipal
يتضمن رأس الرمز المميز والحمولة. على سبيل المثال ، تتضمن سجلات التدقيق للطلبات المصادق عليها باستخدام مصادقة Firebase رمز مصادقة Firebase المميز لهذا الطلب.
- إذا تم استخدام JSON Web Token (JWT) لمصادقة جهة خارجية ، فإن حقل الطرف الثالث
لا يوجد مصادقة. عمليات قاعدة البيانات في الوقت الفعلي التي لا تستخدم أي مصادقة لها كائن
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
يمكن استخدام سجلات Cloud Audit لتحديد الطلبات التي من المحتمل أن تتأثر بتغييرات القواعد.
في كائن AuthorizationInfo ، يمكن أن يكون authorization.permission
واحدًا مما يلي:
-
firebasedatabase.data.get
: حق الوصول للقراءة ممنوح في المسار المحدد فيresource
. -
firebasedatabase.data.update
: تم منح حق الوصول للكتابة في المسار المحدد فيresource
. -
firebasedatabase.data.connect
: عنصر نائبConnect
وقطعDisconnect
. لا يوجد ترخيص مطلوب للاتصال بمثيل قاعدة بيانات Realtime. -
firebasedatabase.data.cancel
: يستخدمUnlisten
وOnDisconnectCancel
. لا يتطلب إبطال أو إلغاء عملية تمت الموافقة عليها مسبقًا أي تفويض إضافي.
ربط سجلات Cloud Audit بنتائج ملف تعريف Realtime Database
يمكنك إجراء تحليل متعمق للأداء على Realtime Database باستخدام ملف تعريف Realtime Database مع تسجيل تدقيق Realtime Database. كل أداة لها نقاط قوتها.
تسجيل تدقيق السحابة | ملف تعريف قاعدة البيانات في الوقت الحقيقي |
---|---|
|
|
تتوافق محتويات سجل التدقيق مع مقاييس ملف التعريف كما هو موضح أدناه.
تدوين اسم عملية التسجيل | قيم خاصة فيRealtimeDatabaseAuditMetadata | اسم عملية منشئ ملفات التعريف |
---|---|---|
الاتصال | RequestType هو الوقت REALTIME | اتصال متزامن |
قطع الاتصال | RequestType هو الوقت REALTIME | قطع الاتصال المتزامن |
اقرأ | RequestType هو الوقت REALTIME | قراءة الوقت الحقيقي |
اقرأ | نوع REST هو RequestType | بقية القراءة |
يكتب | RequestType هو الوقت REALTIME | الوقت الحقيقي للكتابة |
يكتب | نوع REST هو RequestType | الراحة والكتابة |
تحديث | RequestType هو الوقت REALTIME .تحقق PreconditionType . | تحديث الوقت الحقيقي الوقت الحقيقي للمعاملة |
تحديث | نوع REST RequestType تحقق PreconditionType . | بقية التحديث بقية الصفقة |
المستمع ، استمع | RequestType هو الوقت REALTIME | المستمع - الاستماع |
المستمع | RequestType هو الوقت REALTIME | المستمع غير المستمع |
عند قطع الاتصال | 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 Audit Logs إلى مشروع Firebase أو كيان Google Cloud آخر يمتلك سجلات التدقيق ، وما إذا كان السجل يحتوي على بيانات تسجيل تدقيق نشاط المسؤول أو الوصول إلى البيانات أو السياسة المرفوضة أو بيانات تسجيل تدقيق أحداث النظام. على سبيل المثال ، يعرض ما يلي أسماء السجلات لسجلات تدقيق نشاط المسؤول على مستوى المشروع وسجلات تدقيق الوصول إلى البيانات الخاصة بالمؤسسة. تشير المتغيرات إلى مشروع Firebase ومعرفات المؤسسة.
projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Factivity
organizations/ORGANIZATION_ID/logs/cloudaudit.googleapis.com%2Fdata_access
اسم الخدمة
تستخدم سجلات تدقيق قاعدة بيانات Firebase Realtime اسم الخدمة firebasedatabase.googleapis.com
.
للحصول على قائمة كاملة بجميع أسماء خدمة Cloud Logging API ونوع المورد المقابل الذي يخضع للمراقبة ، راجع تعيين الخدمات إلى الموارد .
أنواع الموارد
تستخدم سجلات تدقيق Firebase Realtime Database نوع المورد audited_resource
لجميع سجلات التدقيق.
للحصول على قائمة بجميع أنواع الموارد الخاضعة للمراقبة في Cloud Logging والمعلومات الوصفية ، راجع أنواع الموارد المراقبة .
تمكين تسجيل التدقيق
يتم دائمًا تمكين سجلات تدقيق نشاط المسؤول ؛ لا يمكنك تعطيلها.
يتم تعطيل سجلات تدقيق الوصول إلى البيانات افتراضيًا ولا تتم كتابتها ما لم يتم تمكينها صراحةً (الاستثناء هو سجلات تدقيق الوصول إلى البيانات لـ BigQuery ، والتي لا يمكن تعطيلها).
يتم تبديل سجلات تدقيق الوصول إلى البيانات لقاعدة بيانات Realtime عن طريق التحقق منDATA_READ
و / أو DATA_WRITE
في وحدة تحكم GCP. هناك تأخير يصل إلى ساعة واحدة بين وقت تمكين / تعطيل السجلات في وحدة تحكم GCP والوقت الذي يسجل فيه بدء / إيقاف تسليم السجلات.للحصول على إرشادات حول تمكين بعض أو كل سجلات تدقيق الوصول إلى البيانات ، راجع تكوين سجلات الوصول إلى البيانات .
الأذونات والأدوار
تحدد أذونات وأدوار Cloud IAM قدرتك على الوصول إلى بيانات سجلات التدقيق في موارد Google Cloud.
عند تحديد الأذونات والأدوار الخاصة بالتسجيل التي تنطبق على حالة الاستخدام الخاصة بك ، ضع في اعتبارك ما يلي:
يمنحك دور عارض السجلات (
roles/logging.viewer
) وصولاً للقراءة فقط إلى سجلات تدقيق نشاط المسؤول والسياسة المرفوضة وأحداث النظام. إذا كان لديك هذا الدور فقط ، فلا يمكنك عرض سجلات تدقيق Data Access الموجودة في_Default
.يتضمن دور عارض السجلات الخاصة
(roles/logging.privateLogViewer
) الأذونات المضمنة فيroles/logging.viewer
، بالإضافة إلى القدرة على قراءة سجلات تدقيق الوصول إلى البيانات في الحاوية_Default
.لاحظ أنه إذا تم تخزين هذه السجلات الخاصة في مستودعات يحددها المستخدم ، فيمكن لأي مستخدم لديه أذونات لقراءة السجلات في تلك المجموعات قراءة السجلات الخاصة. لمزيد من المعلومات حول حاويات السجل ، راجع نظرة عامة على التوجيه والتخزين .
لمزيد من المعلومات حول أذونات Cloud IAM والأدوار التي تنطبق على بيانات سجلات التدقيق ، راجع التحكم في الوصول .
عرض السجلات
للعثور على سجلات التدقيق وعرضها ، تحتاج إلى معرفة معرف مشروع Firebase أو المجلد أو المؤسسة التي تريد عرض معلومات تسجيل التدقيق الخاصة بها. يمكنك أيضًا تحديد حقول LogEntry
المفهرسة resource.type
، مثل 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
أو واجهة برمجة تطبيقات التسجيل.
وحدة التحكم
يمكنك استخدام مستكشف السجلات في وحدة تحكم GCP لاسترداد إدخالات سجل التدقيق لمشروعك أو مجلدك أو مؤسستك في Firebase:
في وحدة تحكم GCP ، انتقل إلى صفحة التسجيل> مستكشف السجلات .
في صفحة " مستكشف السجلات " ، حدد مشروعًا أو مجلدًا أو مؤسسة موجودة في Firebase.
في جزء منشئ الاستعلام ، قم بما يلي:
في نوع المورد ، حدد مورد Google Cloud الذي تريد الاطلاع على سجلات تدقيقه.
في اسم السجل ، حدد نوع سجل التدقيق الذي تريد رؤيته:
- بالنسبة لسجلات تدقيق نشاط المسؤول ، حدد النشاط .
- بالنسبة لسجلات تدقيق الوصول إلى البيانات ، حدد data_access .
- بالنسبة لسجلات تدقيق أحداث النظام ، حدد حدث النظام.
- بالنسبة لسجلات تدقيق السياسة المرفوضة ، حدد السياسة .
إذا كنت لا ترى هذه الخيارات ، فلا توجد أي سجلات تدقيق من هذا النوع متوفرة في مشروع Firebase أو المجلد أو المؤسسة.
لمزيد من التفاصيل حول الاستعلام باستخدام مستكشف السجلات ، راجع إنشاء استعلامات السجل .
gcloud
توفر أداة سطر أوامر gcloud
واجهة سطر أوامر إلى Cloud Logging API. PROJECT_ID
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 للنظر في إدخالات سجل التدقيق ، قم بما يلي:
انتقل إلى قسم جرب واجهة برمجة التطبيقات هذه في الوثائق الخاصة بأسلوب قائمة
entries.list
.ضع ما يلي في جزء نص الطلب من نموذج جرب واجهة برمجة التطبيقات هذه . يؤدي النقر فوق هذا النموذج المعبأ مسبقًا إلى ملء نص الطلب تلقائيًا ، ولكنك تحتاج إلى توفير
PROJECT_ID
صالح في كل من أسماء السجلات.{ "resourceNames": [ "projects/PROJECT_ID" ], "pageSize": 5, "filter": "logName : projects/PROJECT_ID/logs/cloudaudit.googleapis.com" }
انقر فوق تنفيذ .
لمزيد من التفاصيل حول الاستعلام ، راجع تسجيل لغة الاستعلام .
للحصول على مثال لإدخال سجل التدقيق وكيفية العثور على المعلومات الأكثر أهمية فيه ، راجع نموذج إدخال سجل التدقيق .
سجلات تدقيق المسار
يمكنك توجيه سجلات التدقيق إلى الوجهات المدعومة بنفس الطريقة التي يمكنك بها توجيه أنواع أخرى من السجلات. فيما يلي بعض الأسباب التي قد تدفعك إلى توجيه سجلات التدقيق الخاصة بك:
للاحتفاظ بسجلات التدقيق لفترة زمنية أطول أو لاستخدام إمكانات بحث أكثر قوة ، يمكنك توجيه نسخ من سجلات التدقيق إلى Google Cloud Storage أو BigQuery أو Google Cloud Pub / Sub. باستخدام Cloud Pub / Sub ، يمكنك التوجيه إلى التطبيقات الأخرى والمستودعات الأخرى والجهات الخارجية.
لإدارة سجلات التدقيق عبر مؤسسة بأكملها ، يمكنك إنشاء أحواض مجمعة يمكنها توجيه السجلات من أي أو جميع مشاريع Firebase في المؤسسة.
- إذا كانت سجلات تدقيق الوصول إلى البيانات التي تم تمكينها تدفع مشاريع Firebase الخاصة بك على تخصيصات السجلات الخاصة بك ، فيمكنك إنشاء أحواض تستبعد سجلات تدقيق الوصول إلى البيانات من التسجيل.
للحصول على إرشادات حول سجلات التوجيه ، راجع تكوين المصارف .
التسعير
سجلات تدقيق نشاط المسؤول وسجلات تدقيق أحداث النظام بلا تكلفة.
يتم تحميل رسوم على سجلات تدقيق الوصول إلى البيانات وسجلات تدقيق السياسة المرفوضة .
لمزيد من المعلومات حول تسعير Cloud Logging ، راجع تسعير مجموعة عمليات Google Cloud: Cloud Logging .