تفعيل تشفير المفتاح السري

يوضّح هذا المستند كيفية تفعيل تشفير أسرار المستهلكين (بيانات اعتماد العميل) في تطبيق المطوّر والمخزّنة في قاعدة بيانات Cassandra.

نظرة عامة

في السابق، كانت منصة Apigee Edge for Private Cloud توفّر تشفيرًا اختياريًا لبيانات خريطة القيم الرئيسية (KVM) ورموز الدخول إلى OAuth.

يوضّح الجدول التالي خيارات تشفير البيانات غير النشطة في Apigee for Private Cloud:

الكيان تفعيل التشفير تلقائيًا التشفير متاح اختياريًا مستندات ذات صلة
KVMs لا نعم يمكنك الاطّلاع على لمحة عن آلات KVM المشفَّرة.
رموز الدخول عبر OAuth لا نعم الاطّلاع على كيفية تجزئة الرموز المميزة لتعزيز الأمان
أسرار عملاء تطبيقات المطوّرين لا نعم لتفعيل هذه الميزة، يُرجى تنفيذ خطوات الضبط الواردة في هذا المستند.

لتفعيل تشفير بيانات اعتماد العميل، عليك تنفيذ المهام التالية على جميع عُقد خادم الإدارة ومعالجة الرسائل:

  • أنشئ ملف تخزين مفاتيح لتخزين مفتاح تشفير المفتاح (KEK). تستخدم Apigee هذا المفتاح المشفّر لتشفير المفاتيح السرية اللازمة لتشفير بياناتك.
  • عدِّل خصائص الإعدادات على جميع خوادم الإدارة وعُقد معالجة الرسائل.
  • أنشئ تطبيقًا للمطوّرين لتفعيل إنشاء المفتاح.
  • أعِد تشغيل العُقد.

يتم شرح هذه المهام في هذا المستند.

معلومات مهمة حول ميزة تشفير المفاتيح

توضّح الخطوات الواردة في هذا المستند كيفية تفعيل ميزة KEK، التي تتيح لخدمة Apigee تشفير المفاتيح السرية المستخدَمة لتشفير الأسرار الخاصة بتطبيقات المطوّرين عند تخزينها في حالة عدم النشاط في قاعدة بيانات Cassandra.

بشكلٍ تلقائي، ستبقى أي قيم حالية في قاعدة البيانات بدون تغيير (كنص عادي) وستستمر في العمل كما كان من قبل.

إذا أجريت أي عملية كتابة على كيان غير مشفّر، سيتم تشفيره عند حفظ العملية. على سبيل المثال، إذا ألغيت رمزًا مميزًا غير مشفّر ثم وافقت عليه لاحقًا، سيتم تشفير الرمز المميز الذي تمت الموافقة عليه حديثًا.

الحفاظ على أمان المفاتيح

احرص على تخزين نسخة من ملف تخزين المفاتيح الذي يتم فيه تخزين مفتاح تشفير المفاتيح في مكان آمن. ننصحك باستخدام آلية آمنة خاصة بك لحفظ نسخة من ملف تخزين المفاتيح. كما توضّح التعليمات الواردة في هذا المستند، يجب وضع مخزن مفاتيح على كل عقدة معالج رسائل وخادم إدارة حيث يمكن لملف الإعداد المحلي الإشارة إليه. ومن المهم أيضًا تخزين نسخة من مخزن المفاتيح في مكان آخر لحفظها كنسخة احتياطية.

تفعيل تشفير المفتاح

اتّبِع الخطوات التالية لاستخدام تشفير مفتاح سر العميل:

المتطلبات الأساسية

يجب استيفاء المتطلبات التالية قبل تنفيذ الخطوات الواردة في هذا المستند:

  • يجب تثبيت الإصدار 4.50.00.10 أو إصدار أحدث من Apigee Edge for Private Cloud أو الترقية إليه.
  • يجب أن تكون مشرفًا في Apigee Edge Private Cloud.

الخطوة 1: إنشاء ملف تخزين مفاتيح

اتّبِع الخطوات التالية لإنشاء مخزن مفاتيح للاحتفاظ بمفتاح تشفير المفتاح (KEK):

  1. نفِّذ الأمر التالي لإنشاء ملف تخزين مفاتيح لتخزين مفتاح سيتم استخدامه لتشفير مفتاح تشفير المفتاح (KEK). أدخِل الأمر تمامًا كما هو موضّح. (يمكنك تقديم أي اسم تريده لمخزن المفاتيح):
    keytool -genseckey -alias KEYSTORE_NAME -keyalg AES -keysize 256 \
    -keystore kekstore.p12 -storetype PKCS12

    أدخِل كلمة مرور عندما يُطلب منك ذلك. ستستخدم كلمة المرور هذه في الأقسام اللاحقة عند ضبط خادم الإدارة ومعالج الرسائل.

    ينشئ هذا الأمر ملف تخزين مفاتيح kekstore.p12 يحتوي على مفتاح بالاسم المستعار KEYSTORE_NAME.

  2. (اختياري) تحقَّق من إنشاء الملف بشكل صحيح باستخدام الأمر التالي. إذا كان الملف صحيحًا، يعرض الأمر مفتاحًا بالاسم البديل KEYSTORE_NAME:
    keytool -list -keystore kekstore.p12

