تضيف ميزة Apigee mTLS الأمان إلى الاتصالات بين المكوّنات في Edge لمجموعة السحابة الإلكترونية الخاصة.
نظرة عامة على البنية
لتوفير اتصالات آمنة بين المكوّنات، يستخدم Apigee mTLS شبكة خدمات تنشئ اتصالات TLS آمنة ومصادقة بشكل متبادل بين المكوّنات.
تعرض الصورة التالية الاتصالات بين مكوّنات Apigee التي يؤمّنها بروتوكول mTLS في Apigee (in red). المنافذ المعروضة في الصورة هي أمثلة، لذا يُرجى الرجوع إلى استخدام المنافذ للاطّلاع على قائمة بالنطاقات التي يمكن لكل مكوّن استخدامها.

(يُرجى العِلم أنّ المنافذ المُشار إليها بالحرف "M" تُستخدَم لإدارة المكوّن ويجب أن تكون مفتوحة على المكوّن ليتمكّن خادم الإدارة من الوصول إليها).
كما ترى في المخطط أعلاه، يضيف Apigee mTLS الأمان إلى الاتصالات بين معظم المكونات في المجموعة، بما في ذلك:
| المصدر | الوجهة | |
|---|---|---|
| خادم الإدارة | عُقد جهاز التوجيه وMP وQPid وLDAP وPostgres وZookeeper وCassandra | |
| جهاز التوجيه | Loopback؛ عُقد Qpid وZookeeper وCassandra | |
| معالج الرسائل | Loopback; Qpid, Zookeeper, and Cassandra nodes | |
| ZooKeeper وCassandra | عُقد Zookeeper وCassandra الأخرى | |
| Edge UI | SMTP (لموفّر الهوية الخارجي فقط) | |
| Postgres | عُقد Postgres وZookeeper وCassandra الأخرى |
تشفير الرسائل وفك تشفيرها
تتكوّن شبكة خدمة Apigee mTLS من خوادم Consul التي تعمل على كل عقدة ZooKeeper في مجموعتك وخدمات Consul التالية على كل عقدة في المجموعة:
- وكيل خروج يعترض الرسائل الصادرة على عقدة المضيف وتعمل هذه الخدمة على تشفير الرسائل الصادرة قبل إرسالها إلى وجهتها.
- خادم وكيل وارد يعترض الرسائل الواردة على عقدة المضيف وتعمل هذه الخدمة على فك تشفير الرسائل الواردة قبل إرسالها إلى وجهتها النهائية.
على سبيل المثال، عندما يرسل خادم الإدارة رسالة إلى جهاز التوجيه، تعترض خدمة الخادم الوكيل الصادر الرسالة الصادرة وتشفّرها ثم ترسلها إلى جهاز التوجيه. عندما تتلقّى عقدة "الموجّه" الرسالة، تفكّ خدمة الخادم الوكيل للدخول تشفير الرسالة ثم تمرّرها إلى مكوّن "الموجّه" لمعالجتها.
تتم هذه العملية بشكل شفاف لمكوّنات Edge: فهي لا تدرك عملية التشفير وفك التشفير التي تنفّذها خدمات وكيل Consul.
بالإضافة إلى ذلك، يستخدم Apigee mTLS الأداة المساعدة iptables، وهي خدمة جدار حماية Linux
تدير إعادة توجيه الزيارات.
المتطلبات
توفّر Apigee mTLS طريقة متّبعة في المجال لضبط شبكة الخدمات وتثبيتها. وهو يتيح إدارة الحزم والتشغيل الآلي لعملية الإعداد.
بما أنّ خدمات وكيل Consul مرتبطة بشكل وثيق كعمليات تخصيص منافذ للعمليات الفردية، فإنّ أي تغيير في عقدة واحدة يؤثر في كل عقدة أخرى. ونتيجةً لذلك، إذا تغيّرت البنية، عليك إعادة ضبط الخدمات وإعادة إعدادها على كل عقدة في المجموعة.
قبل تثبيت Apigee mTLS، يجب أن تستوفي بيئتك المتطلبات التالية الموضّحة في هذا القسم.
وتشمل هذه المتطلّبات ما يلي:
- إصدار Edge for the Private Cloud
- مجموعة من الأدوات المساعدة التي تم تثبيتها وتفعيلها
- حساب مستخدم بمستوى الأذونات المناسب
- جهاز إدارة (يُنصح به)
متطلبات Edge for Private Cloud
يتوافق Apigee mTLS مع الإصدار التالي من Edge for Private Cloud (ولكن ليس على جميع الأنظمة الأساسية المتوافقة، كما هو موضّح في متطلبات نظام التشغيل):
- 4.19.06
- 4.19.01
يتطلّب بروتوكول mTLS في Apigee أن تستخدم مجموعة السحابة الإلكترونية الخاصة مخططًا يتضمّن ثلاث عُقد Zookeeper على الأقل. ونتيجةً لذلك، يمكنك تثبيت Apigee mTLS فقط على المخططات التي تستخدم 5 أو 9 أو 12 (مراكز بيانات متعددة) أو 13 عقدة. لمزيد من المعلومات، يُرجى الاطّلاع على مخططات التثبيت.
متطلبات نظام التشغيل
يتوافق بروتوكول mTLS في Apigee مع الأنظمة الأساسية التالية لمجموعة Private Cloud (يعتمد نظام التشغيل المتوافق مع mTLS على إصدار Private Cloud):
| نظام التشغيل | إصدار السحابة الإلكترونية الخاصة المتوافق | ||
|---|---|---|---|
| v4.19.06 | v4.50.00 | v4.51.00 | |
| CentOS RedHat Enterprise Linux (RHEL) Oracle Linux |
7.5, 7.6, 7.7 | 7.5, 7.6, 7.7, 7.8, 7.9 | 7.5, 7.6, 7.7, 7.8, 7.9, 8.0 |
الأدوات المساعدة/الحِزم
يتطلب Apigee mTLS تثبيت الحزم التالية وتفعيلها على كل جهاز في المجموعة، بما في ذلك جهاز الإدارة، قبل بدء عملية التثبيت:
| أداة مساعدة/حزمة | الوصف | هل يمكن إزالة الملف بعد التثبيت؟ |
|---|---|---|
base64 |
يتحقّق من البيانات ضمن نصوص التثبيت البرمجية. | |
gnu-bashgnu-sedgnu-grep |
يستخدمه نص التثبيت البرمجي والأدوات الشائعة الأخرى. | |
iptables |
يحلّ محلّ جدار الحماية التلقائي، firewalld. |
|
iptables-services |
توفّر هذه الإضافة وظائف لأداة iptables. |
|
lsof |
يستخدمه نص التثبيت البرمجي. | |
nc |
يتحقّق من مسارات iptables. |
|
openssl |
يوقّع الشهادات محليًا أثناء عملية الإعداد الأولية. |
أثناء التثبيت، يمكنك أيضًا تثبيت حزمة Consul على جهاز الإدارة حتى تتمكّن من إنشاء بيانات الاعتماد ومفتاح التشفير.
تثبّت حزمة apigee-mtls خوادم Consul وتضبطها، بما في ذلك
خوادم وكيل الدخول والخروج على عُقد ZooKeeper في المجموعة.
أذونات حساب المستخدم
يجب أن يكون الحساب الذي ينفّذ عملية تثبيت Apigee mTLS على كل عقدة في المجموعة قادرًا على:
- بدء مكوّنات Apigee وإيقافها وإعادة تشغيلها وإعدادها
- ضبط قواعد جدار الحماية
- إنشاء حساب مستخدم جديد لنظام التشغيل/النظام
- تفعيل الخدمات وإيقافها وبدؤها وإيقافها مؤقتًا وإخفاؤها باستخدام
systemctl
جهاز الإدارة (يُنصح به)
تنصح Apigee بأن يكون لديك عقدة داخل المجموعة يمكنك استخدامها لتنفيذ المهام المختلفة الموضّحة في هذا المستند، بما في ذلك:
- ثبِّت HashiCorp Consul 1.6.2.
- أنشئ مفتاح تشفير Gossip ووزِّعه مع مفتاحَي التشفير/الشهادة.
- عدِّل ملف الإعداد ووزِّعه.
يتطلّب جهاز الإدارة ما يلي:
- لقد نزّلت وثبّتّ أدوات
apigee-serviceوapigee-setupالمساعدة عليه، كما هو موضّح في تثبيت أداة apigee-setup المساعدة في Edge. - يجب أن يكون لدى
scp/sshإذن بالوصول إلى جميع العُقد في المجموعة العنقودية. لتوزيع ملف الإعداد وبيانات الاعتماد، يجب أن يكون لديك إذن وصولscp/sshإلى جميع المضيفين داخل المجموعة. - لديك إذن وصول الجذر إلى جهاز الإدارة.
استخدام المنفذ وتعيينه
يوضّح هذا القسم استخدام المنافذ وتعييناتها لإتاحة اتصالات Consul مع Apigee mTLS.
استخدام المنفذ: جميع العُقد التي تشغّل apigee-mtls
يجب أن تسمح جميع العُقد في المجموعة التي تستخدم خدمة apigee-mtls بالاتصالات
من الخدمات على المضيف المحلي (127.0.0.1). يتيح ذلك لوكلاء Consul التواصل مع الخدمات الأخرى أثناء معالجة الرسائل الواردة والصادرة.
استخدام المنفذ: عُقد خادم Consul (العُقد التي تشغّل ZooKeeper)
يجب فتح معظم المنافذ التالية على عُقد خادم Consul (العُقد التي تشغّل ZooKeeper) لقبول الطلبات من جميع العُقد في المجموعة:
| العقدة | منفذ خادم Consul | الوصف | البروتوكول | السماح بوكلاء mtls الخارجيين * |
|---|---|---|---|---|
| خادم Consul (عُقد ZooKeeper) | 8300 |
يربط جميع خوادم Consul في المجموعة. | متوسط عائد النقرة | |
8301 |
يتولّى معالجة العضوية ورسائل الإعلان على جميع الأجهزة داخل المجموعة. | UDP/TCP | ||
8302 |
منفذ WAN الذي يتعامل مع العضوية ورسائل الإعلان على جميع الأجهزة في إعدادات مراكز بيانات متعددة. | UDP/TCP | ||
8500 |
يتولّى معالجة اتصالات HTTP بواجهات برمجة تطبيقات خادم Consul من العمليات على العقدة نفسها.
لا يُستخدم هذا المنفذ للاتصال أو التنسيق عن بُعد، بل يستمع إلى المضيف المحلي فقط. |
HTTP | ||
8502 |
يعالج اتصالات gRPC+HTTPS بواجهات برمجة تطبيقات خادم Consul من العُقد الأخرى في المجموعة. | gRPC+HTTPS | ||
8503 |
يعالج اتصالات HTTPS بواجهات برمجة تطبيقات خادم Consul من العُقد الأخرى في المجموعة. | HTTPS | ||
8600 |
يتولّى معالجة نظام أسماء النطاقات لخادم Consul. | UDP/TCP | ||
* تنصح Apigee بحصر الطلبات الواردة على أعضاء المجموعة فقط
(بما في ذلك مخزن البيانات المشترك). يمكنك إجراء ذلك باستخدام iptables.
|
||||
كما يوضّح هذا الجدول، يجب أن تفتح العُقد التي تشغّل مكوّن consul-server (عُقد ZooKeeper)
المنافذ 8301 و8302 و8502 و8503 لجميع أعضاء المجموعة الذين يشغّلون
خدمة apigee-mtls، حتى في مراكز البيانات. أما العُقد التي لا تشغّل ZooKeeper،
فلا تحتاج إلى فتح هذه المنافذ.
عمليات تخصيص المنافذ لجميع عُقد Consul (بما في ذلك العُقد التي تشغّل ZooKeeper)
لإتاحة اتصالات Consul، يجب أن تسمح العُقد التي تشغّل مكوّنات Apigee التالية بالاتصالات الخارجية بالمنافذ ضمن النطاقات التالية:
| مكوّن Apigee | النطاق | عدد المنافذ المطلوبة لكل عقدة |
|---|---|---|
| Apigee mTLS | من 10700 إلى 10799 | 1 |
| Cassandra | من 10100 إلى 10199 | 2 |
| معالج الرسائل | من 10500 إلى 10599 | 2 |
| OpenLDAP | من 10200 إلى 10299 | 1 |
| Postgres | من 10300 إلى 10399 | 3 |
| Qpid | من 10400 إلى 10499 | 2 |
| جهاز التوجيه | من 10600 إلى 10699 | 2 |
| ZooKeeper | من 10001 إلى 10099 | 3 |
يخصّص Consul المنافذ بطريقة خطية بسيطة. على سبيل المثال، إذا كانت مجموعتك تحتوي على عقدتَي Postgres، تستخدم العقدة الأولى منفذَين، لذا يخصّص Consul المنفذَين 10300 و10301 لها. تستخدم العقدة الثانية أيضًا منفذَين، لذا يخصّص Consol المنفذَين 10302 و10303 لتلك العقدة. ينطبق هذا على جميع أنواع المكونات.
كما ترى، يعتمد العدد الفعلي للمنافذ على المخطط: إذا كانت مجموعتك تحتوي على عقدتين من Postgres، فستحتاج إلى فتح أربعة منافذ (عقدتان في منفذين لكل منهما).
يُرجى ملاحظة ما يلي:
- لا يمكن لوكلاء Consul الاستماع على المنافذ نفسها التي تستخدمها خدمات Apigee.
- يحتوي Consul على مساحة عنوان منفذ واحدة فقط. يجب أن تكون تعيينات منافذ خادم وكيل Consul فريدة في جميع أنحاء المجموعة، والتي تشمل مراكز البيانات. وهذا يعني أنّه إذا كان الخادم الوكيل "أ" على المضيف "أ" يستمع إلى المنفذ 15000، لا يمكن للخادم الوكيل "ب" على المضيف "ب" الاستماع إلى المنفذ 15000.
- يختلف عدد المنافذ المستخدَمة استنادًا إلى المخطط، كما هو موضّح سابقًا.
في إعدادات مراكز البيانات المتعددة، يجب أن تفتح جميع الأجهزة المضيفة التي تستخدم بروتوكول mTLS المنفذ 8302 أيضًا.
يمكنك تخصيص المنافذ التلقائية التي يستخدمها Apigee mTLS. للحصول على معلومات عن كيفية إجراء ذلك، يُرجى الاطّلاع على تخصيص نطاق منفذ الخادم الوكيل.
القيود
يخضع Apigee mTLS للقيود التالية:
- لا يشفّر اتصالات Cassandra بين العُقد (المنفذ 7000)
- عملية الضبط والإعداد ليست متكررة. هذا يعني أنّه إذا أجريت تغييرًا واحدًا على عقدة واحدة، يجب إجراء التغيير نفسه على جميع العُقد، لأنّ النظام لا يرصد هذا التغيير ويطبّقه على العُقد الأخرى نيابةً عنك. لمزيد من المعلومات، يُرجى الاطّلاع على تغيير إعدادات apigee-mtls الحالية.
المصطلحات
يستخدم هذا القسم المصطلحات التالية:
| العبارة | التعريف |
|---|---|
| cluster | مجموعة الأجهزة التي تشكّل تثبيت Edge for Private Cloud. |
| Consul | شبكة الخدمات التي تستخدمها ميزة mTLS في Apigee للحصول على معلومات حول كيفية تأمين Consul لاتصالات Private Cloud، يُرجى الاطّلاع على نموذج أمان Consul. |
| mTLS | بروتوكول أمان طبقة النقل (TLS) المصادَق عليه بشكل متبادل |
| شبكة الخدمات | شبكة تراكب (أو شبكة داخل شبكة) |
| TLS | بروتوكول أمان طبقة النقل هو بروتوكول مصادقة متّبع في المجال للاتصالات الآمنة. |