Google Cloud के लिए ABAP SDK की मदद से, Google Cloud Secret Manager से क्रेडेंशियल/सीक्रेट वापस पाना

1. परिचय

इस कोडलैब में, हमने Google Cloud के लिए ABAP SDK का इस्तेमाल करके, Google Cloud Secret Manager API से क्रेडेंशियल या गोपनीय जानकारी वापस पाने का तरीका बताया है.

इस कोडलैब में, Google Cloud की इन सेवाओं का इस्तेमाल किया गया है:

  • Secret Manager
  • Cloud Shell

आपको क्या बनाना है

आपको ये काम करने होंगे:

  • Google Cloud प्रोजेक्ट में Secret Manager API चालू करें.
  • कोई सीक्रेट बनाएं.
  • कोई सीक्रेट वर्शन जोड़ें.
  • Google Cloud के लिए ABAP SDK का इस्तेमाल करके, किसी सीक्रेट को ऐक्सेस करना या वापस पाना.

इस कोडलैब में, gcloud कमांड का इस्तेमाल करके, सीक्रेट बनाने और उसका वर्शन जोड़ने का तरीका बताया गया है. हालांकि, Google Cloud के लिए ABAP SDK के साथ दी गई, Secret Manager की क्लाइंट लाइब्रेरी का इस्तेमाल करके भी ऐसा किया जा सकता है.

2. ज़रूरी शर्तें

  • Chrome या Firefox जैसा कोई ब्राउज़र.
  • बिलिंग की सुविधा वाला Google Cloud प्रोजेक्ट या Google Cloud Platform के लिए 90 दिनों के मुफ़्त ट्रायल वाला खाता बनाएं.
  • आपके सिस्टम में SAP GUI (Windows या Java) इंस्टॉल हो. अगर आपके लैपटॉप पर SAP GUI पहले से इंस्टॉल है, तो ऐप्लिकेशन सर्वर आईपी के तौर पर, वर्चुअल मशीन (वीएम) के बाहरी आईपी पते का इस्तेमाल करके SAP से कनेक्ट करें. अगर आपके पास Mac है, तो इस लिंक पर जाकर, Java के लिए SAP GUI भी इंस्टॉल किया जा सकता है.

3. शुरू करने से पहले

6757b2fb50ddcc2d.png

  • अपने खाते की पुष्टि करने और डिफ़ॉल्ट प्रोजेक्ट को 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. खास जानकारी

यहां Secret Manager की कुछ इकाइयों के बारे में खास जानकारी दी गई है. इन इकाइयों का इस्तेमाल, इस कोडलैब में किया जाएगा:

  • सीक्रेट - सीक्रेट, प्रोजेक्ट के लिए ग्लोबल ऑब्जेक्ट होता है. इसमें मेटाडेटा और सीक्रेट वर्शन का कलेक्शन होता है.
  • सीक्रेट वर्शन - सीक्रेट वर्शन में, एपीआई पासकोड, पासवर्ड या सर्टिफ़िकेट जैसे असली सीक्रेट डेटा को सेव किया जाता है.

5. अपने Google Cloud प्रोजेक्ट में Secret Manager को चालू करना

  1. अपने Google Cloud प्रोजेक्ट पर जाएं और सबसे ऊपर दाएं कोने में मौजूद, Cloud Shell चालू करें पर क्लिक करें.

8d15f753321c53e6.png

  1. अपने Google Cloud प्रोजेक्ट में Cloud Secret Manager API को चालू करने के लिए, यह कमांड चलाएं.
gcloud services enable secretmanager.googleapis.com

अब आपके Google Cloud प्रोजेक्ट में Secret Manager API चालू हो जाना चाहिए.

6. Secret Manager उपयोगकर्ता की भूमिकाओं वाला सेवा खाता बनाना

ज़रूरी भूमिकाओं वाला सेवा खाता बनाने के लिए, यह तरीका अपनाएं:

  1. Cloud Shell टर्मिनल में यह कमांड चलाएं:
gcloud iam service-accounts create abap-sdk-secretmanager-tester \
--display-name="Service Account for Secret Manager"
  1. पिछले चरण में बनाए गए सेवा खाते में ज़रूरी भूमिकाएं जोड़ें, ताकि आप पासवर्ड सेव कर सकें, पासवर्ड का कोई वर्शन जोड़ सकें, और पासवर्ड का कोई वर्शन ऐक्सेस कर सकें.
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'

ऊपर दिए गए निर्देशों में, Google Cloud प्रोजेक्ट के प्लेसहोल्डर के तौर पर abap-sdk-poc का इस्तेमाल किया गया है. abap-sdk-poc की जगह अपना प्रोजेक्ट आईडी डालें.

  • भूमिका जोड़ी गई है या नहीं, इसकी पुष्टि करने के लिए IAM पेज पर जाएं. आपने जो सेवा खाता बनाया है वह उस भूमिका के साथ दिखना चाहिए जो उसे असाइन की गई है.

