حماية قاعدة البيانات والخادم

مكتمل

مصادقة قاعدة البيانات التي تُعد بمنزلة الطريقة التي ستؤمن بها قاعدة بياناتك مفتوحة المصدر بطريقة تقليدية. كما تمنحك استضافة قاعدة البيانات هذه في Azure فرصة زيادة تلك الحماية.

وبصفتك مطور قاعدة بيانات لدى Adventureworks، فإنك ترغب في تحسين حماية Azure Database لنظام PostgreSQL لدى شركاتك.

في هذه الوحدة، ستتعرف على الحماية الإضافية الممكنة الآن بعد أن قمت بترحيل قاعدة بيانات PostgreSQL المحلية إلى Azure.

قم بحماية بياناتك.

يتميز نظامي PostgreSQL، وMySQL بالمصادقة وآلياتها الخاصة التي تتحكم في المستخدمين الذين يسمح لهم بالوصول إلى قواعد البيانات، والامتيازات التي يتمتعون بها للعناصر في قواعد البيانات تلك. بينما ينبغي أن تستمر في إدارة المستخدمين والامتيازات بالطريقة نفسها التي قمت بها قبل الترحيل. وتذكر أنه يمكنك استخدام الأدوات الإدارية؛ مثل: pgAdmin، وMySQL Workbench للاتصال بالخوادم التي تستضيفها Azure.

وعلى الرغم من ذلك، توفر Azure حماية إضافية إلى الخوادم الخاصة بك. وتعمل هذه الحماية من خلال ثلاثة مستويات:

  1. تتحكم في الوصول إلى الخادم، وتصفية نسبة استخدام الشبكة من مصادر غير معروفة أو غير موثوق بها.
  2. تحمي نسبة استخدام الشبكة، ما يضمن أنه لا يمكن التلاعب بها أو اعتراضها في أثناء تدفقها من عميل إلى الخادم وإعادتها مرة أخرى.
  3. تحمي الخادم نفسه من التهديدات الخارجية الشائعة.

تتناول الأقسام التالية هذه العناصر بمزيد من التفصيل.

تصفية نسبة استخدام الشبكة بقواعد جدار الحماية

تعمل Azure Database لنظام MySQL، أو PostgreSQL داخل جدار حماية يخضع لإدارة Microsoft. ولا يمكن أن يمر أي شيء بشكل افتراضي من خلال جدار الحماية هذا. ويمكنك إضافة قواعد جدار الحماية؛ لتمكين نسبة استخدام الشبكة من كتل معينة من عناوين IP، كما هو موضح في الوحدات السابقة. كما يوصى بمراجعة عناوين IP المسموح لها بإرسال نسبة استخدام الشبكة على فواصل زمنية متكررة، وإزالة عناوين IP للعملاء التي لم تعد مطلوبة.

وإذا كنت تقوم بتشغيل خدمات Azure الأخرى التي تحتاج إلى استخدام قواعد البيانات الخاصة بك، يجب فتح جدار الحماية لهذه الخدمات. في مدخل Microsoft Azure، في صفحة أمان الاتصال لقاعدة بيانات Azure ل MySQL أو خدمة PostgreSQL، حدد إعداد إجراء السماح بالوصول إلى خدمات Azure بحيث يكون قيد التشغيل.

Image highlighting the Allow access to Azure services action setting in the firewall configuration for Azure Database for MySQL or PostgreSQL

إشعار

قد يستغرق الأمر خمس دقائق حتى تصبح أي تغييرات أجريتها على جدار الحماية نشطة.

في بعض الحالات، قد يستغرق فتح الخادم الخاص بك لكافة خدمات Azure وقتًا مفرطًا. إذا كنت تقوم بتشغيل الإصدار General Purpose أو Memory Optimized من Azure Database لنظام MySQL أو PostgreSQL، يمكنك تصفية نسبة استخدام الشبكة على مستوى الشبكة الظاهرية باستخدام قواعد الشبكة الظاهرية Azure. وتمكنك قواعد الشبكة الظاهرية من السماح لنسبة استخدام الشبكة التي تنشأ من الشبكات الظاهرية الخاصة بك الوصول إلى الخادم. وسيتم حظر نسبة استخدام الشبكة من قِبل الشبكات الأخرى.

