ضبط 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) (مرة واحدة فقط).

    بالإضافة إلى ذلك، يمكنك تعديل ملف إعداد Apigee 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 للمضيف الخاص ومفصولة بمسافات حيث تتم استضافة خوادم 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. الحد الأقصى للقيمة هو 7,865 يومًا (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) تتم استضافته على كل عقدة.
  • رسالة شائعات: مفتاح تشفير بترميز base-64

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

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

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

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

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

  1. على جهازك الإداري، نزِّل برنامج Consul 1.6.2 الثنائي من موقع HashiCorp الإلكتروني.
  2. استخرِج محتوى ملف الأرشيف الذي تم تنزيله. على سبيل المثال، يمكنك استخراج المحتوى إلى /opt/consul/.
  3. على جهازك الإداري، أنشِئ مرجع تصديق جديدًا من خلال تنفيذ الأمر التالي:
    /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:
    /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 وإعادة تثبيته.

يُرجى تكرار هذه النقطة عند تغيير إعداد Apigee mTLS حالي:

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