توضح هذه الصفحة سجلات التدقيق التي أنشأها Firebase كجزء من سجلات التدقيق السحابي .
ملخص
تكتب خدمات Firebase سجلات التدقيق لمساعدتك في الإجابة على الأسئلة، "من فعل ماذا وأين ومتى؟". هذه هي سجلات تدقيق السحابة، المقدمة كجزء من مشروع Google Cloud المتصل بمشروع Firebase الخاص بك .
يحتوي كل مشروع من مشروعات Firebase الخاصة بك على سجلات التدقيق الخاصة بالموارد الموجودة مباشرة داخل المشروع فقط.
للحصول على نظرة عامة على سجلات تدقيق السحابة، راجع نظرة عامة على سجلات تدقيق السحابة . للحصول على فهم أعمق لتنسيق سجل التدقيق، راجع فهم سجلات التدقيق .
سجلات التدقيق المتاحة
تتوفر الأنواع التالية من سجلات التدقيق لقاعدة بيانات Firebase Realtime:
سجلات تدقيق نشاط المشرف
يتضمن عمليات "كتابة المسؤول" التي تكتب بيانات التعريف أو معلومات التكوين.
لا يمكنك تعطيل سجلات تدقيق نشاط المشرف.
سجلات تدقيق الوصول إلى البيانات
يتضمن عمليات "قراءة المشرف" التي تقرأ بيانات التعريف أو معلومات التكوين. يتضمن أيضًا عمليات "قراءة البيانات" و"كتابة البيانات" التي تقرأ أو تكتب البيانات المقدمة من المستخدم.
لتلقي سجلات تدقيق الوصول إلى البيانات، يجب تمكينها بشكل صريح.
للحصول على أوصاف أكمل لأنواع سجل التدقيق، راجع أنواع سجلات التدقيق .
العمليات المدققة
يلخص ما يلي عمليات واجهة برمجة التطبيقات (API) التي تتوافق مع كل نوع من أنواع سجل التدقيق في قاعدة بيانات Firebase Realtime:
فئة سجلات التدقيق | عمليات قاعدة بيانات Firebase Realtime |
---|---|
سجلات تدقيق نشاط المشرف (ADMIN_WRITE) |
|
سجلات تدقيق الوصول إلى البيانات (ADMIN_READ) |
|
سجلات تدقيق الوصول إلى البيانات (DATA_READ أو DATA_WRITE) |
|
سجلات تدقيق الوصول إلى البيانات (DATA_READ) |
|
سجلات تدقيق الوصول إلى البيانات (DATA_WRITE) |
|
معلومات مصادقة التدقيق
تتضمن إدخالات سجل التدقيق معلومات حول الهوية التي نفذت العملية المسجلة. لتحديد هوية طالب الطلب، راجع الحقول التالية داخل كائن AuditLog:
إنشاء اتصالات في الوقت الحقيقي. لا تقوم عمليات Realtime Database
Connect
بتسجيل بيانات المصادقة نظرًا لأن قاعدة بيانات Realtime تقوم بالمصادقة بعد إنشاء الاتصال. لذلك، لا يحتوي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 مع قواعد الأمان المفتوحة مثل هذه الطلبات . نوصي كافة المستخدمين بتأمين قواعد البيانات الخاصة بهم بشكل صحيح.رموز الأسرار القديمة. تحتوي عمليات قاعدة البيانات في الوقت الفعلي باستخدام الرموز المميزة القديمة على كائن
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
. لا يلزم الحصول على إذن للاتصال بمثيل قاعدة بيانات Realtime. -
firebasedatabase.data.cancel
: يستخدم لـUnlisten
وOnDisconnectCancel
. لا يتطلب إلغاء أو إلغاء عملية تمت الموافقة عليها مسبقًا أي إذن إضافي.
ربط سجلات التدقيق السحابي بنتائج ملف تعريف قاعدة بيانات Realtime
يمكنك إجراء تحليل متعمق للأداء على قاعدة بيانات Realtime باستخدام ملف تعريف قاعدة بيانات Realtime بالاشتراك مع تسجيل تدقيق قاعدة بيانات Realtime. كل أداة لها نقاط قوتها.
تسجيل التدقيق السحابي | منشئ قاعدة البيانات في الوقت الحقيقي |
---|---|
|
|
تتوافق محتويات سجل التدقيق مع مقاييس ملف التعريف كما هو موضح أدناه.
اسم عملية تسجيل التدقيق | القيم الخاصة فيRealtimeDatabaseAuditMetadata | اسم عملية ملف التعريف |
---|---|---|
يتصل | RequestType هو REALTIME | الاتصال المتزامن |
قطع الاتصال | RequestType هو REALTIME | قطع الاتصال المتزامن |
يقرأ | RequestType هو REALTIME | القراءة في الوقت الحقيقي |
يقرأ | RequestType هو REST | بقية القراءة |
يكتب | RequestType هو REALTIME | الكتابة في الوقت الحقيقي |
يكتب | RequestType هو REST | بقية الكتابة |
تحديث | RequestType هو REALTIME .تحقق PreconditionType . | التحديث في الوقت الحقيقي المعاملات في الوقت الحقيقي |
تحديث | RequestType هو REST .تحقق PreconditionType . | تحديث بقية معاملة الراحة |
المستمع | RequestType هو REALTIME | المستمع الاستماع |
المستمعUnlisten | RequestType هو REALTIME | مستمع غير مستمع |
OnDisconnectPut | RequestType هو REALTIME | على قطع الاتصال |
عند قطع الاتصالتحديث | RequestType هو REALTIME | عند قطع الاتصال التحديث |
عند قطع الاتصال، إلغاء | RequestType هو REALTIME | عند قطع الاتصال - الإلغاء |
RunOnDisconnect | RequestType هو REALTIME | التشغيل عند قطع الاتصال |
تنسيق سجل التدقيق
تتضمن إدخالات سجل التدقيق العناصر التالية:
إدخال السجل نفسه، وهو كائن من النوع
LogEntry
. تتضمن الحقول المفيدة ما يلي:- يحتوي
logName
على معرف المورد ونوع سجل التدقيق. - يحتوي
resource
على هدف العملية التي تم تدقيقها. - يحتوي
timestamp
على وقت العملية التي تم تدقيقها. - يحتوي
protoPayload
على المعلومات المدققة.
- يحتوي
بيانات تسجيل التدقيق، وهي كائن
AuditLog
الموجود في حقلprotoPayload
الخاص بإدخال السجل.معلومات التدقيق الاختيارية الخاصة بالخدمة، وهي كائن خاص بالخدمة. بالنسبة لعمليات التكامل الأقدم، يتم الاحتفاظ بهذا الكائن في حقل
serviceData
لكائنAuditLog
؛ تستخدم عمليات التكامل الأحدث حقلmetadata
.
بالنسبة للحقول الأخرى في هذه الكائنات وكيفية تفسيرها، قم بمراجعة فهم سجلات التدقيق .
تتوفر معلومات إضافية حول الحقول الموجودة فيprotoPayload.metadata
لعمليات DATA_READ
و DATA_WRITE
في الوثائق المرجعية .اسم السجل
تشير أسماء موارد سجلات تدقيق السحابة إلى مشروع 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 نوع المورد audited_resource
لجميع سجلات التدقيق.
للحصول على قائمة بجميع أنواع الموارد الخاضعة للمراقبة في Cloud Logging والمعلومات الوصفية، راجع أنواع الموارد الخاضعة للمراقبة .
تمكين تسجيل التدقيق
يتم تمكين سجلات تدقيق نشاط المسؤول دائمًا؛ لا يمكنك تعطيلها.
يتم تعطيل سجلات تدقيق الوصول إلى البيانات بشكل افتراضي ولا تتم كتابتها ما لم يتم تمكينها بشكل صريح (الاستثناء هو سجلات تدقيق الوصول إلى البيانات لـ BigQuery، والتي لا يمكن تعطيلها).
يتم تبديل سجلات تدقيق الوصول إلى البيانات لقاعدة بيانات الوقت الفعلي عن طريق تحديدDATA_READ
و/أو DATA_WRITE
في وحدة تحكم GCP. هناك تأخير يصل إلى ساعة واحدة بين وقت تمكين/تعطيل السجلات في وحدة تحكم Google Cloud Platform ووقت بدء/إيقاف تسليم السجلات.للحصول على إرشادات حول تمكين بعض أو كل سجلات تدقيق الوصول إلى البيانات، راجع تكوين سجلات الوصول إلى البيانات .
الأذونات والأدوار
تحدد أذونات وأدوار Cloud IAM قدرتك على الوصول إلى بيانات سجلات التدقيق في موارد Google Cloud.
عند تحديد الأذونات والأدوار الخاصة بالتسجيل التي تنطبق على حالة الاستخدام الخاصة بك، ضع في اعتبارك ما يلي:
يمنحك دور عارض السجلات (
roles/logging.viewer
) حق الوصول للقراءة فقط إلى سجلات تدقيق نشاط المسؤول ورفض السياسة وسجلات أحداث النظام. إذا كان لديك هذا الدور فقط، فلن تتمكن من عرض سجلات تدقيق الوصول إلى البيانات الموجودة في المجموعة_Default
.يتضمن دور عارض السجلات الخاصة
(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 باستخدام وحدة تحكم GCP، أو أداة سطر أوامر gcloud
، أو Logging API.
وحدة التحكم
يمكنك استخدام مستكشف السجلات في وحدة تحكم GCP لاسترداد إدخالات سجل التدقيق لمشروعك أو مجلدك أو مؤسستك في Firebase:
في وحدة تحكم GCP، انتقل إلى صفحة التسجيل > مستكشف السجلات .
في صفحة Logs Explorer ، حدد مشروعًا أو مجلدًا أو مؤسسة موجودة في Firebase.
في جزء منشئ الاستعلام ، قم بما يلي:
في نوع المورد ، حدد مورد Google Cloud الذي تريد رؤية سجلات التدقيق الخاصة به.
في اسم السجل ، حدد نوع سجل التدقيق الذي تريد رؤيته:
- بالنسبة لسجلات تدقيق نشاط المسؤول، حدد النشاط .
- بالنسبة لسجلات تدقيق الوصول إلى البيانات، حدد data_access .
- بالنسبة لسجلات تدقيق أحداث النظام، حدد system_event .
- بالنسبة لسجلات التدقيق المرفوضة للسياسة، حدد السياسة .
إذا لم تظهر لك هذه الخيارات، فهذا يعني عدم توفر أي سجلات تدقيق من هذا النوع في مشروع أو مجلد أو مؤسسة Firebase.
لمزيد من التفاصيل حول الاستعلام باستخدام Logs Explorer، راجع إنشاء استعلامات السجل .
com.gcloud
توفر أداة سطر الأوامر gcloud
واجهة سطر أوامر لواجهة برمجة تطبيقات 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
، راجع قراءة إدخالات السجل .
واجهة برمجة التطبيقات
عند إنشاء استعلاماتك، استبدل المتغيرات بقيم صالحة، واستبدل اسم أو معرفات سجل التدقيق المناسب على مستوى المشروع أو المجلد أو مستوى المؤسسة كما هو مدرج في أسماء سجل التدقيق. على سبيل المثال، إذا كان استعلامك يتضمن 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 .