ضبط Apigee mTLS

بعد تثبيت Apigee mTLS على جميع العُقد في مجموعتك، عليك ضبط مكوّن 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 على تلك العُقد.

لتعديل ملف الإعداد، اتّبِع الخطوات التالية:

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

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

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

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

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

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

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

لإنشاء بيانات اعتماد تستخدمها Apigee mTLS لمصادقة الاتصالات الآمنة بين العُقد في مجموعة 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 ثم أعِد تشغيله، كما يوضّح المثال التالي:
      /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 وإعادة تشغيلهما على جميع العُقد في المجموعة، وليس على عقدة واحدة فقط.