قم بتكوين اتصال TLS في قاعدة البيانات الخاصة بـ Azure لـ PostgreSQL - الخادم الأحادي

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

هام

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

تفضل قاعدة البيانات الخاصة بـ Azure لـ PostgreSQL توصيل تطبيقات العميل بخدمة PostgreSQL باستخدام بروتوكول أمان طبقة النقل (TLS)، المعروف سابقًا باسم طبقة المآخذ الآمن (SSL). يساعد فرض اتصالات TLS بين خادم قاعدة البيانات وتطبيقات العميل على الحماية من هجمات "man-in-the-middle" عن طريق تشفير تدفق البيانات بين الخادم والتطبيق الخاص بك.

بشكل افتراضي، يتم تكوين خدمة قاعدة البيانات الخاصبة بـ PostgreSQL لتتطلب اتصال TLS. يمكنك اختيار تعطيل طلب TLS إذا كان تطبيق العميل الخاص بك لا يدعم اتصال TLS.

هام

تم تعيين شهادات SSL المتوسطة ليتم تحديثها بدءا من 31 يناير 2024 (01/31/2024). الشهادة المتوسطة هي شهادة تابعة صادرة عن جذر موثوق به خصيصا لإصدار شهادات الكيان النهائي. والنتيجة هي سلسلة شهادات تبدأ من المرجع المصدق الجذر الموثوق به، من خلال المرجع المصدق الوسيط (أو CAs) وتنتهي بشهادة SSL الصادرة لك. تثبيت الشهادة هو تقنية أمان حيث يتم قبول الشهادات المصرح بها أو مثبتة فقط عند إنشاء جلسة عمل آمنة. يتم رفض أي محاولة لإنشاء جلسة عمل آمنة باستخدام شهادة مختلفة. على عكس المرجع المصدق الجذري الموثوق به، الذي قمنا بتحديثه بالفعل بالكامل خلال السنة الحالية، وحيث يمكن تثبيت الشهادة باستخدام verify-ca أو توجيه العميل سلسلة الاتصال الكامل، لا توجد طريقة قياسية ومستقرة لتثبيت CA وسيط. ومع ذلك، هناك قدرة نظرية على إنشاء مكدس اتصال مخصص لتثبيت الشهادات المتوسطة إلى العميل في مجموعة متنوعة من لغات البرمجة. كما هو موضح أعلاه، في السيناريو غير المحتمل الذي تقوم بتثبيت الشهادات المتوسطة مع التعليمات البرمجية المخصصة، قد تتأثر بهذا التغيير. لتحديد ما إذا كنت تقوم بتثبيت المراجع المصدقة، يرجى الرجوع إلى تثبيت الشهادة وخدمات Azure

فرض الاتصالات الخاصة بـ TLS

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

وبالمثل، تتضمن سلاسل الاتصال المحددة مسبقًا في إعدادات "سلاسل الاتصال" ضمن الخادم الخاص بك في المدخل الخاص بـ Azure المعلمات المطلوبة للغات الأكثر شهرة للاتصال بخادم قاعدة البيانات باستخدام TLS. تختلف معلمة TLS بناءً على الموصل، على سبيل المثال "ssl = true" أو "sslmode = need" أو "sslmode = required" والتغيرات الأخرى.

التكوين المتعلق بفرض TLS

يمكنك اختياريًا تعطيل فرض اتصال TLS. توصي Microsoft Azure دائما بتمكين فرض إعداد اتصال SSL لتحسين الأمان.

استخدام مدخل Microsoft Azure

قم بزيارة قاعدة بيانات Azure الخاصة بك لخادم PostgreSQL وحدد أمان الاتصال . استخدم زر التبديل لتمكين أو تعطيل إعدادفرض اتصال SSL. ثم حدد حفظ.

أمن الاتصال - تعطيل إنفاذ TLS/SSL

يمكنك تأكيد الإعداد من خلال عرض صفحة نظرة عامة لرؤية مؤشر حالة فرض SSL.

استخدام Azure CLI

يمكنك تمكين أو تعطيل معلمة فرضssl باستخدامEnabled أو Disabledقيم على التوالي في واجهة سطر الأوامر الخاص بـ Azure.

az postgres server update --resource-group myresourcegroup --name mydemoserver --ssl-enforcement Enabled

تحديد حالة اتصالات SSL

يمكنك أيضا جمع جميع المعلومات حول قاعدة بيانات Azure ل PostgreSQL - استخدام SSL لمثيل خادم واحد حسب العملية والعميل والتطبيق باستخدام الاستعلام التالي:

SELECT datname as "Database name", usename as "User name", ssl, client_addr, application_name, backend_type
   FROM pg_stat_ssl
   JOIN pg_stat_activity
   ON pg_stat_ssl.pid = pg_stat_activity.pid
   ORDER BY ssl;

