الشبكات مع الوصول العام (عناوين IP المسموح بها) في خادم مرن قاعدة بيانات Azure لـ PostgreSQL

توضح هذه المقالة مفاهيم الاتصال والشبكات لخادم مرن قاعدة بيانات Azure لـ PostgreSQL.

عند إنشاء خادم مرن قاعدة بيانات Azure لـ PostgreSQL، يجب عليك اختيار أحد خيارات الشبكة التالية:

  • الوصول الخاص (تكامل الشبكة الظاهرية)
  • الوصول العام (عناوين IP المسموح بها) ونقطة النهاية الخاصة

تنطبق الخصائص التالية سواء اخترت استخدام الوصول الخاص أو خيار الوصول العام:

  • تحتاج الاتصالات من عناوين IP المسموح بها إلى المصادقة على الخادم المرن قاعدة بيانات Azure لـ PostgreSQL مع بيانات اعتماد صالحة.
  • يتم فرض تشفير الاتصال على نسبة استخدام الشبكة.
  • يحتوي الخادم على اسم مجال مؤهل بالكامل (FQDN). بالنسبة للخاصية hostname في سلاسل الاتصال، استخدم FQDN بدلا من عنوان IP.
  • يتحكم كلا الخيارين في الوصول على مستوى الخادم، وليس على مستوى قاعدة البيانات أو الجدول. استخدم خصائص الأدوار في PostgreSQL للتحكم في الوصول إلى قواعد البيانات والجداول والكائنات الأخرى.

ملاحظة

نظرا لأن خدمة قاعدة بيانات Azure لـ PostgreSQL هي خدمة قاعدة بيانات مدارة، لا يملك المستخدمون حق الوصول إلى المضيف أو نظام التشغيل لعرض ملفات التكوين أو تعديلها مثل pg_hba.conf. تقوم الخدمة تلقائيا بتحديث محتوى الملفات بناء على إعدادات الشبكة.

استخدام شبكات الوصول العام مع قاعدة بيانات Azure ل PostgreSQL

عند اختيار أسلوب الوصول العام، يمكنك الوصول إلى خادم قاعدة بيانات Azure لـ PostgreSQL المرن من خلال نقطة نهاية عامة عبر الإنترنت. نقطة النهاية العامة عنوان DNS عام قابل للحل. تشير عبارة عناوين IP المسموح بها إلى مجموعة من عناوين IP التي تختارها لمنح الإذن بالوصول إلى الخادم الخاص بك. تسمى هذه الأذونات قواعد جدار الحماية.

حدد خيار الشبكة هذا إذا كنت تريد الإمكانات التالية:

  • الاتصال من موارد Azure التي لا تدعم الشبكات الظاهرية.
  • الاتصال من موارد خارج Azure غير المتصلة بواسطة VPN أو Azure ExpressRoute.
  • تأكد من أن الخادم المرن قاعدة بيانات Azure لـ PostgreSQL لديه نقطة نهاية عامة يمكن الوصول إليها من خلال الإنترنت.

تشمل خصائص أسلوب الوصول العام ما يلي:

  • عناوين IP التي تسمح لها فقط بالوصول إلى خادمك المرن قاعدة بيانات Azure لـ PostgreSQL. افتراضياً، لا يُسمح بأي عناوين IP. يمكنك إضافة عناوين IP أثناء إنشاء الخادم أو بعد ذلك.

  • يحتوي خادمك المرن قاعدة بيانات Azure لـ PostgreSQL على اسم DNS قابل للحل بشكل عام.

  • الخادم المرن قاعدة بيانات Azure لـ PostgreSQL الخاص بك غير موجود في إحدى الشبكات الظاهرية Azure.

  • لا تنتقل نسبة استخدام الشبكة من وإلى الخادم الخاص بك عبر شبكة خاصة. تستخدم نسبة استخدام الشبكة مسارات الإنترنت العامة.

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

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

java.util.concurrent.ExecutionException: java.lang.RuntimeException: org.postgresql.util.PSQLException: FATAL: no pg_hba.conf entry for host "123.45.67.890", user "adminuser", database "postgresql", SSL

ملاحظة

للوصول إلى خادم مرن قاعدة بيانات Azure لـ PostgreSQL من الكمبيوتر المحلي، تأكد من أن جدار الحماية على الشبكة والكمبيوتر المحلي يسمح بالاتصال الصادر على منفذ TCP 5432.

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

بالإضافة إلى استخدام مدخل Microsoft Azure، يمكنك إدارة قواعد جدار الحماية برمجيا باستخدام Azure CLI. لمزيد من المعلومات، راجع الشبكات.

السماح بجميع عناوين AZURE IP

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

لتمكين هذا الإعداد من مدخل Microsoft Azure، في جزء Networking ، حدد خانة الاختيار Allow public access from any Azure service within Azure to this server ثم حدد Save.

Important

يعمل الخيار Allow public access from Azure services and resources within Azure على تكوين جدار الحماية للسماح لجميع الاتصالات من Azure، بما في ذلك الاتصالات من اشتراكات العملاء الآخرين. عند تحديد هذا الخيار، تأكد من أن أذونات تسجيل الدخول والمستخدم تقيد الوصول إلى المستخدمين المصرح لهم فقط.

