إعداد Apigee mTLS

بعد تثبيت المكوّن apigee-mtls على كل عقدة في المجموعة، عليك إعداده وإعداده. ويمكنك إجراء ذلك من خلال إنشاء زوج مفاتيح/مفاتيح وتعديل ملف الإعداد على جهاز الإدارة. ويمكنك بعد ذلك نشر الملفات التي تم إنشاؤها على جميع العُقد في المجموعة وإعداد المكوّن المحلي apigee-mtls.

إعداد apigee-mtls (بعد التثبيت الأولي)

يوضّح هذا القسم طريقة ضبط Apigee mTLS لمركز بيانات واحد مباشرةً بعد عملية التثبيت الأولية. للحصول على معلومات حول إجراء تحديثات على تثبيت حالي لـ Apigee mTLS، يُرجى الاطِّلاع على تغيير إعداد apigee-mtls الحالي. للحصول على معلومات عن إعداد مراكز بيانات متعددة، يمكنك الاطّلاع على ضبط مراكز بيانات متعددة لخدمة Apigee mTLS.

في ما يلي العملية العامة لضبط apigee-mtls:

  1. تعديل ملف الإعداد: على جهاز الإدارة، عدِّل ملف الإعداد لتضمين إعدادات apigee-mtls.
  2. تثبيت Consul وإنشاء بيانات اعتماد: ثبِّت Consul واستخدِمها لإنشاء بيانات اعتماد TLS (مرة واحدة فقط).

    بالإضافة إلى ذلك، يمكنك تعديل ملف إعداد mgee mTLS لإجراء ما يلي:

    1. إضافة معلومات بيانات الاعتماد
    2. تحديد الطوبولوجيا في المجموعة

    يمكنك استخدام بيانات الاعتماد الحالية أو إنشاءها باستخدام Consul.

  3. توزيع ملف الإعداد وبيانات الاعتماد: يمكنك توزيع زوج الشهادات/المفتاح الذي تم إنشاؤه وملف الإعداد المعدّل نفسه على جميع العُقد في مجموعتك.
  4. إعداد apigee-mtls: إعداد مكوِّن apigee-mtls في كل عقدة

وتم وصف كل خطوة من هذه الخطوات في الأقسام التالية.

الخطوة 1: تعديل ملف الإعداد

يوضّح هذا القسم طريقة تعديل ملف الإعداد لتضمين مواقع ضبط mTLS. للحصول على معلومات عامة عن ملف الإعداد، راجِع إنشاء ملف إعداد.

بعد تعديل ملف الإعداد باستخدام سمات mTLS، يمكنك بعد ذلك نسخه إلى جميع العُقد في المجموعة قبل إعداد مكوّن apigee-mtls على هذه العُقد.

تستخدم الأوامر التي تشير إلى ملف الإعداد "config_file" للإشارة إلى أن موقعه متغير، بناءً على مكان تخزينه في كل عقدة.