الخطوة 2: ضبط خادم الإدارة

بعد ذلك، اضبط خادم الإدارة. إذا كانت لديك خوادم إدارة مثبَّتة على عُقد متعددة، عليك تكرار هذه الخطوات على كل عقدة.

  1. انسخ ملف مخزن المفاتيح الذي أنشأته في الخطوة 1 إلى دليل على عقدة خادم الإدارة، مثل /opt/apigee/customer/application. على سبيل المثال:
    cp certs/kekstore.p12 /opt/apigee/customer/application
  2. تأكَّد من أنّ الملف قابل للقراءة من قِبل المستخدم apigee:
    chown apigee:apigee /opt/apigee/customer/application/kekstore.p12
    chmod 400 /opt/apigee/customer/application/kekstore.p12
  3. أضِف السمات التالية إلى /opt/apigee/customer/application/management-server.properties. إذا لم يكن الملف متوفّرًا، أنشِئه. اطّلِع أيضًا على مرجع ملفات السمات.
    conf_keymanagement_kmscred.encryption.enabled=true
    
    # Fallback is true to ensure your existing plaintext credentials continue to work
    conf_keymanagement_kmscred.encryption.allowFallback=true
    
    conf_keymanagement_kmscred.encryption.keystore.path=PATH_TO_KEYSTORE_FILE
    conf_keymanagement_kmscred.encryption.kek.alias=KEYSTORE_NAME
    
    # These could alternately be set as environment variables. These variables should be
    # accessible to Apigee user during bootup of the Java process. If environment
    # variables are specified, you can skip the password configs below.
    # KMSCRED_ENCRYPTION_KEYSTORE_PASS=
    # KMSCRED_ENCRYPTION_KEK_PASS=
    See also Using environment variables for configuration properties.
    
    conf_keymanagement_kmscred.encryption.keystore.pass=KEYSTORE_PASSWORD
    conf_keymanagement_kmscred.encryption.kek.pass=KEK_PASSWORD

    يُرجى العِلم أنّ KEK_PASSWORD قد يكون هو نفسه KEYSTORE_PASSWORD استنادًا إلى الأداة المستخدَمة لإنشاء ملف تخزين المفاتيح.

  4. أعِد تشغيل خادم الإدارة باستخدام الأوامر التالية:
    /opt/apigee/apigee-service/bin/apigee-service edge-management-server restart
    /opt/apigee/apigee-service/bin/apigee-service edge-management-server wait_for_ready

    يعرض الأمر wait_for_ready الرسالة التالية عندما يكون خادم الإدارة جاهزًا:

    Checking if management-server is up: management-server is up.
  5. إذا كانت لديك خوادم إدارة مثبّتة على عُقد متعددة، كرِّر الخطوات من 1 إلى 4 أعلاه على كل عقدة خادم إدارة.

الخطوة 3: إنشاء تطبيق مطوّر

بعد تحديث خوادم الإدارة، يجب إنشاء تطبيق مطوّر لبدء إنشاء المفتاح المستخدَم لتشفير بيانات بيانات اعتماد العميل:

  1. أنشئ تطبيقًا للمطوّرين لبدء إنشاء مفتاح تشفير البيانات (KEK). لمعرفة الخطوات، يُرجى الاطّلاع على تسجيل تطبيق.
  2. احذف تطبيق المطوّر إذا أردت ذلك. ولست بحاجة إلى الاحتفاظ به بعد إنشاء مفتاح التشفير.

الخطوة 4: ضبط معالِجات الرسائل

