ضبط Apigee mTLS

بعد تثبيت mTLS في Apigee على جميع العقد في مجموعتك، يجب ضبط مكوّن 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"
    TLS_MIN_VERSION="tls12"
    TLS_CIPHER_SUITES="TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384"

    اضبط قيمة كلّ خاصيّة بما يتوافق مع الإعدادات.

    يوضّح الجدول التالي سمات الضبط هذه:

    الموقع الوصف
    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 سنوات).

    TLS_MIN_VERSION تُحدِّد الحد الأدنى لإصدار بروتوكول أمان طبقة النقل (TLS) المسموح به. اضبط القيمة على tls12 لفرض استخدام الإصدار 1.2 من بروتوكول أمان طبقة النقل كحد أدنى.
    TLS_CIPHER_SUITES قائمة مفصولة بفواصل بمجموعات رموز خوارزمية الترميز المسموح بها في بروتوكول أمان طبقة النقل (TLS)

    مثلاً: TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384

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

  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. على جهاز الإدارة، أنشئ هيئة إصدار شهادات جديدة من خلال تنفيذ الأمر التالي:
    /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. ابدأ mTLS في Apigee من خلال تنفيذ الأمر التالي:
    /opt/apigee/apigee-service/bin/apigee-service apigee-mtls start

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

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

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