لتعديل ملف الإعداد:

  1. على جهاز الإدارة، افتح ملف الإعداد.
  2. انسخ المجموعة التالية من خصائص ضبط mTLS والصقها في ملف الإعداد:
    ALL_IP="ALL_PRIVATE_IPS_IN_CLUSTER"
    ZK_MTLS_HOSTS="ZOOKEEPER_PRIVATE_IPS"
    CASS_MTLS_HOSTS="CASSANDRA_PRIVATE_IPS"
    PG_MTLS_HOSTS="POSTGRES_PRIVATE_IPS"
    RT_MTLS_HOSTS="ROUTER_PRIVATE_IPS"
    MS_MTLS_HOSTS="MGMT_SERVER_PRIVATE_IPS"
    MP_MTLS_HOSTS="MESSAGE_PROCESSOR_PRIVATE_IPS"
    QP_MTLS_HOSTS="QPID_PRIVATE_IPS"
    LDAP_MTLS_HOSTS="OPENLDAP_PRIVATE_IPS"
    MTLS_ENCAPSULATE_LDAP="y"
    
    ENABLE_SIDECAR_PROXY="y"
    ENCRYPT_DATA="BASE64_GOSSIP_MESSAGE"
    PATH_TO_CA_CERT="PATH/TO/consul-agent-ca.pem"
    PATH_TO_CA_KEY="PATH/TO/consul-agent-ca-key.pem"
    APIGEE_MTLS_NUM_DAYS_CERT_VALID_FOR="NUMBER_OF_DAYS"

    حدِّد قيمة كل موقع للتوافق مع الإعدادات.

    يصف الجدول التالي خصائص الضبط هذه:

    الموقع الوصف
    ALL_IP قائمة مفصولة بفواصل لعناوين IP للمضيف الخاص بجميع العُقد في المجموعة.

    لا يهم ترتيب عناوين IP، إلا أنّها يجب أن تكون متطابقة في جميع ملفات الإعداد على مستوى المجموعة.

    في حال ضبط Apigee mTLS لمراكز البيانات المتعدّدة، يمكنك إدراج جميع عناوين IP لجميع المضيفين في جميع المناطق.

    LDAP_MTLS_HOSTS عنوان IP للمضيف الخاص لعقدة OpenLDAP في المجموعة.
    ZK_MTLS_HOSTS

    قائمة بعناوين IP للمضيف الخاص مفصولة بمسافات تتم استضافة عُقد ZooKeeper فيها.

    يُرجى العِلم أنّه وفقًا للمتطلبات، يجب أن تتوفّر ثلاث عُقد على الأقل في ZooKeeper.

    CASS_MTLS_HOSTS قائمة بعناوين IP للمضيف الخاص المفصولة بمسافات تتم استضافة خوادم Cassandra بها في المجموعة.
    PG_MTLS_HOSTS قائمة بعناوين IP للمضيف الخاص مفصولة بمسافات تتم استضافة خوادم Postgres فيها.
    RT_MTLS_HOSTS قائمة بعناوين IP للمضيف الخاص مفصولة بمسافات تتم استضافة أجهزة التوجيه عليها.
    MTLS_ENCAPSULATE_LDAP تشفير حركة بيانات LDAP بين معالج البيانات وخادم LDAP. اضبط النوع على y.
    MS_MTLS_HOSTS قائمة بعناوين IP للمضيف الخاص مفصولة بمسافات تتم استضافة عُقد خادم الإدارة عليها في المجموعة.
    MP_MTLS_HOSTS قائمة بعناوين IP للمضيف الخاص المفصولة بمسافات تتم استضافة معالجات الرسائل فيها في المجموعة.
    QP_MTLS_HOSTS قائمة بعناوين IP للمضيف الخاص المفصولة بمسافات تتم استضافة خوادم Qbid عليها في المجموعة.
    ENABLE_SIDECAR_PROXY تحدِّد هذه السياسة ما إذا كان يجب أن يكون "كاساندرا" و"بوستغريز" على دراية بشبكة الخدمات المتداخلة.

    ويجب ضبط هذه القيمة على "y".

    ENCRYPT_DATA مفتاح التشفير Base64 الذي استخدمه Consul . لقد أنشأت هذا المفتاح باستخدام الأمر consul keygen في الخطوة 2: تثبيت Consul وإنشاء بيانات اعتماد.

    يجب أن تكون هذه القيمة هي نفسها في جميع العُقد في المجموعة.

    PATH_TO_CA_CERT موقع ملف الشهادة على العقدة. لقد أنشأت هذا الملف في الخطوة 2: تثبيت Consul وإنشاء بيانات اعتماد.

    يجب أن يكون هذا الموقع الجغرافي هو نفسه في جميع العُقد في المجموعة حتى تكون ملفات الإعداد متطابقة.

    يجب أن تكون الشهادة X509v3 مشفّرة.

    PATH_TO_CA_KEY موقع ملف المفتاح على العقدة. لقد أنشأت هذا الملف في الخطوة 2: تثبيت Consul وإنشاء بيانات اعتماد.

    يجب أن يكون هذا الموقع الجغرافي هو نفسه في جميع العُقد في المجموعة حتى تكون ملفات الإعداد متطابقة.

    يجب أن يتم ترميز ملف المفتاح X509v3.

    APIGEE_MTLS_NUM_DAYS_CERT_VALID_FOR

    عدد الأيام التي تكون فيها الشهادة صالحة عند إنشاء شهادة مخصَّصة.

    والقيمة التلقائية لهذه القيمة هي 365. الحد الأقصى للقيمة هو 7865 يومًا (5 سنوات).

    بالإضافة إلى السمات المذكورة أعلاه، تستخدم Apigee mTLS العديد من المواقع الإضافية عند تثبيتها على إعدادات مركز بيانات متعددة. ولمزيد من المعلومات، يمكنك الاطّلاع على ضبط مراكز بيانات متعددة.

  3. تأكَّد من أنّ السمة ENABLE_SIDECAR_PROXY هي الحرف "y".
  4. عدِّل عناوين IP في المواقع الإلكترونية ذات الصلة بالمضيف. تأكَّد من استخدام عناوين IP الخاصة عند الإشارة إلى كل عقدة، وليس عناوين IP العلنية.

    في الخطوات اللاحقة، يمكنك ضبط قيم السمات الأخرى، مثل ENCRYPT_DATA وPATH_TO_CA_CERT وPATH_TO_CA_KEY. ولم تضبط قيمها بعد.

    عند تعديل خصائص ضبط apigee-mtls، لاحظ ما يلي:

    • جميع السمات عبارة عن سلاسل، ويجب تغليف قيم جميع السمات بين علامتَي اقتباس مفردة أو مزدوجة.
    • إذا كانت القيمة المتعلقة بالمضيف تضمّ أكثر من عنوان IP خاصًا، افصل بين عناوين IP باستخدام مسافة.
    • استخدِم عناوين IP خاصة، وليس أسماء مضيفين أو عناوين IP علنية لجميع المواقع الإلكترونية ذات الصلة بالمضيف في ملف الإعداد.
    • يجب أن يكون ترتيب عناوين IP في قيمة السمة بالترتيب نفسه في جميع ملفات الإعداد على مستوى المجموعة.
  5. احفظ التغييرات في ملف الإعداد.