Image showing the virtual network rules for Azure Database for MySQL or PostgreSQL

إذا كنت بحاجة إلى إجراء مهام صيانة لجدار الحماية من البرامج النصية، فإنك تستخدم Azure CLI. تستخدم az mysql الأمثلة التالية، التي تضيف قواعد جدار الحماية وتحذفها وتعرضها، الأمر الذي يقوم بعمليات ضد قاعدة بيانات Azure ل MySQL. إذا كنت تقوم بتشغيل أمر PostgreSQL، فاستخدم الأوامر المقابلة az postgres بدلا من ذلك - المعلمات هي نفسها:

السماح بالوصول إلى العملاء ضمن النطاق 13.83.152.0 إلى 13.83.152.15

az mysql server firewall-rule create \
    --resource-group [resource group name] \
    --server-name [Azure Database for MySQL server name] \
    --name FirewallRule1 \
    --start-ip-address 13.83.152.0 \
    --end-ip-address 13.83.152.15

سرد جميع قواعد جدار الحماية

az mysql server firewall-rule list \
    --resource-group [resource group name] \
    --server-name [Azure Database for MySQL server name]

عرض تفاصيل FirewallRule1

az mysql server firewall-rule show \
    --resource-group [resource group name] \
    --server-name [Azure Database for MySQL server name] \
    --name FirewallRule1

إزالة FirewallRule1. سيتم رفض وصول العملاء في نطاق العناوين لهذه القاعدة

az mysql server firewall-rule delete \
    --resource-group [resource group name] \
    --server-name [Azure Database for MySQL server name] \
    --name FirewallRule1

لتمكين الوصول إلى خدمات Azure، قم بإنشاء قاعدة جدار حماية بقيمة start-ip-address وend-ip-address.0.0.0.0

يمكنك إنشاء قواعد الشبكة الظاهرية وإدارتها بطريقة مماثلة az msysql server vnet-rule ، باستخدام الأوامر.

حماية نسبة استخدام الشبكة باستخدام SSL

تم تمكين حماية SSL لـ Azure Database لنظام MySQL، أو PostgreSQL بشكل افتراضي. يمكنك تعطيل SSL وإعادة تمكينه باستخدام إعداد فرض اتصال SSL في صفحة أمان الاتصال ion لخدمة Azure Database for MySQL أو PostgreSQL في مدخل Microsoft Azure:

Image highlighting the Enforce SSL connection setting on the Connection security page for Azure Database for MySQL or PostgreSQL

حماية الخادم باستخدام Azure Advanced Threat Protection

تُعد Advanced Threat Protection بمنزلة طبقة أمان إضافية توفرها Azure. حيث تراقب Advanced Threat Protection إمكانية الوصول إلى الخادم الخاص بك، كما تبحث عن أنماط من السلوك غير العادي أو الضار بشكل محتمل. وعند اكتشاف مثل هذا السلوك، يمكنك ترتيب إرسال تنبيه إلى عناوين البريد الإلكتروني المحددة.

تتضمن أنماط الأنشطة غير العادية المكتشفة:

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

يمكنك تمكين الحماية المتقدمة من التهديدات من صفحة الحماية المتقدمة من التهديدات لخدمتك في مدخل Microsoft Azure:

Image showing the Advanced Threat Protection page for Azure Database for MySQL or PostgreSQL

نسخ خادم احتياطيًا واستعادته

تنسخ Azure Database لخدمة MySQL أو PostgreSQL الخادم احتياطيًا بصورة تلقائية وفق الجدول الزمني التالي:

  • يتم حفظ نسخة احتياطية كاملة أسبوعيًا مع إجراء أول نسخة احتياطية كاملة بمجرد إنشاء الخادم.
  • يتم حفظ نسخة احتياطية تفاضلية مرتين يوميًا.
  • يتم حفظ نسخة احتياطية لسجل المعاملات كل خمس دقائق.

