Apigee mTLS सुविधा, प्राइवेट क्लाउड क्लस्टर में, आपके Edge में कॉम्पोनेंट के बीच कम्यूनिकेशन को सुरक्षा बढ़ाती है. यह सर्विस मेश को कॉन्फ़िगर और इंस्टॉल करने का इंडस्ट्री-स्टैंडर्ड तरीका है. यह पैकेज मैनेजमेंट और कॉन्फ़िगरेशन ऑटोमेशन के साथ काम करता है.
वास्तुकला से जुड़ी खास जानकारी
कॉम्पोनेंट के बीच सुरक्षित कम्यूनिकेशन करने के लिए, Apigee mTLS, एक सर्विस मेश का इस्तेमाल करता है. यह कॉम्पोनेंट के बीच, सुरक्षित और आपसी रूप से पुष्टि किए गए TLS कनेक्शन सेट करता है.
नीचे दी गई इमेज, Apigee कॉम्पोनेंट के बीच कनेक्शन दिखाती है, जिन्हें Apigee mTLS सुरक्षित करता है (in red). इमेज में दिखाए गए पोर्ट उदाहरण हैं; हर कॉम्पोनेंट इस्तेमाल की जा सकने वाली रेंज की सूची के लिए, पोर्ट का इस्तेमाल देखें.
(ध्यान दें कि "M" के साथ दिखाए गए पोर्ट का इस्तेमाल कॉम्पोनेंट को मैनेज करने के लिए किया जाता है. साथ ही, उनका ऐक्सेस कॉम्पोनेंट पर होना चाहिए, ताकि मैनेजमेंट सर्वर इन्हें ऐक्सेस कर सके.)
जैसा कि ऊपर दिए गए डायग्राम में देखा जा सकता है, Apigee mTLS, क्लस्टर के ज़्यादातर कॉम्पोनेंट के बीच कनेक्शन में सुरक्षा जोड़ता है. इनमें ये शामिल हैं:
सोर्स | डेस्टिनेशन | |
---|---|---|
मैनेजमेंट सर्वर | राऊटर, एमपी, QPid, LDAP, पोस्टग्रेस, ज़ूकीपर, और कैसेंड्रा नोड | |
राऊटर | लूपबैक; क्यूपिड, ज़ूकीपर, और कसांद्रा नोड | |
मैसेज प्रोसेसर | लूपबैक; क्यूपिड, ज़ूकीपर, और कसांद्रा नोड | |
ज़ूकीपर और कसांद्रा | अन्य ज़ूकीपर और कसांद्रा नोड | |
Edge यूज़र इंटरफ़ेस (यूआई) | एसएमटीपी (सिर्फ़ बाहरी आईडीपी (IdP) के लिए) | |
पोस्टग्रेस | अन्य पोस्टग्रे, ज़ूकीपर, और कसांद्रा नोड |
मैसेज को एन्क्रिप्ट (सुरक्षित) करना/डिक्रिप्ट करना
Apigee mTLS सेवा मेश में, Consul सर्वर होते हैं, जो आपके क्लस्टर के हर ZKeeper नोड पर काम करते हैं. साथ ही, क्लस्टर के हर नोड पर नीचे दी गई Consul सेवाएं भी शामिल होती हैं:
- ऐसा एक्सग्रेस प्रॉक्सी जो होस्ट नोड पर भेजे जाने वाले मैसेज को रोकता है. यह सेवा, भेजे जाने वाले मैसेज को डेस्टिनेशन पर भेजने से पहले, उन्हें एन्क्रिप्ट (सुरक्षित) करती है.
- ऐसा इनग्रेस प्रॉक्सी जो होस्ट नोड पर आने वाले मैसेज को रोकता है. यह सेवा, आने वाले मैसेज को उपयोगकर्ता की आखिरी जगह पर भेजने से पहले डिक्रिप्ट करती है.
उदाहरण के लिए, जब मैनेजमेंट सर्वर राऊटर को मैसेज भेजता है, तो इग्रेस प्रॉक्सी सेवा की मदद से भेजे जाने वाले मैसेज को रोका जाता है, एन्क्रिप्ट (सुरक्षित) किया जाता है, और फिर उसे राऊटर को भेजा जाता है. जब रूटर के नोड को मैसेज मिलता है, तो इन्ग्रेस प्रॉक्सी सेवा मैसेज को डिक्रिप्ट कर देती है, और उसे प्रोसेसिंग के लिए राऊटर कॉम्पोनेंट के पास भेज देती है.
यह सब एज कॉम्पोनेंट के साथ पारदर्शी तरीके से होता है: उन्हें Consul प्रॉक्सी सेवाओं की एन्क्रिप्ट (सुरक्षित) और डिक्रिप्शन प्रोसेस की जानकारी नहीं है.
इसके अलावा, Apigee mTLS, iptables
यूटिलिटी का इस्तेमाल करता है. यह Linux फ़ायरवॉल सेवा है, जो ट्रैफ़िक रीडायरेक्ट को मैनेज करती है.
ज़रूरी शर्तें
Apigee mTLS इंस्टॉल करने से पहले, आपके एनवायरमेंट को ये ज़रूरी शर्तें पूरी करनी होंगी:
- वर्शन, प्लैटफ़ॉर्म, और टोपोलॉजी से जुड़ी ज़रूरी शर्तें
- इंस्टॉल और चालू की गई उपयोगिताएं
- अनुमतियों के सही लेवल वाला उपयोगकर्ता खाता
- एडमिन मशीन (सुझाया गया)
- पोर्ट का इस्तेमाल
इन सेक्शन में, इन सभी ज़रूरी शर्तों के बारे में पूरी जानकारी दी गई है.
वर्शन, प्लैटफ़ॉर्म, और टोपोलॉजी
यहां दी गई टेबल में mTLS की ज़रूरी शर्तों की जानकारी दी गई है:
ज़रूरी शर्त | ब्यौरा | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
वर्शन |
|
||||||||||||
टोपोलॉजी | इसमें कम से कम तीन ज़ूकीपर नोड शामिल होने चाहिए. इस वजह से, सिर्फ़ उन टोपोलॉजी पर Apigee mTLS इंस्टॉल किया जा सकता है जो 5, 9, 12 (मल्टी-डेटा सेंटर) या 13 नोड का इस्तेमाल करते हैं. ज़्यादा जानकारी के लिए, इंस्टॉलेशन टोपोलॉजी देखें. | ||||||||||||
प्लैटफ़ॉर्म/ऑपरेटिंग सिस्टम | नीचे दी गई वैल्यू का इस्तेमाल करके पता लगाएं कि Apigee mTLS, किसी खास ओएस पर काम करता है या नहीं:
ध्यान दें कि यह ज़रूरी नहीं है कि Apigee mTLS, ऐसे सभी ओएस के साथ काम करे जो निजी क्लाउड के लिए Apigee Edge के उस वर्शन पर काम करते हों जिस पर वह चल रहा हो. उदाहरण के लिए, अगर v4.19.06, CentOS x और y के साथ काम करता है, तो इसका यह मतलब नहीं है कि Apigee mTLS, CentOS x और v4.19.06 पर काम करता है. |
सुविधाएं/पैकेज
Apigee mTLS के लिए ज़रूरी है कि इंस्टॉल करने की प्रोसेस शुरू करने से पहले, आपके पास अपने क्लस्टर में मौजूद हर मशीन पर इन पैकेज को इंस्टॉल और चालू हो. इनमें एडमिन मशीन भी शामिल है.
बिजली, पानी जैसी सुविधाओं का पैकेज | ब्यौरा | क्या इंस्टॉल करने के बाद, इसे हटाना है? |
---|---|---|
base64 |
इंस्टॉलेशन स्क्रिप्ट में मौजूद डेटा की पुष्टि करता है. | |
gnu-bash gnu-sed gnu-grep |
इसे इंस्टॉलेशन स्क्रिप्ट और दूसरे सामान्य टूल में इस्तेमाल किया जाता है. | |
iptables |
डिफ़ॉल्ट फ़ायरवॉल, firewalld को बदलता है. |
|
iptables-services |
iptables यूटिलिटी को फ़ंक्शन मुहैया कराता है. |
|
lsof |
इसका इस्तेमाल इंस्टॉलेशन स्क्रिप्ट करती है. | |
nc |
iptables रास्तों की पुष्टि करता है. |
|
openssl |
बूटस्ट्रैपिंग की शुरुआती प्रोसेस के दौरान, सर्टिफ़िकेट पर स्थानीय तौर पर हस्ताक्षर किया जाता है. |
इंस्टॉल करने के दौरान, एडमिन मशीन पर Consul पैकेज भी इंस्टॉल किया जाता है, ताकि क्रेडेंशियल और एन्क्रिप्शन कुंजी जनरेट की जा सके.
apigee-mtls
पैकेज, Console के सर्वर को इंस्टॉल और कॉन्फ़िगर करता है. इनमें, क्लस्टर में मौजूद छोटा-सा ज़ू-Keeper नोड भी होगा, जिसमें
इनग्रेस और इग्रेस डेटा ट्रैफ़िक से जुड़ी प्रॉक्सी शामिल होंगी.
उपयोगकर्ता खाते की अनुमतियां
इंस्टॉल करने से पहले, एक नया उपयोगकर्ता खाता बनाएं या पक्का करें कि आपके पास उस खाते का ऐक्सेस है जिसके लिए खास अधिकार दिए गए हैं.
क्लस्टर के हर नोड पर Apigee mTLS इंस्टॉल करने वाले खाते के लिए ज़रूरी है कि वे नीचे दिए गए काम कर सकें:
- Apigee के कॉम्पोनेंट शुरू करना, बंद करना, रीस्टार्ट करना, और शुरू करना
- फ़ायरवॉल के नियम सेट करना
- नया ओएस/सिस्टम उपयोगकर्ता खाता बनाना
systemctl
की मदद से, सेवाएं चालू, बंद, शुरू, बंद, और मास्क करें
एडमिन मशीन (सुझाया गया)
Apigee का सुझाव है कि आपके पास उस क्लस्टर में एक नोड हो जिस पर इस दस्तावेज़ में बताए गए कई एडमिन वाले काम किए जा सकें. इनमें ये शामिल हैं:
- HahiCorp Consul 1.6.2 इंस्टॉल करें.
- सर्टिफ़िकेट/की पेयर और गॉसिप एन्क्रिप्शन की जनरेट करें और डिस्ट्रिब्यूट करें.
- कॉन्फ़िगरेशन फ़ाइल को अपडेट और डिस्ट्रिब्यूट करें.
एडमिन मशीन सेट अप करते समय:
- पक्का करें कि आपके पास इसका रूट ऐक्सेस है.
- इंस्टॉल एज apigee-setup यूटिलिटी में बताए गए तरीके के मुताबिक
apigee-service
औरapigee-setup
यूटिलिटीज़ को डाउनलोड और इंस्टॉल करें. - पक्का करें कि एडमिन मशीन से क्लस्टर में सभी नोड को ऐक्सेस करने के लिए,
scp/ssh
का इस्तेमाल किया जा सकता हो. यह इसलिए ज़रूरी है, ताकि आप अपनी कॉन्फ़िगरेशन फ़ाइल और क्रेडेंशियल को लोगों तक पहुंचा सकें.
पोर्ट का इस्तेमाल और असाइन करने की सेटिंग
इस सेक्शन में, पोर्ट के इस्तेमाल और पोर्ट असाइनमेंट के बारे में बताया गया है, ताकि Apigee mTLS से Consul में बातचीत की जा सके.
पोर्ट का इस्तेमाल: apigee-mtls चलाने वाले सभी नोड
क्लस्टर के apigee-mtls
सेवा का इस्तेमाल करने वाले सभी नोड को localhost (127.0.0.1) पर मौजूद सेवाओं से कनेक्शन की अनुमति देनी होगी. इससे Consul प्रॉक्सी को
अन्य सेवाओं से संपर्क करने में मदद मिलती है, ताकि वह इनकमिंग और आउटगोइंग मैसेज प्रोसेस कर सके.
पोर्ट का इस्तेमाल: Consul सर्वर नोड (ज़ूKeeper चलाने वाले नोड)
क्लस्टर में सभी नोड से अनुरोध स्वीकार करने के लिए, आपको इनमें से ज़्यादातर पोर्ट को Consul सर्वर नोड (ZooKeeper चलाने वाले नोड) पर खोलना होगा:
नोड | Consul सर्वर पोर्ट | ब्यौरा | प्रोटोकॉल | बाहरी mtls-एजेंट को अनुमति दें * |
---|---|---|---|---|
Consul Server (ZooKeeper नोड) | 8300 |
क्लस्टर में सभी Consul सर्वर कनेक्ट करता है. | RPC | |
8301 |
क्लस्टर में सदस्यता और ब्रॉडकास्ट मैसेज को हैंडल करता है. | यूडीपी/टीसीपी | ||
8302 |
WAN पोर्ट, जो सदस्यता और ब्रॉडकास्ट मैसेज को मल्टी-डेटा सेंटर कॉन्फ़िगरेशन में मैनेज करता है. | यूडीपी/टीसीपी | ||
8500 |
एक ही नोड पर मौजूद प्रोसेस से, Consul Server API (एपीआई) को एचटीटीपी कनेक्शन मैनेज करता है.
इस पोर्ट का इस्तेमाल रिमोट कम्यूनिकेशन या कोऑर्डिनेशन के लिए नहीं किया जाता. यह सिर्फ़ localhost पर सुनता है. |
HTTP | ||
8502 |
क्लस्टर में मौजूद अन्य नोड से, gRPC+एचटीटीपीएस कनेक्शन को Consul Server एपीआई से हैंडल करता है. | gRPC+एचटीटीपीएस | ||
8503 |
क्लस्टर में मौजूद अन्य नोड से, Consul Server API (एपीआई) से एचटीटीपीएस कनेक्शन मैनेज करता है. | एचटीटीपीएस | ||
8600 |
Consul सर्वर के डीएनएस को मैनेज करता है. | यूडीपी/टीसीपी | ||
* Apigee का सुझाव है कि आप इनबाउंड अनुरोधों को सिर्फ़ क्लस्टर सदस्यों के लिए सीमित करें
(इसमें क्रॉस-डेटास्टोर भी शामिल हैं). ऐसा करने के लिए, iptables का इस्तेमाल करें.
|
जैसा कि इस टेबल में दिखाया गया है, consul-server
कॉम्पोनेंट (ZooKeeper नोड)
को चलाने वाले नोड को, क्लस्टर के उन सभी सदस्यों के लिए पोर्ट 8301, 8302, 8502, 8503, और 8503 खोलने होंगे जो apigee-mtls
सेवा का इस्तेमाल कर रहे हैं
यहां तक कि डेटा सेंटर के लिए भी. जो नोड ZKeeper पर नहीं चल रहे हैं उन्हें इन पोर्ट को खोलने की ज़रूरत नहीं है.
सभी Consul नोड (इसमेंज़ूकीपर चलाने वाले नोड शामिल हैं) के लिए असाइनमेंट पोर्ट करना
Consul कम्यूनिकेशन के लिए, इन Apigee कॉम्पोनेंट को चलाने वाले नोड को, नीचे दी गई रेंज में पोर्ट से बाहरी कनेक्शन को अनुमति देनी होगी:
Apigee कॉम्पोनेंट | रेंज | हर नोड के लिए ज़रूरी पोर्ट की संख्या |
---|---|---|
Apigee mTLS | 10,700 से 10,799 | 1 |
कसांद्रा | 10,100 से 10199 | 2 |
मैसेज प्रोसेसर | 10,500 से 10,599 | 2 |
OpenLDAP | 10,200 से 10,299 | 1 |
पोस्टग्रेस | 10,300 से 10,399 | 3 |
क्यूपीआईडी | 10,400 से 10,499 | 2 |
राऊटर | 10,600 से 10,699 | 2 |
ZooKeeper | 10,001 से 10099 | 3 |
कॉन्सल सामान्य तरीके से लीनियर स्टाइल में पोर्ट असाइन करता है. उदाहरण के लिए, अगर आपके क्लस्टर में दो Postgres नोड हैं, तो पहला नोड दो पोर्ट का इस्तेमाल करता है. इसलिए, Consul इसके लिए पोर्ट 10300 और 10301 असाइन करता है. दूसरे नोड में भी दो पोर्ट इस्तेमाल होते हैं, इसलिए कंसोल उस नोड को 10302 और 10303 असाइन करता है. यह बात सभी तरह के कॉम्पोनेंट पर लागू होती है.
जैसा कि देखा जा सकता है, पोर्ट की असल संख्या टोपोलॉजी पर निर्भर करती है: अगर आपके क्लस्टर में दो पोस्टग्रीस नोड हैं, तो आपको चार पोर्ट (दो नोड गुणा दो पोर्ट) खोलने होंगे.
निम्न पर ध्यान दें:
- कंसोल प्रॉक्सी, उन पोर्ट पर आवाज़ नहीं सुन सकते जिन पर Apigee सेवाएं मौजूद हैं.
- Consul में सिर्फ़ एक पोर्ट पता स्पेस है. पूरे क्लस्टर में, Consul प्रॉक्सी पोर्ट असाइनमेंट अलग-अलग होने चाहिए. इनमें डेटा सेंटर भी शामिल हैं. इसका मतलब है कि अगर होस्ट A पर प्रॉक्सी A, पोर्ट 15,000 पर सुनती है, तो होस्ट B पर प्रॉक्सी B, पोर्ट 15,000 पर नहीं सुन सकता.
- इस्तेमाल किए गए पोर्ट की संख्या, टोपोलॉजी के हिसाब से अलग-अलग होती है, जैसा कि पहले बताया गया है.
मल्टी-डेटा सेंटर कॉन्फ़िगरेशन में, mTLS चलाने वाले सभी होस्ट को पोर्ट 8302 भी खोलना होगा.
आपके पास उन डिफ़ॉल्ट पोर्ट को पसंद के मुताबिक बनाने का विकल्प होता है जिनका इस्तेमाल Apigee mTLS किया जाता है. ऐसा करने के तरीके के बारे में जानकारी के लिए, प्रॉक्सी पोर्ट रेंज को पसंद के मुताबिक बनाना देखें.
सीमाएं
Apigee mTLS की ये सीमाएं हैं:
- इंटर-नोड कैसेंड्रा कम्यूनिकेशन को एन्क्रिप्ट (सुरक्षित) नहीं किया जाता (पोर्ट 7000)
- कॉन्फ़िगरेशन और सेटअप की पहचान नहीं है. इसका मतलब है कि अगर एक नोड में एक बदलाव किया जाता है, तो सभी नोड पर यही बदलाव करना होगा. सिस्टम आपके लिए उस बदलाव को किसी दूसरे नोड पर लागू नहीं करता है. ज़्यादा जानकारी के लिए, मौजूदा apigee-mtls कॉन्फ़िगरेशन बदलना देखें.
शब्दावली
इस सेक्शन में इन शब्दों का इस्तेमाल किया जाता है:
शब्द | परिभाषा |
---|---|
क्लस्टर | ऐसी मशीनों का ग्रुप जो निजी क्लाउड को इंस्टॉल करने के लिए आपका Edge बनाती है. |
सलाह | Apigee mTLS के लिए इस्तेमाल किया जाने वाला सेवा मेश. Consul किस तरह आपके निजी क्लाउड कम्यूनिकेशन को सुरक्षित रखता है, यह जानने के लिए Consul का सुरक्षा मॉडल देखें. |
mTLS | म्यूचुअल रूप से पुष्टि किया गया TLS. |
सर्विस मेश | ओवरले नेटवर्क (या किसी नेटवर्क में मौजूद नेटवर्क). |
टीएलएस | ट्रांज़ैक्शन लेयर सुरक्षा. सुरक्षित कम्यूनिकेशन के लिए, पुष्टि करने का इंडस्ट्री स्टैंडर्ड वाला प्रोटोकॉल. |