सुरक्षा कुंजी को एन्क्रिप्ट (सुरक्षित) करने की सुविधा चालू की जा रही है

इस दस्तावेज़ में, डेवलपर ऐप्लिकेशन में उपभोक्ता सीक्रेट (क्लाइंट क्रेडेंशियल) सेव किए गए की सूची में रखा गया है.

खास जानकारी

पारंपरिक तौर पर, Private Cloud के लिए Apigee Edge में, की वैल्यू मैप को एन्क्रिप्ट (सुरक्षित) करने का विकल्प दिया जाता है. हालांकि, यह ज़रूरी नहीं है (KVM) डेटा और OAuth ऐक्सेस टोकन.

नीचे दी गई टेबल में, प्राइवेट क्लाउड के लिए Apigee में इनऐक्टिव डेटा को एन्क्रिप्ट (सुरक्षित) करने के विकल्पों के बारे में बताया गया है:

इकाई डिफ़ॉल्ट रूप से, एन्क्रिप्ट (सुरक्षित) करने की सुविधा चालू रहती है एन्क्रिप्ट (सुरक्षित) करने का विकल्प (ज़रूरी नहीं) उपलब्ध है इसी विषय से जुड़े अन्य दस्तावेज़
केवीएम नहीं हां एन्क्रिप्ट (सुरक्षित) किए गए केवीएम के बारे में जानकारी देखें.
OAuth ऐक्सेस टोकन नहीं हां ज़्यादा सुरक्षा के लिए हैशिंग टोकन देखें.
डेवलपर ऐप्लिकेशन के लिए उपभोक्ता सीक्रेट नहीं हां चालू करने के लिए, इस दस्तावेज़ में कॉन्फ़िगरेशन के चरण पूरे करें.

क्लाइंट के क्रेडेंशियल को एन्क्रिप्ट (सुरक्षित) करने के लिए, आपको यहां दिए गए काम करने होंगे सभी मैसेज प्रोसेसर और मैनेजमेंट सर्वर नोड पर:

  • स्टोर करने के लिए एक कीस्टोर बनाएं कुंजी को एन्क्रिप्ट (सुरक्षित) करने की कुंजी (केईके). Apigee, आपके डेटा को एन्क्रिप्ट करने के लिए ज़रूरी सीक्रेट कुंजियों को एन्क्रिप्ट (सुरक्षित) करने के लिए, एन्क्रिप्ट यानी सुरक्षित की गई इस कुंजी का इस्तेमाल करता है.
  • सभी मैनेजमेंट सर्वर और मैसेज प्रोसेसर नोड पर कॉन्फ़िगरेशन प्रॉपर्टी में बदलाव करें.
  • पासकोड बनाने की सुविधा का इस्तेमाल करने के लिए, एक डेवलपर ऐप्लिकेशन बनाएं.
  • नोड रीस्टार्ट करें.

इस दस्तावेज़ में इन टास्क के बारे में बताया गया है.

डिजिटल बटन के बारे में ज़रूरी बातें एन्क्रिप्ट (सुरक्षित) करने की सुविधा

इस दस्तावेज़ में दिए गए चरणों में बताया गया है कि केईके की सुविधा कैसे चालू की जाए, ताकि Apigee डेवलपर ऐप्लिकेशन को एन्क्रिप्ट (सुरक्षित) करने के लिए इस्तेमाल की जाने वाली सीक्रेट कुंजियां उपभोक्ता के रहस्यों के बारे में बताता है, जब वे कैसंड्रा डेटाबेस में स्टोर रहते हैं.

डिफ़ॉल्ट रूप से, डेटाबेस में मौजूद सभी वैल्यू में कोई बदलाव नहीं होगा (सामान्य टेक्स्ट में) पहले की तरह काम करना जारी रखेगा.

अगर आप किसी ऐसी इकाई पर लिखने के लिए कोई कार्रवाई करते हैं जिसे एन्क्रिप्ट (सुरक्षित) नहीं किया गया है, तो उसे तब एन्क्रिप्ट (सुरक्षित) किया जाएगा, जब कार्रवाई सहेजी गई. उदाहरण के लिए, अगर एन्क्रिप्ट (सुरक्षित) नहीं किए गए किसी टोकन को रद्द किया जाता है और बाद में उसे मंज़ूरी दी जाती है तो वह नया टोकन एन्क्रिप्ट (सुरक्षित) किया जाएगा जिसे मंज़ूरी मिली है.

कुंजियों को सुरक्षित रखना

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

कुंजी को एन्क्रिप्ट (सुरक्षित) करने की सुविधा चालू की जा रही है

उपभोक्ता की सीक्रेट कुंजी को एन्क्रिप्ट (सुरक्षित) करने के लिए यह तरीका अपनाएं:

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

इस दस्तावेज़ में दिए गए चरणों को पूरा करने से पहले, आपको ये ज़रूरी शर्तें पूरी करनी होंगी:

  • आपको निजी क्लाउड 4.50.00.10 या इसके बाद के वर्शन के लिए, Apigee Edge को इंस्टॉल या अपग्रेड करना होगा.
  • प्राइवेट क्लाउड के एडमिन के लिए, आपको Apigee Edge होना चाहिए.

