قم بتكوين اتصال 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. ثم حدد حفظ.
يمكنك تأكيد الإعداد من خلال عرض صفحة نظرة عامة لرؤية مؤشر حالة فرض 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.
- تعلّم كيفية تكوين TLS