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

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

نظرة عامة

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

يوضِّح الجدول التالي خيارات تشفير البيانات الساكنة في Apigee لخدمة "السحابة الإلكترونية الخاصة":

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

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

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

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

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

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

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

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

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

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

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

اتبع هذه الخطوات لتشفير مفتاح سري للعميل:

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

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

  • يجب تثبيت Apigee Edge أو الترقية إليه لـ Private Cloud 4.50.00.10 أو إصدار أحدث.
  • يجب أن تكون مشرف 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 لا ينطبق وهذا الإجراء اختياري في حال استخدام متغيرات بيئة لضبط هذه السمات. راجِع أيضًا استخدام متغيّرات البيئة لسمات الإعدادات.