7. कोई सीक्रेट बनाना

  • इस कोडलैब के लिए, "demo-secret" नाम से सीक्रेट बनाने के लिए, क्लाउड शेल में यह कमांड चलाएं:
gcloud secrets create demo-secret \
    --replication-policy="automatic"

आपको अपने Google Cloud प्रोजेक्ट में बनाया गया सीक्रेट दिखेगा, जैसा कि यहां दिखाया गया है.

99a318dbdd37af4e.png

8. सीक्रेट वर्शन जोड़ना

  1. क्लाउड शेल में, "demo-secret" सीक्रेट में सीक्रेट वर्शन जोड़ने के लिए, यह कमांड चलाएं.
echo -n "This is my super secret data" | \
    gcloud secrets versions add demo-secret --data-file=-

एक सीक्रेट वर्शन बनाया जाता है. जानकारी देखने के लिए, "demo-secret" पर क्लिक करें.

bbf6b9f2f9c4340a.png

  1. दाईं ओर मौजूद तीन बिंदुओं पर क्लिक करें और गुप्त वैल्यू देखें को चुनें. इसके बाद, सेव की गई गुप्त वैल्यू दिखेगी.

6f3afd0ac25445bf.png

9. SAP में SDK टूल के कॉन्फ़िगरेशन बनाना

Google Cloud की ओर से ज़रूरी शर्तें सेट अप करने के बाद, हम SAP की ओर से कॉन्फ़िगरेशन की प्रोसेस शुरू कर सकते हैं. पुष्टि करने और कनेक्टिविटी से जुड़े कॉन्फ़िगरेशन के लिए, Google Cloud के लिए ABAP SDK, टेबल /GOOG/CLIENT_KEY का इस्तेमाल करता है.

टेबल /GOOG/CLIENT_KEY टेबल में कॉन्फ़िगरेशन को बनाए रखने के लिए, यह तरीका अपनाएं:

  1. SAP GUI में, ट्रांज़ैक्शन कोड SPRO डालें.
  2. SAP रेफ़रंस IMG पर क्लिक करें.
  3. Google Cloud के लिए ABAP SDK टूल > बुनियादी सेटिंग > क्लाइंट पासकोड कॉन्फ़िगर करें पर क्लिक करें.
  4. फ़ील्ड के लिए ये वैल्यू बनाए रखें:

फ़ील्ड

ब्यौरा

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 टूल का इस्तेमाल करके, पासवर्ड वापस पाना

  1. अपने SAP सिस्टम में लॉग इन करें.
  2. लेन-देन कोड SE38 पर जाएं और "ZDEMO_ACCESS_SECRET" नाम से रिपोर्ट बनाएं.
  3. इसके बाद, खुलने वाले पॉप-अप में नीचे दी गई जानकारी दें और सेव करें पर क्लिक करें.

b1ef7c7744ceb5ce.png

  1. अगले पॉप-अप में, लोकल ऑब्जेक्ट चुनें या पैकेज का नाम डालें.
  • 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.
  1. रिपोर्ट प्रोग्राम को सेव और चालू करें.
  2. रिपोर्ट को चलाएं (F8 दबाएं).

एक्सपोर्ट पूरा होने पर, आपको रिपोर्ट का आउटपुट यहां दिखाया गया है:

24acec0fc2d4d18b.png

11. बधाई हो

बधाई हो! आपने Google Cloud के लिए ABAP SDK टूल का इस्तेमाल करके, Google Cloud Platform Secret Manager में सेव की गई कोई सीक्रेट जानकारी वापस पा ली है.

Google Cloud Secret Manager में अन्य सुविधाएं भी हैं, जैसे:

  • सीक्रेट को पैच करना
  • सीक्रेट वर्शन को मिटाना
  • सीक्रेट मिटाना

अपने SAP ऐप्लिकेशन से, Google Cloud के लिए ABAP SDK टूल की मदद से, Secret Manager की इन सुविधाओं को चालू किया जा सकता है.

12. व्यवस्थित करें

अगर आपको Google Cloud के लिए ABAP SDK टूल से जुड़े अन्य कोडलैब जारी नहीं रखने हैं, तो कृपया उन्हें हटा दें.

प्रोजेक्ट मिटाना

  • Google Cloud प्रोजेक्ट मिटाएं:
gcloud projects delete abap-sdk-poc

अलग-अलग संसाधन मिटाना

  1. कंप्यूट इंस्टेंस मिटाने के लिए:
gcloud compute instances delete abap-trial-docker
  1. फ़ायरवॉल के नियम मिटाएं:
gcloud compute firewall-rules delete sapmachine
  1. सेवा खाता मिटाने के लिए:
gcloud iam service-accounts delete \
 abap-sdk-secretmanager-tester@abap-sdk-poc.iam.gserviceaccount.com