पहला चरण: कीस्टोर जनरेट करना

कुंजी को एन्क्रिप्ट (सुरक्षित) करने वाली कुंजी (केईके) होल्ड करने के लिए, कीस्टोर बनाने के लिए यह तरीका अपनाएं:

  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

दूसरा चरण: मैनेजमेंट सर्वर को कॉन्फ़िगर करना

इसके बाद, मैनेजमेंट सर्वर को कॉन्फ़िगर करें. अगर आपने एक से ज़्यादा नोड पर मैनेजमेंट सर्वर इंस्टॉल किए हैं, तो आपको हर नोड पर ये चरण दोहराने होंगे.

  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 को दोहराएं सर्वर नोड पर जाएं.

तीसरा चरण: डेवलपर ऐप्लिकेशन बनाना

मैनेजमेंट सर्वर अपडेट हो जाने के बाद, जेनरेशन ट्रिगर करने के लिए, आपको एक डेवलपर ऐप्लिकेशन बनाना होगा इस कुंजी का इस्तेमाल क्लाइंट क्रेडेंशियल डेटा को एन्क्रिप्ट करने में किया जाता है:

  1. डेटा एन्क्रिप्शन की (केईके) बनाने की प्रोसेस ट्रिगर करने के लिए, कोई डेवलपर ऐप्लिकेशन बनाएं. कदमों के लिए, ऐप्लिकेशन रजिस्टर करना देखें.
  2. अगर आप चाहें, तो डेवलपर ऐप्लिकेशन को मिटा दें. एन्क्रिप्ट (सुरक्षित) हो जाने के बाद, आपको इसे सुरक्षित रखने की ज़रूरत नहीं है की जनरेट होती है.

चौथा चरण: मैसेज प्रोसेसर कॉन्फ़िगर करना

जब तक मैसेज प्रोसेसर में, एन्क्रिप्ट (सुरक्षित) करने की सुविधा चालू नहीं हो जाती, तब तक रनटाइम के अनुरोध के ज़रिए एन्क्रिप्ट (सुरक्षित) किए गए किसी भी क्रेडेंशियल को प्रोसेस नहीं किया जा सकेगा.

  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 तक दोहराएं मैसेज प्रोसेसर नोड.

खास जानकारी

अब से बनाए जाने वाले किसी भी डेवलपर ऐप्लिकेशन का क्रेडेंशियल सीक्रेट एन्क्रिप्ट (सुरक्षित) किया जाएगा में मौजूद है.

एनवायरमेंट वैरिएबल का इस्तेमाल कॉन्फ़िगरेशन प्रॉपर्टी

इसके अलावा, नीचे दिए गए मैसेज प्रोसेसर और मैनेजमेंट सर्वर कॉन्फ़िगरेशन को भी सेट किया जा सकता है एनवायरमेंट वैरिएबल का इस्तेमाल करने वाली प्रॉपर्टी. अगर सेट किया जाता है, तो एनवायरमेंट वैरिएबल, प्रॉपर्टी को बदल देते हैं मैसेज प्रोसेसर या मैनेजमेंट सर्वर कॉन्फ़िगरेशन फ़ाइल में सेट किया जा सकता है.

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 preventFallback को true पर सेट करें, ताकि यह पक्का किया जा सके कि आपके मौजूदा सादे टेक्स्ट के क्रेडेंशियल काम करते रहें.
conf_keymanagement_kmscred.encryption.keystore.path लागू नहीं मैसेज प्रोसेसर या मैनेजमेंट सर्वर नोड पर KEK कीस्टोर का पाथ दें. दूसरा चरण: मैनेजमेंट कॉन्फ़िगर करना सर्वर और तीसरा चरण: मैसेज प्रोसेसर कॉन्फ़िगर करें.
conf_keymanagement_kmscred.encryption.kek.alias लागू नहीं वह उपनाम जिसके ख़िलाफ़ KEK को कीस्टोर में सेव किया गया है.
conf_keymanagement_kmscred.encryption.keystore.pass लागू नहीं अगर इन प्रॉपर्टी को सेट करने के लिए एनवायरमेंट वैरिएबल का इस्तेमाल किया जाता है, तो ज़रूरी नहीं है. इन्हें भी देखें एनवायरमेंट का इस्तेमाल करना कॉन्फ़िगरेशन प्रॉपर्टी के लिए वैरिएबल सेट अप करने में मदद मिलती है.
conf_keymanagement_kmscred.encryption.kek.pass लागू नहीं अगर इन प्रॉपर्टी को सेट करने के लिए एनवायरमेंट वैरिएबल का इस्तेमाल किया जाता है, तो ज़रूरी नहीं है. इन्हें भी देखें एनवायरमेंट का इस्तेमाल करना कॉन्फ़िगरेशन प्रॉपर्टी के लिए वैरिएबल सेट अप करने में मदद मिलती है.