الأمان في قاعدة البيانات الخاصة بـ Azure لـ PostgreSQL - الخادم الفردي

ينطبق على: قاعدة بيانات Azure لـ PostgreSQL - خادم واحد

هام

قاعدة بيانات Azure ل PostgreSQL - خادم واحد على مسار التقاعد. نوصي بشدة بالترقية إلى Azure Database for PostgreSQL - Flexible Server. لمزيد من المعلومات حول الترحيل إلى قاعدة بيانات Azure ل PostgreSQL - خادم مرن، راجع ما يحدث لقاعدة بيانات Azure لخادم PostgreSQL الفردي؟.

تدقيق تسجيل أنشطة قاعدة البيانات في قاعدة بيانات Azure لـPostgreSQL - يتوفر خادم فردي من خلال ملحق تدقيق PostgreSQL، pgAudit. يوفر ملحق pgAudit تسجيلًا مفصلًا لجلسة العمل وتدقيق الكائن.

إشعار

ملحق pgAudit قيد المعاينة على قاعدة بيانات Azure لـPostgreSQL. يمكن تمكينه على الأغراض العامة والخوادم المحسنة للذاكرة فقط.

إذا كنت تريد سجلات على مستوى موارد Azure لعمليات مثل الحوسبة وتحجيم التخزين، راجع نظرة عامة على سجلات النظام الأساسي لـAzure.

اعتبارات الاستخدام

بشكل افتراضي، يتم إصدار عبارات سجل pgAudit مع عبارات السجل العادية باستخدام مرفق التسجيل القياسي Postgres. في قاعدة بيانات Azure لـPostgreSQL، يمكن تنزيل ملفات .log هذه من خلال مدخل Microsoft Azure أو Azure CLI. الحد الأقصى للتخزين لمجموعة الملفات هو 1 غيغابايت. يتوفر كل ملف لمدة سبعة أيام كحد أقصى. الافتراضي هو ثلاثة أيام. هذه الخدمة هي خيار تخزين قصير الأجل.

بدلًا من ذلك، يمكنك تكوين جميع السجلات لإرسالها إلى مخزن سجلات Azure Monitor للتحليلات اللاحقة في Log Analytics. إذا قمت بتمكين تسجيل موارد المراقبة، يتم إرسال سجلاتك تلقائيًا بتنسيق JSON إلى Azure Storage أو مراكز أحداث Azure أو سجلات المراقبة، اعتمادًا على اختيارك.

يؤدي تمكين pgAudit إلى إنشاء حجم كبير من التسجيل على خادم، مما يؤثر على الأداء وتخزين السجل. نوصي باستخدام سجلات المراقبة، التي توفر خيارات تخزين وميزات تحليل وتنبيه على المدى الطويل. قم بإيقاف تشغيل التسجيل القياسي لتقليل تأثير أداء التسجيل الإضافي:

  1. عين المعلمة logging_collector على معطل.
  2. أعد تشغيل الخادم لتطبيق هذا التغيير.

لمعرفة كيفية إعداد التسجيل إلى التخزين أو مراكز الأحداث أو سجلات المراقبة، راجع قسم سجلات الموارد في السجلات في قاعدة بيانات Azure لـPostgreSQL - خادم فردي.

تثبيت pgAudit

لتثبيت pgAudit، تحتاج إلى تضمينه في المكتبات المحملة مسبقًا المشتركة للخادم. يتطلب التغيير في معلمة Postgres shared_preload_libraries إعادة تشغيل الخادم ليدخل حيز التنفيذ. يمكنك تغيير المعلمات باستخدام المدخل أو CLI أو واجهة برمجة تطبيقات REST.

لاستخدام المدخل:

  1. حدد قاعدة بيانات Azure لخادم PostgreSQL.

  2. على اليسار، ضمن Settings، حدد Server parameters.

  3. ابحث عن shared_preload_libraries.

  4. حدد PGAUDIT.

    لقطة شاشة تعرض قاعدة بيانات Azure لـ PostgreSQL لتمكين مكتبات Shared_preload_libraries لـ PGAUDIT.

  5. أعد تشغيل الخادم لتطبيق التغييرات.

  6. الاتصال إلى الخادم الخاص بك باستخدام عميل مثل psql، وتمكين ملحق pgAudit:

    CREATE EXTENSION pgaudit;
    

تلميح

إذا رأيت خطأ، فتأكد من إعادة تشغيل الخادم بعد حفظ shared_preload_libraries.

إعدادات pgAudit

