1. مقدمة
في هذا الدرسّ التطبيقي، أدرجنا خطوات كيفية استرداد بيانات الاعتماد أو الأسرار من Google Cloud Secret Manager API باستخدام حزمة تطوير البرامج (SDK) ABAP لـ Google Cloud.
يتم استخدام خدمات Google Cloud التالية في هذا الدليل التعليمي:
- Secret Manager
- Cloud Shell
ما ستُنشئه
عليك تنفيذ ما يلي:
- فعِّل واجهة برمجة التطبيقات Secret Manager API في مشروع على Google Cloud.
- أنشئ سرًا.
- أضِف نسخة سرية.
- الوصول إلى سر أو استرجاعه باستخدام حزمة تطوير البرامج (SDK) ABAP لـ Google Cloud
في هذا الدليل التعليمي حول الرموز البرمجية، سيتم تنفيذ خطوات إنشاء سر وإضافة إصدار سر من خلال أوامر gcloud، ولكن يمكن أيضًا تنفيذ ذلك باستخدام مكتبة العميل لخدمة Secret Manager المقدَّمة مع حزمة تطوير البرامج ABAP SDK لـ Google Cloud.
2. المتطلبات
- متصفّح، مثل Chrome أو Firefox
- مشروع على Google Cloud تم تفعيل الفوترة فيه أو إنشاء حساب في فترة تجريبية مجانية لمدة 90 يومًا على Google Cloud Platform
- يجب تثبيت SAP GUI (Windows أو Java) في نظامك. إذا سبق تثبيت SAP GUI على الكمبيوتر المحمول، يمكنك الاتصال بخدمة SAP باستخدام عنوان IP الخارجي للجهاز الظاهري كعنوان IP لخادم التطبيقات. إذا كنت تستخدم جهاز Mac، يمكنك أيضًا تثبيت SAP GUI for Java المتاح في هذا الرابط.
3- قبل البدء
- أن تكون قد ثبَّتَ حزمة تطوير البرامج (SDK) لـ ABAP في Google Cloud على نظامك يمكنك الرجوع إلى الدرس التطبيقي تثبيت إصدار ABAP Platform Trial 1909 على Google Cloud Platform وتثبيت حزمة تطوير البرامج (SDK) ABAP لإعداد نظام جديد.
- ستستخدم Cloud Shell، وهي بيئة سطر أوامر تعمل في Google Cloud.
- من Cloud Console، انقر على Activate Cloud Shell (تفعيل Cloud Shell) في أعلى يسار الصفحة:
- شغِّل الأوامر التالية لمصادقة حسابك وضبط المشروع التلقائي على
abap-sdk-poc
. تم استخدام المنطقةus-west4-b
كمثال. إذا لزم الأمر، يُرجى تغيير المشروع والمنطقة في الأوامر التالية استنادًا إلى إعداداتك المفضّلة.
gcloud auth login
gcloud config set project abap-sdk-poc
gcloud config set compute/zone us-west4-b
4. نظرة عامة
في ما يلي نظرة عامة سريعة على بعض كيانات أداة "إدارة الأسرار" التي ستتعامل معها في هذا الدرس التطبيقي حول الترميز:
- سر: السِر هو عنصر عام على مستوى المشروع يحتوي على مجموعة من البيانات الوصفية وإصدارات سرية.
- النسخة السرية: يخزِّن الإصدار السري البيانات السرية الفعلية، مثل مفاتيح واجهة برمجة التطبيقات أو كلمات المرور أو الشهادات.
5- تفعيل أداة "إدارة الأسرار" في مشروعك على Google Cloud
- انتقِل إلى مشروعك على Google Cloud وانقر على تفعيل Cloud Shell في أعلى يسار الصفحة.
- نفِّذ الأمر التالي لتفعيل واجهة برمجة التطبيقات Cloud Secret Manager API في مشروعك على Google Cloud.
gcloud services enable secretmanager.googleapis.com
من المفترض أن تكون قد فعّلت واجهة برمجة التطبيقات Secret Manager API في مشروعك على Google Cloud.
6- إنشاء حساب خدمة يتضمّن أدوار مستخدمي "مدير الأسرار"
لإنشاء حساب خدمة يتضمّن الأدوار المطلوبة، اتّبِع الخطوات التالية:
- نفِّذ الأمر التالي في وحدة Cloud Shell الطرفية:
gcloud iam service-accounts create abap-sdk-secretmanager-tester \
--display-name="Service Account for Secret Manager"
- أضِف الأدوار المطلوبة إلى حساب الخدمة الذي تم إنشاؤه في الخطوة السابقة لإنشاء سرّ وإضافة إصدار سرّي والوصول إلى إصدار سرّي.
gcloud endpoints services add-iam-policy-binding secretmanager.googleapis.com \ --member='serviceAccount:abap-sdk-secretmanager-tester@abap-sdk-poc.iam.gserviceaccount.com' \
--role='roles/roles/secretmanager.secrets.create'
gcloud endpoints services add-iam-policy-binding secretmanager.googleapis.com \ --member='serviceAccount:abap-sdk-secretmanager-tester@abap-sdk-poc.iam.gserviceaccount.com' \
--role='roles/roles/secretmanager.versions.add'
gcloud endpoints services add-iam-policy-binding secretmanager.googleapis.com \ --member='serviceAccount:abap-sdk-secretmanager-tester@abap-sdk-poc.iam.gserviceaccount.com' \
--role='roles/roles/secretmanager.versions.access'
تستخدِم الأوامر أعلاه الرمز abap-sdk-poc
كعنصر نائب لمشروع Google Cloud. استبدِل abap-sdk-poc
برقم تعريف مشروعك.
- للتأكّد من إضافة الدور، انتقِل إلى صفحة IAM. من المفترض أن يكون حساب الخدمة الذي أنشأته مُدرَجًا مع الدور الذي تم إسناده إليه.
7- إنشاء سر
- في Cloud Shell، شغِّل الأمر التالي لإنشاء سرّ باسم "demo-secret" لهذا الدليل التعليمي:
gcloud secrets create demo-secret \
--replication-policy="automatic"
من المفترض أن تتمكّن من رؤية سرّ تم إنشاؤه في مشروعك على Google Cloud كما هو موضّح أدناه.
8. إضافة نسخة سرية
- في Cloud Shell، نفِّذ الأمر التالي لإضافة إصدار سر إلى السر "demo-secret".
echo -n "This is my super secret data" | \
gcloud secrets versions add demo-secret --data-file=-
يتم إنشاء نسخة سرية. للاطّلاع على التفاصيل، انقر على "demo-secret" .
- انقر على النقاط الثلاث على يسار الصفحة واختَر عرض القيمة السرية، وسيتم عرض القيمة السرية المخزّنة.
9. إنشاء إعدادات حزمة SDK في SAP
بعد أن أتممت إعداد المتطلبات الأساسية من جانب Google Cloud، يمكننا المتابعة مع الإعداد من جانب SAP. بالنسبة إلى الإعدادات ذات الصلة بالمصادقة والاتصال، يستخدم حِزمة تطوير البرامج (SDK) لـ ABAP في Google Cloud الجدول /GOOG/CLIENT_KEY.
للحفاظ على الإعدادات في الجدول /GOOG/CLIENT_KEY، اتّبِع الخطوات التالية:
- في واجهة مستخدم SAP، أدخِل رمز المعاملة SPRO.
- انقر على SAP Reference IMG.
- انقر على حزمة تطوير برامج ABAP لـ Google Cloud > الإعدادات الأساسية > ضبط مفتاح العميل.
- يجب الحفاظ على القيم التالية في الحقول:
الحقل | الوصف |
اسم مفتاح Google Cloud | SECRET_MANAGER_DEMO |
اسم حساب الخدمة في Google Cloud | abap-sdk-secretmanager-tester@abap-sdk-poc.iam.gserviceaccount.com |
نطاق Google Cloud | https://www.googleapis.com/auth/cloud-platform |
معرّف مشروع Google Cloud | <<رقم تعريف مشروعك على Google Cloud>> |
فئة التفويض | /GOOG/CL_AUTH_GOOGLE |
اترك الحقول الأخرى فارغة.
10. استرداد المفتاح السري باستخدام حزمة تطوير البرامج (SDK)
- سجِّل الدخول إلى نظام SAP.
- انتقِل إلى رمز المعاملة SE38 وأنشئ تقريرًا باسم ZDEMO_ACCESS_SECRET.
- في النافذة المنبثقة التي تظهر، أدخِل التفاصيل كما هو موضّح أدناه وانقر على حفظ.
- في النافذة المنبثقة التالية، اختَر كائن محلي أو أدخِل اسم حزمة حسب الاقتضاء.
- في ABAP Editor (محرر ABAP)، أضِف الرمز التالي:
* Data declarations
DATA:
lv_p_projects_id TYPE string,
lv_p_secrets_id TYPE string,
lv_p_versions_id TYPE string.
TRY.
* Open HTTP Connection
DATA(lo_client) = NEW /goog/cl_secretmgr_v1( iv_key_name = 'SECRET_MANAGER_DEMO' ).
* Populate relevant parameters
lv_p_projects_id = lo_client->gv_project_id.
lv_p_secrets_id = 'demo-secret'.
lv_p_versions_id = 'latest'.
* Call API method: secretmanager.projects.secrets.versions.access
lo_client->access_versions(
EXPORTING
iv_p_projects_id = lv_p_projects_id
iv_p_secrets_id = lv_p_secrets_id
iv_p_versions_id = lv_p_versions_id
IMPORTING
es_output = DATA(ls_output)
ev_ret_code = DATA(lv_ret_code)
ev_err_text = DATA(lv_err_text)
es_err_resp = DATA(ls_err_resp) ).
IF lo_client->is_success( lv_ret_code ).
cl_http_utility=>if_http_utility~decode_base64(
EXPORTING
encoded = ls_output-payload-data
RECEIVING
decoded = DATA(lv_decoded_secret) ).
DATA(lv_msg) = 'Secret data fetched successfully, Decoded Secret: ' && lv_decoded_secret.
cl_demo_output=>display( lv_msg ).
ELSE.
lv_msg = lv_ret_code && ':' && lv_err_text.
cl_demo_output=>display( lv_msg ).
ENDIF.
* Close HTTP Connection
lo_client->close( ).
CATCH /goog/cx_sdk INTO DATA(lo_exception).
MESSAGE lo_exception->get_text( ) TYPE 'E'.
ENDTRY.
- احفظ برنامج التقارير وفعِّله.
- تنفيذ التقرير (اضغط على F8).
عند تنفيذ الأمر بنجاح، من المفترض أن يظهر لك ناتج التقرير كما هو موضّح أدناه:
11. تهانينا
تهانينا! تم استرداد سرّ محفوظ في أداة "إدارة الأسرار" في Google Cloud Platform باستخدام حزمة تطوير البرامج (SDK) لـ ABAP في Google Cloud.
تتضمّن أداة Google Cloud Secret Manager ميزات أخرى أيضًا، مثل:
- تصحيح مفتاح سري
- إتلاف نسخة سرية
- حذف مفتاح سري
يمكنك استخدام ميزات Secret Manager هذه من خلال حزمة تطوير البرامج (SDK) لـ ABAP في Google Cloud من تطبيقات SAP.
12. تَنظيم
إذا كنت لا تريد مواصلة استخدام مجموعات الاختبار البرمجي الإضافية المرتبطة بحزمة تطوير البرامج (SDK) لـ ABAP في Google Cloud، يُرجى المتابعة لتنظيف المساحة.
حذف المشروع
- يُرجى اتّباع الخطوات التالية لحذف مشروع Google Cloud:
gcloud projects delete abap-sdk-poc
حذف موارد فردية
- حذف وحدة الحوسبة:
gcloud compute instances delete abap-trial-docker
- حذف قواعد جدار الحماية:
gcloud compute firewall-rules delete sapmachine
- لحذف حساب الخدمة:
gcloud iam service-accounts delete \
abap-sdk-secretmanager-tester@abap-sdk-poc.iam.gserviceaccount.com