ضبط Apigee mTLS

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

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

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

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

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

    بالإضافة إلى ذلك، عدِّل ملف إعداد mTLS في Apigee لإجراء ما يلي:

    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، ولكن يجب أن يكون الترتيب نفسه في جميع ملفات الإعداد في المجموعة.

    في حال ضبط بروتوكول mTLS في Apigee لمراكز بيانات متعددة، أدرِج جميع عناوين 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 الخاصة بالمضيفين الذين تتم استضافة خوادم Qpid عليهم في المجموعة.
    ENABLE_SIDECAR_PROXY تحدِّد هذه السياسة ما إذا كان يجب أن تكون Cassandra وPostgres على عِلم بشبكة الخدمة.

    يجب ضبط هذه القيمة على "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، كما هو موضّح في هذا القسم (يُنصح به)
  • استخدام بيانات اعتماد مرجع تصديق حالي مع بروتوكول mTLS في Apigee (متقدّم)

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

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

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

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

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

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

يمكنك استخدام ملف ثنائي محلي من Consul لإنشاء بيانات الاعتماد التي يستخدمها بروتوكول mTLS في Apigee للمصادقة على الاتصالات الآمنة بين العُقد في مجموعة Private Cloud. لذلك، يجب تثبيت 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. (عُقد Cassandra فقط) تتطلّب Cassandra وسيطات إضافية للعمل ضمن شبكة الأمان. نتيجةً لذلك، عليك تنفيذ الأوامر التالية على كل عقدة 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 وإعادة تثبيته.

للتأكيد على هذه النقطة، عند تغيير إعدادات mTLS الحالية في 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 وإعادة تشغيلهما على جميع العُقد في المجموعة، وليس على عقدة واحدة فقط.