يوضّح هذا المستند كيفية تفعيل تشفير أسرار المستهلكين (بيانات اعتماد العميل) في تطبيق المطوّر والمخزّنة في قاعدة بيانات Cassandra.
نظرة عامة
في السابق، كانت منصة Apigee Edge for Private Cloud توفّر تشفيرًا اختياريًا لبيانات خريطة القيمة الرئيسية (KVM) ورموز الدخول OAuth.
يوضّح الجدول التالي خيارات تشفير البيانات غير النشطة في Apigee for Private Cloud:
| Entity | التشفير مفعَّل تلقائيًا | التشفير متاح اختياريًا | مستندات ذات صلة |
| أجهزة KVM | لا | نعم | يُرجى الاطّلاع على لمحة عن وحدات KVM المشفَّرة. |
| رموز الدخول عبر OAuth | لا | نعم | يُرجى الاطّلاع على تجزئة الرموز المميّزة لتعزيز الأمان. |
| أسرار عملاء تطبيقات المطوّرين | لا | نعم | لتفعيل هذه الميزة، يُرجى تنفيذ خطوات الضبط الواردة في هذا المستند. |
لتفعيل تشفير بيانات اعتماد العميل، عليك تنفيذ المهام التالية على جميع عُقد معالج الرسائل وخادم الإدارة:
- أنشئ ملف تخزين مفاتيح لتخزين مفتاح تشفير المفتاح (KEK). تستخدم Apigee هذا المفتاح المشفَّر لتشفير المفاتيح السرية اللازمة لتشفير بياناتك.
- عدِّل سمات الضبط على جميع عُقد خادم الإدارة ومعالج الرسائل.
- أنشِئ تطبيقًا للمطوّرين لبدء إنشاء المفاتيح.
- أعِد تشغيل العُقَد.
يتم شرح هذه المهام في هذا المستند.
معلومات مهمة حول ميزة تشفير المفاتيح
توضّح الخطوات الواردة في هذا المستند كيفية تفعيل ميزة KEK، والتي تتيح لـ Apigee تشفير المفاتيح السرية المستخدَمة لتشفير مفاتيح المستهلك السرية لتطبيقات المطوّرين عند تخزينها في وضع عدم النشاط في قاعدة بيانات Cassandra.
ستبقى أي قيم حالية في قاعدة البيانات بدون تغيير (كنص عادي) وستستمر في العمل كما كانت من قبل.
إذا أجريت أي عملية كتابة على كيان غير مشفّر، سيتم تشفيره عند حفظ العملية. على سبيل المثال، إذا ألغيت رمزًا مميزًا غير مشفّر ثم وافقت عليه لاحقًا، سيتم تشفير الرمز المميز الذي تمت الموافقة عليه حديثًا.
الحفاظ على أمان المفاتيح
احرص على تخزين نسخة من ملف تخزين المفاتيح الذي يتم فيه تخزين مفتاح KEK في مكان آمن. ننصحك باستخدام آليتك الآمنة لحفظ نسخة من مخزن المفاتيح. كما توضّح التعليمات الواردة في هذا المستند، يجب وضع مخزن مفاتيح على كل عقدة معالج رسائل وخادم إدارة حيث يمكن لملف الإعداد المحلي الإشارة إليه. ومن المهم أيضًا تخزين نسخة من مخزن المفاتيح في مكان آخر لحفظها كنسخة احتياطية.
جارٍ تفعيل تشفير المفتاح
اتّبِع الخطوات التالية لاستخدام تشفير مفتاح سر العميل:
المتطلبات الأساسية
يجب استيفاء هذه المتطلبات قبل تنفيذ الخطوات الواردة في هذا المستند:
- يجب تثبيت الإصدار 4.50.00.10 من Apigee Edge for Private Cloud أو إصدار أحدث أو الترقية إليه.
- يجب أن تكون مشرفًا في Apigee Edge for Private Cloud.
الخطوة 1: إنشاء ملف تخزين مفاتيح
اتّبِع الخطوات التالية لإنشاء مخزن مفاتيح للاحتفاظ بمفتاح تشفير المفتاح (KEK):
- نفِّذ الأمر التالي لإنشاء ملف تخزين مفاتيح لتخزين مفتاح سيتم استخدامه لتشفير مفتاح تشفير المفتاح (KEK). أدخِل الأمر تمامًا كما هو موضّح. (يمكنك تقديم أي اسم تريده لمخزن المفاتيح):
keytool -genseckey -alias KEYSTORE_NAME -keyalg AES -keysize 256 \ -keystore kekstore.p12 -storetype PKCS12
أدخِل كلمة مرور عندما يُطلب منك ذلك. ستستخدم كلمة المرور هذه في الأقسام اللاحقة عند ضبط خادم الإدارة ومعالج الرسائل.
ينشئ هذا الأمر ملف تخزين مفاتيح kekstore.p12 يحتوي على مفتاح بالاسم المستعار KEYSTORE_NAME.
- (اختياري) تحقَّق من إنشاء الملف بشكل صحيح باستخدام الأمر التالي. إذا كان الملف
صحيحًا، يعرض الأمر مفتاحًا بالاسم البديل KEYSTORE_NAME:
keytool -list -keystore kekstore.p12
الخطوة 2: ضبط خادم الإدارة
بعد ذلك، اضبط خادم الإدارة. إذا كانت لديك خوادم إدارة مثبّتة على عُقد متعددة، عليك تكرار هذه الخطوات على كل عقدة.
- انسخ ملف مخزن المفاتيح الذي أنشأته في الخطوة 1 إلى دليل على عقدة خادم الإدارة، مثل
/opt/apigee/customer/application. على سبيل المثال:cp certs/kekstore.p12 /opt/apigee/customer/application
- تأكَّد من أنّ الملف قابل للقراءة من قِبل المستخدم
apigee:chown apigee:apigee /opt/apigee/customer/application/kekstore.p12
chmod 400 /opt/apigee/customer/application/kekstore.p12
- أضِف السمات التالية إلى
/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حسب الأداة المستخدَمة لإنشاء ملف تخزين المفاتيح. - أعِد تشغيل خادم الإدارة باستخدام الأوامر التالية:
/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.
- إذا كانت لديك خوادم إدارة مثبّتة على عُقد متعددة، كرِّر الخطوات من 1 إلى 4 أعلاه على كل عقدة خادم إدارة.
الخطوة 3: إنشاء تطبيق مطوّر
بعد تحديث خوادم الإدارة، يجب إنشاء تطبيق مطوّر لبدء إنشاء المفتاح المستخدَم لتشفير بيانات بيانات اعتماد العميل:
- أنشئ تطبيقًا للمطوّرين لبدء إنشاء مفتاح تشفير البيانات (KEK). لمعرفة الخطوات، يُرجى الاطّلاع على تسجيل تطبيق.
- احذف تطبيق المطوّر إذا أردت ذلك. ولست بحاجة إلى الاحتفاظ به بعد إنشاء مفتاح التشفير.
الخطوة 4: ضبط معالِجات الرسائل
إلى أن يتم تفعيل التشفير في معالِجات الرسائل، لن تتمكّن طلبات وقت التشغيل من معالجة أي بيانات اعتماد مشفّرة.
- انسخ ملف مخزن المفاتيح الذي أنشأته في الخطوة 1 إلى دليل على عقدة معالج الرسائل،
مثل
/opt/apigee/customer/application. على سبيل المثال:cp certs/kekstore.p12 /opt/apigee/customer/application
- تأكَّد من أنّ الملف قابل للقراءة من قِبل المستخدم
apigee:chown apigee:apigee /opt/apigee/customer/application/kekstore.p12
- أضِف السمات التالية إلى
/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حسب الأداة المستخدَمة لإنشاء ملف تخزين المفاتيح. - أعِد تشغيل معالج الرسائل باستخدام الأوامر التالية:
/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.
- إذا كان لديك معالِجات رسائل مثبَّتة على عُقد متعددة، كرِّر الخطوات من 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
|
لا ينطبق | اختياري إذا كنت تستخدم متغيّرات البيئة لضبط هذه السمات. يمكنك أيضًا الاطّلاع على استخدام متغيرات البيئة لسمات الإعدادات. |