قواعد جدار الحماية في قاعدة بيانات Azure لخادم PostgreSQL - الوحيد

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

هام

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

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

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

نظرة عامة على جدار الحماية

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

مثال على كيفية عمل جدار الحماية

الاتصال بالإنترنت

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

java.util.concurrent.ExecutionException: java.lang.RuntimeException: org.postgresql.util.PSQLException: FATAL: لا يوجد إدخال pg_hba.conf للمضيف "123.45.67.890"، المستخدم "adminuser"، قاعدة البيانات "postgresql"، SSL

إشعار

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

الاتصال من Azure

من المستحسن البحث عن عنوان IP الصادر لأي تطبيق أو خدمة وأن تسمح بالوصول مباشرة إلى عناوين IP الفردية أو النطاقات. على سبيل المثال، يمكنك العثور على عنوان IP الصادر لـAzure App Service أو استخدام IP عام مرتبط بجهاز ظاهري أو مورد آخر (انظر المعلومات الواردة بالأسفل حول الاتصال ب IP خاص لجهاز ظاهري عبر نقاط تقديم الخدمة).

إذا لم يتوفر عنوان IP صادر ثابت لخدمة Azure، يمكنك التفكير في تمكين الاتصالات من جميع عناوين IP لمركز بيانات Azure. يمكنك تمكين هذا الإعداد من مدخل Azure عن طريق تعيين الخيار Allow access to Azure services على ON من الجزء Connection security ثم الضغط على Save. من Azure CLI، إعداد قاعدة جدار حماية مع عنوان البداية والنهاية يساوي 0.0.0.0 يفعل ما يعادلها. إذا تم رفض محاولة الاتصال بواسطة قواعد جدار الحماية، فإنه لا يصل إلى قاعدة بيانات Azure لخادم PostgreSQL.

هام

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

تكوين السماح بالوصول إلى خدمات Azure في المدخل

الاتصال من شبكة ظاهرية

للاتصال بأمان بقاعدة بيانات Azure لخادم PostgreSQL من شبكة ظاهرية، ضع في اعتبارك استخدام نقاط تقديم الخدمة VNet.

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

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

استكشاف مشكلات جدار الحماية وإصلاحها

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

  • لم يتم بعد إدخال تغييرات على قائمة السماح: قد يكون هناك تأخير خمس دقائق للتغييرات إلى قاعدة بيانات Azure لتكوين جدار حماية PostgreSQL Server ساري المفعول.

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

    على سبيل المثال، باستخدام عميل JDBC يظهر الخطأ التالي.

    java.util.concurrent.ExecutionException: java.lang.RuntimeException: org.postgresql.util.PSQLException: FATAL: فشلت مصادقة كلمة المرور للمستخدم "yourusername"

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

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

    • الحصول على عنوان IP ثابت بدلا من ذلك لأجهزة الكمبيوتر العميلة ثم قم بإضافة عنوان IP ثابت كقاعدة جدار حماية.

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

  • لا يمكن الاتصال من مورد Azure باستخدام IP المسموح به: تحقق مما إذا تم تمكين نقطة تقديم الخدمة Microsoft.Sql للشبكة الفرعية التي تتصل منها. إذا تم تمكين Microsoft.Sql، فإنه يشير إلى أنك تريد فقط استخدام قواعد نقاط تقديم خدمات الشبكات الظاهرية على تلك الشبكة الفرعية.

    على سبيل المثال، قد يظهر لك الخطأ التالي إذا كنت تتصل من جهاز ظاهري في Azure في شبكة فرعية تم تمكين Microsoft.Sql لها، ولكنها لا تتضمن قاعدة شبكة ظاهرية متوافقة: FATAL: Client from Azure Virtual Networks is not allowed to access the server

  • قاعدة جدار الحماية غير متوفرة لتنسيق IPv6: يجب أن تكون قواعد جدار الحماية بتنسيق IPv4. إذا حددت قواعد جدار الحماية بتنسيق IPv6، فسيظهر خطأ التحقق من الصحة.

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