ضبط Apigee mTLS

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

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

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

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

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

  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 وإنشاء بيانات الاعتماد التي تستخدمها المكوّنات التي تم تفعيل mTLS فيها.

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

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

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

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

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

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

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

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

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

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

  1. على جهاز الإدارة، نزِّل ملف Consul 1.8.0 الثنائي من موقع 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: توزيع ملف الإعداد وبيانات الاعتماد

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