استكشاف مشكلات الوصول العام وإصلاحها

ضع في اعتبارك النقاط التالية عندما لا يتصرف الوصول إلى خادم مرن قاعدة بيانات Azure لـ PostgreSQL كما تتوقع:

  • التغييرات في قائمة السماح غير سارية حتى الآن. قد تستغرق التغييرات في تكوين جدار الحماية للخادم المرن قاعدة بيانات Azure لـ PostgreSQL ما يصل إلى خمس دقائق حتى تصبح سارية المفعول.

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

  • عنوان IP الديناميكي للعميل يمنع الوصول. إذا كان لديك اتصال بالإنترنت بعنوان IP ديناميكي وكنت تواجه مشكلة في تجاوز جدار الحماية، فجرّب أحد الحلول التالية:

    • اطلب من موفر خدمة الإنترنت (ISP) نطاق عناوين IP المعين لأجهزة الكمبيوتر العميلة التي تصل إلى الخادم المرن قاعدة بيانات Azure لـ PostgreSQL. ثم أضف نطاق عنوان IP كقاعدة جدار حماية.
    • الحصول على عنوان IP ثابت بدلاً من ذلك لأجهزة الكمبيوتر للعميل. ثم أضف عنوان IP الثابت كقاعدة جدار حماية.
  • قاعدة جدار الحماية غير متوفرة لتنسيق IPv6. يجب أن تكون قواعد جدار الحماية بتنسيق IPv4. إذا قمت بتحديد قواعد جدار الحماية بتنسيق IPv6، فستحصل على خطأ في التحقق من الصحة.

اسم المضيف

بغض النظر عن خيار الشبكة الذي تختاره، استخدم دائما اسم مجال مؤهل بالكامل (FQDN) كاسم المضيف عند الاتصال بخادم مرن قاعدة بيانات Azure لـ PostgreSQL. عنوان IP الخاص بالخادم غير مضمون للبقاء ثابتا. يساعدك استخدام FQDN على تجنب إجراء تغييرات على سلسلة الاتصال.

مثال يستخدم FQDN كاسم مضيف هو hostname = servername.postgres.database.azure.com. حيثما أمكن، تجنب استخدام hostname = 10.0.0.4 (عنوان خاص) أو hostname = 40.2.45.67 (عنوان عام).

عناوين IP الصادرة لتكوين جدار الحماية

عندما يحتاج الخادم المرن قاعدة بيانات Azure لـ PostgreSQL إلى إجراء اتصالات صادرة بالخدمات الخارجية (على سبيل المثال، للنسخ المتماثل المنطقي أو الملحقات التي تتصل بالموارد الخارجية أو مصادر البيانات الخارجية)، قد تحتاج إلى تكوين قواعد جدار الحماية على هذه الخدمات الخارجية للسماح بنسبة استخدام الشبكة من خادم قاعدة البيانات.

العثور على عنوان IP الخاص بالخادم

للعثور على عنوان IP المعين حاليا لخادم قاعدة بيانات Azure لـ PostgreSQL المرن:

  • باستخدام دقة DNS: حل FQDN الخاص بالخادم (servername.postgres.database.azure.com) للحصول على عنوان IP الحالي. استخدم أدوات مثل nslookup أو dig.

    nslookup servername.postgres.database.azure.com
    
  • باستخدام مدخل Azure: انتقل إلى الخادم المرن قاعدة بيانات Azure لـ PostgreSQL في مدخل Azure. لا يتم عرض عنوان IP العام للخادم بشكل مباشر، ولكن يمكنك العثور عليه عن طريق حل FQDN الخاص بالخادم.

  • استخدام Azure CLI: استخدم Azure CLI للحصول على معلومات حول الخادم الخاص بك ثم حل اسم المضيف:

    az postgres flexible-server show --resource-group myResourceGroup --name myServerName
    

اعتبارات مهمة للاتصالات الصادرة

  • يمكن تغيير عناوين IP: عنوان IP العام المعين إلى خادمك المرن قاعدة بيانات Azure لـ PostgreSQL غير ثابت ويمكن أن يتغير أثناء الصيانة أو التحديثات أو الأحداث التشغيلية الأخرى. استخدم دائما FQDN عندما يكون ذلك ممكنا، وقم بتحديث قواعد جدار الحماية الخارجية بانتظام إذا لزم الأمر.

  • Azure نطاقات IP لمركز البيانات: لتكوين جدار حماية يمكن التنبؤ به بشكل أكبر، اسمح بنسبة استخدام الشبكة من نطاق IP لمركز البيانات Azure بأكمله للمنطقة التي يوجد فيها الخادم. ينشر Azure نطاقات IP لكل منطقة في تنزيل نطاقات IP وعلامات الخدمة في Azure .

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

  • بديل نقطة النهاية الخاصة: للحصول على اتصال أكثر استقرارا ولتجنب عناوين IP العامة، ضع في اعتبارك استخدام نقاط النهاية الخاصة بدلا من الوصول العام.