إلى أن يتم تفعيل التشفير في معالِجات الرسائل، لن تتمكّن طلبات وقت التشغيل من معالجة أي بيانات اعتماد مشفّرة.

  1. انسخ ملف مخزن المفاتيح الذي أنشأته في الخطوة 1 إلى دليل على عقدة معالج الرسائل، مثل /opt/apigee/customer/application. على سبيل المثال:
    cp certs/kekstore.p12 /opt/apigee/customer/application
  2. تأكَّد من أنّ الملف قابل للقراءة من قِبل المستخدم apigee:
    chown apigee:apigee /opt/apigee/customer/application/kekstore.p12
  3. أضِف السمات التالية إلى /opt/apigee/customer/application/message-processor.properties. إذا لم يكن الملف متوفّرًا، أنشئه. اطّلِع أيضًا على مرجع ملفات السمات.
    conf_keymanagement_kmscred.encryption.enabled=true
    
    # Fallback is true to ensure your existing plaintext credentials continue to work
    conf_keymanagement_kmscred.encryption.allowFallback=true
    
    conf_keymanagement_kmscred.encryption.keystore.path=PATH_TO_KEYSTORE_FILE
    conf_keymanagement_kmscred.encryption.kek.alias=KEYSTORE_NAME
    
    # These could alternately be set as environment variables. These variables should be
    # accessible to Apigee user during bootup of the Java process. If environment
    # variables are specified, you can skip the password configs below.
    # KMSCRED_ENCRYPTION_KEYSTORE_PASS=
    # KMSCRED_ENCRYPTION_KEK_PASS=
    See also Using environment variables for configuration properties.
    
    
    conf_keymanagement_kmscred.encryption.keystore.pass=KEYSTORE_PASSWORD
    conf_keymanagement_kmscred.encryption.kek.pass=KEK_PASSWORD

    يُرجى العِلم أنّ KEK_PASSWORD قد يكون هو نفسه KEYSTORE_PASSWORD حسب الأداة المستخدَمة لإنشاء ملف تخزين المفاتيح.

  4. أعِد تشغيل معالج الرسائل باستخدام الأوامر التالية:
    /opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
    /opt/apigee/apigee-service/bin/apigee-service edge-message-processor wait_for_ready

    يعرض الأمر wait_for_ready الرسالة التالية عندما يكون معالج الرسائل جاهزًا لمعالجة الرسائل:

    Checking if message-processor is up: message-processor is up.
  5. إذا كان لديك معالِجات رسائل مثبَّتة على عُقد متعددة، كرِّر الخطوات من 1 إلى 4 على كل عقدة معالِج رسائل.

ملخّص

سيتم تشفير سر بيانات الاعتماد لأي تطبيقات مطوّرين تنشئها من الآن فصاعدًا أثناء عدم استخدامها في قاعدة بيانات Cassandra.

استخدام متغيرات البيئة لخصائص الإعدادات

يمكنك بدلاً من ذلك ضبط خصائص إعدادات معالج الرسائل وخادم الإدارة التالية باستخدام متغيرات البيئة. في حال ضبطها، تلغي متغيّرات البيئة الخصائص المحدّدة في ملف إعداد معالج الرسائل أو خادم الإدارة.

conf_keymanagement_kmscred.encryption.keystore.pass=
conf_keymanagement_kmscred.encryption.kek.pass=

متغيرات البيئة المقابلة هي:

export KMSCRED_ENCRYPTION_KEYSTORE_PASS=KEYSTORE_PASSWORD
export KMSCRED_ENCRYPTION_KEK_PASS=KEK_PASSWORD

في حال ضبط متغيرات البيئة هذه، يمكنك حذف خصائص الإعدادات هذه من ملفات الإعدادات على عقد معالج الرسائل وخادم الإدارة، لأنّه سيتم تجاهلها:

conf_keymanagement_kmscred.encryption.keystore.pass
conf_keymanagement_kmscred.encryption.kek.pass

مرجع ملف الموقع

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

الموقع تلقائي الوصف
conf_keymanagement_kmscred.encryption.enabled false يجب أن يكون true لتفعيل تشفير المفاتيح.
conf_keymanagement_kmscred.encryption.allowFallback false اضبط allowFallback على true لضمان استمرار عمل بيانات الاعتماد الحالية للنص العادي.
conf_keymanagement_kmscred.encryption.keystore.path لا ينطبق قدِّم المسار إلى مخزن مفاتيح KEK على معالج الرسائل أو عقدة خادم الإدارة. راجِع الخطوة 2: ضبط خادم الإدارة والخطوة 3: ضبط معالجات الرسائل.
conf_keymanagement_kmscred.encryption.kek.alias لا ينطبق الاسم المستعار الذي يتم تخزين مفتاح KEK مقابله في مخزن المفاتيح.
conf_keymanagement_kmscred.encryption.keystore.pass لا ينطبق اختياري إذا كنت تستخدم متغيّرات البيئة لضبط هذه السمات. يمكنك أيضًا الاطّلاع على استخدام متغيرات البيئة لسمات الإعدادات.
conf_keymanagement_kmscred.encryption.kek.pass لا ينطبق اختياري إذا كنت تستخدم متغيّرات البيئة لضبط هذه السمات. اطّلِع أيضًا على استخدام متغيرات البيئة لسمات الإعداد.