باستخدام pgAudit، يمكنك تكوين جلسة العمل أو تسجيل تدقيق العنصر. يصدر تسجيل تدقيق الجلسة سجلات مفصلة من العبارات المنفذة. يتم تحديد نطاق تسجيل تدقيق الكائنات لعلاقات معينة. يمكنك اختيار إعداد نوع واحد أو كلا النوعين من التسجيل.

إشعار

يتم تحديد إعدادات pgAudit بشكل عام ولا يمكن تحديدها على مستوى قاعدة بيانات أو دور.

بعد تثبيت pgAudit، يمكنك تكوين معلماته لبدء التسجيل.

لتكوين pgAudit، في المدخل:

  1. حدد قاعدة بيانات Azure لخادم PostgreSQL.

  2. على اليسار، ضمن Settings، حدد Server parameters.

  3. ابحث عن معلمات pgaudit.

  4. حدد معلمات الإعدادات المناسبة لتحريرها. على سبيل المثال، لبدء التسجيل، قم بتعيين pgaudit.log إلى WRITE.

     لقطة شاشة تعرض قاعدة بيانات Azure لـ PostgreSQL لتمكين مكتبات Shared_preload_libraries لـ PGAUDIT.

  5. حدد حفظ لحفظ التغييرات الخاصة بك.

توفر وثائق pgAudit تعريف كل معلمة. اختبر المعلمات أولًا، وتأكد من حصولك على السلوك المتوقع. على سبيل المثال:

  • عند تشغيل الإعداد pgaudit.log_client، فإنه يعيد توجيه السجلات إلى عملية عميل مثل psql بدلًا من كتابتها إلى ملف. بشكل عام، اترك هذا الإعداد معطلًا.
  • يتم تمكين المعلمة pgaudit.log_level فقط عند تشغيل pgaudit.log_client.

إشعار

في قاعدة بيانات Azure لـPostgreSQL، لا يمكن تعيين pgaudit.log باستخدام اختصار علامة الطرح (-) كما هو موضح في وثائق pgAudit. يجب تحديد جميع فئات العبارات المطلوبة، مثل READ وWRITE، بشكل فردي.

تنسيق سجل التدقيق

يشار إلى كل إدخال تدقيق بـAUDIT: بالقرب من بداية سطر السجل. تنسيق بقية الإدخال مفصل في وثائق pgAudit.

إذا كنت بحاجة إلى أي حقول أخرى لتلبية متطلبات التدقيق الخاصة بك، فاستخدم معلمة Postgres log_line_prefix. السلسلة log_line_prefix هي الإخراج في بداية كل سطر سجل Postgres. على سبيل المثال، يوفر الإعداد التالي log_line_prefix الطابع الزمني واسم المستخدم واسم قاعدة البيانات ومعرف العملية:

t=%m u=%u db=%d pid=[%p]:

لمعرفة المزيد حول log_line_prefix، راجع وثائق PostgreSQL.

الشروع في العمل

للبدء بسرعة، قم بتعيين pgaudit.log إلى WRITE. ثم افتح سجلاتك لمراجعة الإخراج.

عرض سجلات التدقيق

إذا كنت تستخدم ملفات .log، يتم تضمين سجلات التدقيق الخاصة بك في نفس الملف كسجلات أخطاء PostgreSQL. يمكنك تنزيل ملفات السجل من المدخل أو CLI.

إذا كنت تستخدم تسجيل موارد Azure، فإن الطريقة التي تصل بها إلى السجلات تعتمد على نقطة النهاية التي تختارها. بالنسبة للتخزين، راجع سجلات موارد Azure. بالنسبة لمراكز الأحداث، راجع أيضًا سجلات موارد Azure.

بالنسبة لسجلات Monitor، يتم إرسال السجلات إلى مساحة العمل التي حددتها. تستخدم سجلات Postgres وضع المجموعة AzureDiagnostics، بحيث يمكن الاستعلام عن ذلك من الجدول AzureDiagnostics، كما هو موضح. لمعرفة المزيد حول الاستعلام والتنبيه، راجع تسجيل الاستعلامات في Azure Monitor.

استخدم هذا الاستعلام للبدء. يمكنك تكوين التنبيهات استناداً إلى الاستعلامات.

البحث عن جميع سجلات Postgres لخادم معين في اليوم الأخير:

AzureDiagnostics
| where LogicalServerName_s == "myservername"
| where TimeGenerated > ago(1d) 
| where Message contains "AUDIT:"

الخطوات التالية