الخطوة 2: تثبيت Consul وإنشاء بيانات اعتماد

يوضّح هذا القسم طريقة تثبيت Consul وإنشاء بيانات اعتماد.

يجب اختيار إحدى الطرق التالية لإنشاء بيانات الاعتماد:

  • إنشاء مرجع تصديق خاص بك باستخدام Consul كما هو موضّح في هذا القسم (موصى به)
  • استخدام بيانات اعتماد مرجع تصديق حالي مع Apigee mTLS (إعدادات متقدّمة)

لمحة عن بيانات الاعتماد

تتألف بيانات الاعتماد مما يلي:

  • الشهادة: شهادة بروتوكول أمان طبقة النقل (TLS) المستضافة على كل عقدة
  • المفتاح: المفتاح العام لبروتوكول أمان طبقة النقل (TLS) المستضاف على كل عقدة
  • رسالة شائع: مفتاح تشفير مشفّر في الأساس 64

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

لمزيد من المعلومات عن تنفيذ تشفير Consul، يُرجى الاطّلاع على ما يلي:

تثبيت Consul وإنشاء بيانات اعتماد

يمكنك استخدام البرنامج الثنائي Consul المحلي لإنشاء بيانات اعتماد يستخدمها Apigee mTLS للمصادقة على الاتصالات الآمنة بين العُقد في مجموعة Cloud Private. ونتيجة لذلك، يجب تثبيت Consul على جهاز الإدارة قبل أن تتمكن من إنشاء بيانات اعتماد.