تأكد من أن التطبيق أو إطار العمل الخاص بك يدعم اتصالات TLS

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

التطبيقات التي تتطلب التحقق من الشهادة من أجل إجراء اتصال TLS

في بعض الحالات، تتطلب التطبيقات ملف شهادة محلية تم إنشاؤه من جهة إصدار شهادات موثوقة (CA) للاتصال الآمن. تقع شهادة الاتصال بقاعدة البيانات الخاصة بـ Azure لخادم PostgreSQL فيhttps://www.digicert.com/CACerts/BaltimoreCyberTrustRoot.crt.pem. قم بتنزيل ملف الشهادة واحفظه في الموقع المفضل الخاص بك.

راجع الارتباطات التالية للشهادات للخوادم في السحب السيادية: Azure Government وMicrosoft Azure التي تديرها 21Vianet وAzure Germany.

إجراء الاتصال باستخدام psql

يوضح المثال التالي كيفية الاتصال بخادم PostgreSQL باستخدام الأداة المساعدة لسطر الأوامر الخاص بـ psql. استخدمsslmode=verify-fullإعداد سلسلة الاتصال لفرض التحقق من شهادة TLS/SSL. قم بتمرير مسار ملف الشهادة المحلية إلىsslrootcertالمعلمة.

الأمر التالي هو مثال على سلسلة عملية إجراء الاتصال الخاص بـ psql:

psql "sslmode=verify-full sslrootcert=BaltimoreCyberTrustRoot.crt host=mydemoserver.postgres.database.azure.com dbname=postgres user=myusern@mydemoserver"

تلميح

تأكد من أن القيمة التي تم تمريرهاsslrootcert تتطابق مع مسار الملف للشهادة التي قمت بحفظها.

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

قاعدة البيانات الخاصة بـ Azure لـ PostgreSQL - تدعم الخادم أحادي التشفير للعملاء المتصلين بخادم قاعدة البيانات باستخدام بروتوكول أمان طبقة النقل (TLS). TLS هو بروتوكول قياسي في الصناعة يضمن اتصالات شبكة مشفرة بين خادم قاعدة البيانات وتطبيقات العميل، مما يسمح لك بالالتزام بمتطلبات الامتثال.

TLS settings

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

إعداد الحد الأدنى لـ TLS إصدار TLS الخاص بالعميل المدعوم
TLSEnforcementDisabled (الافتراضي) لا يتطلب وجود TLS
TLS1_0 TLS 1.0 وTLS 1.1 وTLS 1.2 وما فوق
TLS1_1 TLS 1.1 وTLS 1.2 وما فوق
TLS1_2 الإصدار 1.2 وأعلى

على سبيل المثال، تعيين الحد الأدنى من إصدار إعداد TLS هذا على TLS 1.0 يعني أن الخادم الخاص بك يسمح بالاتصالات من العملاء باستخدام TLS 1.0 و 1.1 و 1.2 وما فوق. بدلاً من ذلك، يعني تعيين هذا على 1.2 أنك تسمح فقط بالاتصالات من العملاء الذين يستخدمون TLS 1.2وما فوق ويتم رفض جميع الاتصالات معTLS 1.0 و TLS 1.1.

إشعار

بشكل افتراضي، لا تفرض قاعدة البيانات الخاصة بـ Azure لـ PostgreSQL حدًا أدنى من إصدار TLS (الإعدادTLSEnforcementDisabled).

بمجرد فرض الحد الأدنى من إصدار TLS، لا يمكنك لاحقًا تعطيل الحد الأدنى من فرض الإصدار.

لمعرفة كيفية تعيين إعداد TLS لقاعدة البيانات الخاص بـ Azure لخادم PostgreSQL الأحادي، راجع كيفية تكوين إعداد TLS.

دعم التشفير بواسطة قاعدة البيانات الخاصة بـ Azure لخادم PostgreSQL الأحادي

كجزء من اتصال SSL / TLS، يتم التحقق من صحة مجموعات التشفير ولا يُسمح إلا بدعاوى التشفير بالاتصال بخادم قاعدة البيانات. يتم التحكم في التحقق المتعلق بصحة مجموعة التشفير في طبقة البوابة وليس بشكل صريح على العقدة نفسها. إذا لم تتطابق مجموعات التشفير مع أحد المجموعات المدرجة أدناه، يتم رفض اتصالات العميل الواردة.

مجموعة التشفير المدعومة

  • TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
  • TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
  • TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384
  • TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256

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

راجع خيارات اتصال التطبيق المختلفة في مكتبات الاتصال لقاعدة البيانات الخاصة بـ Azure ل PostgreSQL.