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

1. परिचय

इस कोडलैब में, ABAP SDK for Google Cloud का इस्तेमाल करके, 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 है, तो इस लिंक पर जाकर, SAP GUI for Java भी इंस्टॉल किया जा सकता है.

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'

ऊपर दिए गए कमांड में, abap-sdk-poc का इस्तेमाल Google Cloud प्रोजेक्ट के लिए प्लेसहोल्डर के तौर पर किया गया है. 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. दाईं ओर मौजूद तीन बिंदुओं पर क्लिक करें और View Secret Value को चुनें. इससे सेव किया गया सीक्रेट दिखता है.

6f3afd0ac25445bf.png

9. SAP में एसडीके कॉन्फ़िगरेशन बनाना

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

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

  1. SAP GUI में, लेन-देन का कोड SPRO डालें.
  2. SAP Reference IMG पर क्लिक करें.
  3. ABAP SDK for Google Cloud > बुनियादी सेटिंग > क्लाइंट कुंजी कॉन्फ़िगर करें पर क्लिक करें.
  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 प्रोजेक्ट आइडेंटिफ़ायर

<<Your Google Cloud project ID>>

अनुमति देने वाली क्लास

/GOOG/CL_AUTH_GOOGLE

अन्य फ़ील्ड को खाली छोड़ें.

10. एसडीके टूल का इस्तेमाल करके सीक्रेट वापस पाना

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

b1ef7c7744ceb5ce.png

  1. अगले पॉप-अप में, Local Object चुनें या पैकेज का नाम डालें.
  • ABAP Editor में, यह कोड जोड़ें:.
* 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 Platform Secret Manager में सेव किए गए सीक्रेट को, ABAP SDK for Google Cloud का इस्तेमाल करके वापस पा लिया है.

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