تم نسخ الخادم بأكمله احتياطيًا. ولا يمكنك إجراء نسخ احتياطي لقواعد البيانات الفردية، ولا يمكنك إجراء نسخة احتياطية يدويًا بالقوة.

إعداد خيارات النسخ الاحتياطي

يمكنك استخدام هذه النسخ الاحتياطية لاستعادة أي نقطة في الوقت الذي قمت خلاله بحفظ ملفات النسخ الاحتياطية. يتم الاحتفاظ بالنسخ الاحتياطية لمدة سبعة أيام بشكل افتراضي؛ لكن يمكنك الاحتفاظ بها لمدة تصل إلى 35 يومًا. كما يمكنك تحديد كيفية تخزين النسخ الاحتياطية، حيث يتم الاحتفاظ بالنسخ الزائدة محليًا داخل المنطقة نفسها التي نسخ بها الخادم، ويتم حفظ النسخ الاحتياطية الزائدة جغرافيًا في مراكز البيانات في المناطق الأخرى. يتوفر الخيار الزائد جغرافيًا فقط للخوادم في مستويات التسعير General Purpose وMemory Optimized. يمكنك تعيين خيارات النسخ الاحتياطي على صفحة Pricing Tiers للخادم الخاص بك في مدخل Microsoft Azure:

Image showing the backup configuration section of the pricing tiers page for Azure Database for MySQL or PostgreSQL

استعادة أحد الخوادم

تدعم Azure Database لنظام MySQL أو PostgreSQL نوعين من عمليات استعادة الخادم في الوقت المناسب، واستعادة الموقع الجغرافي. وفي كلتا الحالتين، تقوم عملية الاستعادة بإنشاء خادم جديد. ويبقى الخادم الأصلي متوفرًا. إذا كنت تريد استخدام البيانات المستعادة عبر التطبيقات يجب إعادة تكوينها لاستخدام الخادم الجديد. بالإضافة إلى ذلك، يجب أن تتذكر فتح جدار حماية الخادم الجديد للسماح باتصال العملاء والخدمات.

هام

لا يمكنك استعادة خادم قد تم حذفه. بينما يمكنك أيضًا حذف النسخ الاحتياطية المقترنة به عند حذف الخادم.

استعادة النقطة الزمنية

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

Image showing the point-in-time restore page for Azure Database for MySQL or PostgreSQL

يدعم az mysql/postgres server restoreAzure CLI الأوامر إذا كنت تفضل تنفيذ عمليات الاستعادة من سطر الأوامر. على سبيل المثال:

az mysql server restore \
    --resource-group [resource group name] \
    --name [new Azure Database for MySQL server name] \
    --source-server [original Azure Database for MySQL server name] \
    --restore-point-in-time "2019-10-23T02:10:00+08:00"

الاستعادة الجغرافية

تُعد الاستعادة الجغرافية بمنزلة استعادة كاملة للخادم، وذلك باستخدام نسخة احتياطية في مساحة التخزين الزائدة جغرافيًا. وعند إنشاء خادم جديد باستخدام مدخل Microsoft Azure، يمكنك تحديد نسخة احتياطية زائدة جغرافيًا كمصدر للبيانات. عند إنشاء الخادم الجديد، سيتم تزويدها بقواعد البيانات في النسخة الاحتياطية.

Image showing the server details section when creating an Azure Database for MySQL or PostgreSQL server

يوفر az mysql/postgres server georestore Azure CLI الأوامر لإجراء استعادة جغرافية من سطر الأوامر.

قد يستغرق الأمر ساعة لنسخ نسخة احتياطية مماثلة زائدة جغرافيًا إلى منطقة أخرى. قد يؤدي ذلك إلى فقدان بيانات ما يصل إلى ساعة كاملة إذا كنت بحاجة إلى القيام باستعادة جغرافية من منطقة مختلفة.