لتثبيت Consul وإنشاء بيانات اعتماد mTLS:

  1. على جهازك الإداري، نزِّل البرنامج الثنائي Consul 1.6.2 من موقع HashiCorp الإلكتروني.
  2. استخرِج محتوى ملف الأرشيف الذي تم تنزيله. على سبيل المثال، يمكنك استخراج المحتوى إلى /opt/consul/.
  3. على جهازك الإداري، أنشِئ مرجع تصديق جديد (CA) من خلال تنفيذ الأمر التالي:
    /opt/consul/consul tls ca create

    يُنشئ Consul الملفات التالية التي تُعد زوجًا من الشهادات/المفاتيح:

    • consul-agent-ca.pem (الشهادة)
    • consul-agent-ca-key.pem (مفتاح)

    وفقًا للإعدادات التلقائية، يتم تشفير ملفات الشهادات والمفاتيح X509v3.

    في وقت لاحق، ستنسخ هذه الملفات إلى جميع العُقد في المجموعة. في الوقت الحالي، عليك فقط تحديد مكان وضع العُقد التي ستضع فيها هذه الملفات. ويجب وضعها في الموقع الجغرافي نفسه لكل عقدة. مثلاً: /opt/apigee/

  4. في ملف الإعداد، اضبط قيمة PATH_TO_CA_CERT على الموقع الجغرافي الذي ستنسخ إليه الملف consul-agent-ca.pem على العقدة. على سبيل المثال:
    PATH_TO_CA_CERT="/opt/apigee/consul-agent-ca.pem"
  5. اضبط قيمة PATH_TO_CA_KEY على الموقع الجغرافي الذي ستنسخ فيه الملف consul-agent-ca-key.pem إلى العقدة. على سبيل المثال:
    PATH_TO_CA_KEY="/opt/apigee/consul-agent-ca-key.pem"
  6. أنشئ مفتاح تشفير لـ Consul عن طريق تنفيذ الأمر التالي:
    /opt/consul/consul keygen

    ينتج عن Consul سلسلة عشوائية تبدو مشابهة لما يلي:

    QbhgD+EXAMPLE+Y9u0742X/IqX3X429/x1cIQ+JsQvY=
  7. انسخ السلسلة واضبطها على أنها السمة للسمة ENCRYPT_DATA في ملف الإعداد. على سبيل المثال:
    ENCRYPT_DATA="QbhgD+EXAMPLE+Y9u0742X/IqX3X429/x1cIQ+JsQvY="
  8. احفظ ملف الإعداد.

يوضّح المثال التالي الإعدادات ذات الصلة ببروتوكول mTLS في ملف إعداد (مع أمثلة على القيم):

...
IP1=10.126.0.121
IP2=10.126.0.124
IP3=10.126.0.125
IP4=10.126.0.127
IP5=10.126.0.130
ALL_IP="$IP1 $IP2 $IP3 $IP4 $IP5"
LDAP_MTLS_HOSTS="$IP3"
ZK_MTLS_HOSTS="$IP3 $IP4 $IP5"
CASS_MTLS_HOSTS="$IP3 $IP4 $IP5"
PG_MTLS_HOSTS="$IP2 $IP1"
RT_MTLS_HOSTS="$IP4 $IP5"
MS_MTLS_HOSTS="$IP3"
MP_MTLS_HOSTS="$IP4 $IP5"
QP_MTLS_HOSTS="$IP2 $IP1"
ENABLE_SIDECAR_PROXY="y"
ENCRYPT_DATA="QbhgD+EXAMPLE+Y9u0742X/IqX3X429/x1cIQ+JsQvY="
PATH_TO_CA_CERT="/opt/apigee/consul-agent-ca.pem"
PATH_TO_CA_KEY="/opt/apigee/consul-agent-ca-key.pem"
...

الخطوة 3: توزيع ملف الإعداد وبيانات الاعتماد

انسخ الملفات التالية إلى العُقد التي تشغّل تطبيق ZooKeeper باستخدام أداة مثل scp:

  • ملف الإعداد: انسخ النسخة المعدَّلة من هذا الملف واستبدل النسخة الحالية على جميع العُقد (وليس فقط العُقد التي تشغّل ZooKeeper).
  • consul-agent-ca.pem: يمكنك نسخ البيانات إلى المكان الذي حدّدته كقيمة PATH_TO_CA_CERT في ملف الإعداد.
  • consul-agent-ca-key.pem: نسخ الموقع الجغرافي المحدّد على أنّه قيمة PATH_TO_CA_KEY في ملف الإعدادات

تأكَّد من أنّ المواقع الجغرافية التي تنسخ إليها الشهادة وملفات المفتاح تتطابق مع القيم التي حدّدتها في ملف الإعداد في الخطوة 2: تثبيت Consul وإنشاء بيانات الاعتماد.

الخطوة 4: إعداد apigee-mtls

بعد تعديل ملف الإعداد، انسخه وبيانات الاعتماد إلى جميع العُقد في المجموعة، وثبّت apigee-mtls في كل عقدة، ستكون جاهزًا لإعداد المكوّن apigee-mtls على كل عقدة.

لإعداد apigee-mtls:

  1. سجِّل الدخول إلى عقدة في المجموعة بصفتك المستخدم الجذر. يمكنك تنفيذ هذه الخطوات على العُقد بأي ترتيب تريده.
  2. اجعل مستخدم apigee:apigee مالكًا لملف الإعدادات المعدَّل، كما هو موضَّح في المثال التالي:
    chown apigee:apigee config_file
  3. اضبط المكوِّن apigee-mtls من خلال تنفيذ الأمر التالي:
    /opt/apigee/apigee-service/bin/apigee-service apigee-mtls setup -f config_file
  4. (اختياري) نفِّذ الأمر التالي للتحقّق من إتمام الإعداد بنجاح:
    /opt/apigee/apigee-mtls/lib/actions/iptables.sh validate
  5. يمكنك بدء Apigee mTLS من خلال تنفيذ الأمر التالي:
    /opt/apigee/apigee-service/bin/apigee-service apigee-mtls start

    بعد تثبيت Apigee mTLS، عليك بدء هذا المكوِّن قبل أي مكوِّنات أخرى على العقدة.

  6. (عُقد Casassandra فقط) تتطلّب Casasdra المزيد من الوسيطات للعمل ضمن شبكة الأمان المتداخلة. ونتيجةً لذلك، عليك تنفيذ الأوامر التالية في كل عقدة Cassandra:
    /opt/apigee/apigee-service/bin/apigee-service apigee-cassandra setup -f config_file
    /opt/apigee/apigee-service/bin/apigee-service apigee-cassandra configure
    /opt/apigee/apigee-service/bin/apigee-service apigee-cassandra restart
  7. (عُقد Postgres فقط) تتطلب Postgres استخدام وسيطات إضافية للعمل ضمن شبكة الأمان المتداخلة. نتيجة لذلك، يجب إجراء ما يلي على عُقد Postgres:

    (الرئيسية فقط)

    1. نفِّذ الأوامر التالية على عقدة Postgres الرئيسية:
      /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql setup -f config_file
      /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql configure
      /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql restart

    (وضع الاستعداد فقط)

    1. احتفِظ بنسخة احتياطية من بيانات Postgres الحالية. لتثبيت Apigee mTLS، عليك إعادة إعداد عُقَد الشرائح الرئيسية/وضع الاستعداد إلى أن يتم فقدان البيانات. ولمزيد من المعلومات، يُرجى الاطّلاع على إعداد النسخ الرئيسي/الاحترافي لـ Postgres.
    2. احذف جميع بيانات Postgres:
      rm -rf /opt/apigee/data/apigee-postgresql/pgdata
    3. اضبط Postgres ثم أعِد تشغيل Postgres، كما هو موضَّح في المثال التالي:
      /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql setup -f config_file
      /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql configure
      /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql restart

    في حال كنت تُجري عملية تثبيت على علم خريطة مركزيّات متعددة البيانات، يمكنك استخدام مسار مطلق لملف الإعداد.

  8. ابدأ مكوّنات Apigee المتبقية على العقدة في ترتيب البدء، كما يوضّح المثال التالي:
    /opt/apigee/apigee-service/bin/apigee-service component_name start
  9. كرِّر هذه العملية لكل عقدة في المجموعة.
  10. (اختياري) تحقَّق من أنّ apigee-mtls عملية الإعداد تمت بنجاح باستخدام طريقة واحدة أو أكثر من الطرق التالية:
    1. التحقّق من صحة إعدادات iptables
    2. التحقّق من حالة الخادم الوكيل عن بُعد
    3. التحقّق من حالة النصاب

    يتم وصف كل طريقة من هذه الطرق في التحقق من الإعدادات.

تغيير إعداد apigee-mtls الحالي

لتخصيص إعدادات apigee-mtls الحالية، يجب إلغاء تثبيت apigee-mtls وإعادة تثبيته.

أكرِّر هذه النقطة عند تغيير إعدادات بروتوكول mgee المتوفّرة حاليًا في Apigee:

  • وإذا غيّرت ملف الإعداد، يجب أولاً إلغاء تثبيت apigee-mtls وإعادة تشغيل setup أو configure:
    # DO THIS:
    /opt/apigee/apigee-service/bin/apigee-service apigee-mtls uninstall
    
    # BEFORE YOU DO THIS:
    /opt/apigee/apigee-service/bin/apigee-service apigee-mtls setup -f file
    OR
    /opt/apigee/apigee-service/bin/apigee-service apigee-mtls configure
  • يجب إلغاء تثبيت setup أو configure وإعادة تشغيله على جميع العُقد في المجموعة، وليس فقط عقدة واحدة.