Apigee mTLS सुविधा, प्राइवेट क्लाउड क्लस्टर के लिए आपके Edge में कॉम्पोनेंट के बीच कम्यूनिकेशन को बेहतर बनाती है. यह सेवा मेश को कॉन्फ़िगर और इंस्टॉल करने का इंडस्ट्री स्टैंडर्ड वाला तरीका है. यह पैकेज मैनेजमेंट और कॉन्फ़िगरेशन ऑटोमेशन के साथ काम करता है.
आर्किटेक्चर से जुड़ी खास जानकारी
कॉम्पोनेंट के बीच सुरक्षित कम्यूनिकेशन के लिए, Apigee mTLS ऐसा सर्विस मेश का इस्तेमाल करता है जो कॉम्पोनेंट के बीच सुरक्षित और आपसी पुष्टि वाले TLS कनेक्शन सेट करता है.
नीचे दी गई इमेज में, Apigee कॉम्पोनेंट के बीच कनेक्शन दिखाए गए हैं, जिन्हें Apigee mTLS सुरक्षित करता है (in red). इमेज में दिखाए गए पोर्ट उदाहरण हैं; हर कॉम्पोनेंट इस्तेमाल की जा सकने वाली रेंज की सूची के लिए, पोर्ट का इस्तेमाल देखें.
(ध्यान दें कि "M" के साथ दिखाए गए पोर्ट का इस्तेमाल कॉम्पोनेंट को मैनेज करने के लिए किया जाता है. साथ ही, इन्हें कॉम्पोनेंट में खोला जाना चाहिए, ताकि मैनेजमेंट सर्वर ऐक्सेस कर सके.)
जैसा कि ऊपर दिए गए डायग्राम में दिखाया गया है, Apigee mTLS, क्लस्टर के ज़्यादातर कॉम्पोनेंट के बीच कनेक्शन की सुरक्षा करता है. इनमें ये शामिल हैं:
सोर्स | डेस्टिनेशन | |
---|---|---|
मैनेजमेंट सर्वर | राऊटर, MP, QPid, LDAP, पोस्टग्रे, ज़ूकीपर, और कैसेंड्रा नोड | |
राऊटर | लूपबैक; क्यूपिड, ज़ूकीपर, और कैसांद्रा नोड | |
मैसेज प्रोसेसर | लूपबैक; क्यूपिड, ज़ूकीपर, और कैसांद्रा नोड | |
ज़ूकीपर और कासांद्रा | अन्य ज़ूकीपर और कैसांद्रा नोड | |
Edge का यूज़र इंटरफ़ेस (यूआई) | एसएमटीपी (सिर्फ़ बाहरी आईडीपी के लिए) | |
पोस्टग्रे | अन्य पोस्टग्रे, ज़ूकीपर, और कैसांद्रा नोड |
मैसेज को एन्क्रिप्ट (सुरक्षित) करना/डिक्रिप्ट करना
Apigee mTLS सेवा मेश में Consul सर्वर होते हैं, जो आपके क्लस्टर में हर ZooKeeper नोड पर चलते हैं और क्लस्टर में हर नोड पर नीचे दी गई Consul सेवाएं होती हैं:
- ऐसा एक्सग्रेस प्रॉक्सी जो होस्ट नोड पर आउटगोइंग मैसेज को रोकता है. यह सेवा, आउटगोइंग मैसेज को डेस्टिनेशन पर भेजने से पहले, उन्हें एन्क्रिप्ट (सुरक्षित) करती है.
- ऐसा इनग्रेस प्रॉक्सी जो होस्ट नोड पर आने वाले मैसेज को बीच में रोकता है. यह सेवा, भेजे गए मैसेज को फ़ाइनल डेस्टिनेशन पर भेजने से पहले, उनके मैसेज को डिक्रिप्ट करती है.
उदाहरण के लिए, जब मैनेजमेंट सर्वर राऊटर को कोई मैसेज भेजता है, तो इग्रेस डेटा ट्रैफ़िक सेवा, आउटगोइंग मैसेज को इंटरसेप्ट करती है, उसे एन्क्रिप्ट (सुरक्षित) करती है, और फिर उसे राऊटर को भेज देती है. जब राऊटर के नोड को मैसेज मिलता है, तो इन्ग्रेस डेटा ट्रैफ़िक सेवा, मैसेज को डिक्रिप्ट करती है और उसे प्रोसेस करने के लिए राऊटर कॉम्पोनेंट में भेज देती है.
यह सब पारदर्शी तरीके से Edge के कॉम्पोनेंट के साथ होता है: उन्हें Consul प्रॉक्सी सेवाओं की एन्क्रिप्ट (सुरक्षित) करने की और डिक्रिप्शन प्रोसेस की जानकारी नहीं होती है.
इसके अलावा, Apigee mTLS, iptables
यूटिलिटी का इस्तेमाल करता है. यह Linux फ़ायरवॉल सेवा है, जो ट्रैफ़िक रीडायरेक्शन को मैनेज करती है.
ज़रूरी शर्तें
Apigee mTLS इंस्टॉल करने से पहले, आपके एनवायरमेंट को ये ज़रूरी शर्तें पूरी करनी होंगी:
- टोपोलॉजी से जुड़ी ज़रूरी शर्तें
- उपयोगिताएं इंस्टॉल और चालू की गई
- अनुमतियों के सही लेवल वाला उपयोगकर्ता खाता
- एक एडमिन मशीन (सुझाया गया)
- पोर्ट का इस्तेमाल
इन सेक्शन में, इन सभी ज़रूरी शर्तों के बारे में पूरी जानकारी दी गई है.
टोपोलॉजी की ज़रूरी शर्तें
Apigee mTLS के लिए, यह ज़रूरी है कि आपके एनवायरमेंट की टोपोलॉजी में कम से कम तीन ज़ूकीपर नोड शामिल हों. इसलिए, Apigee mTLS को सिर्फ़ उन टॉपोलॉजी पर इंस्टॉल किया जा सकता है जो 5, 9, 12 (मल्टी-डेटा सेंटर) या 13 नोड का इस्तेमाल करते हैं. ज़्यादा जानकारी के लिए, इंस्टॉल करने की मुख्य वजहें देखें.
सुविधाएं/पैकेज
Apigee mTLS के लिए, यह ज़रूरी है कि इंस्टॉलेशन की प्रक्रिया शुरू करने से पहले, आपके क्लस्टर की हर मशीन पर ये पैकेज इंस्टॉल और चालू हों. इसमें एडमिन मशीन भी शामिल है:
उपयोगिता/पैकेज | ब्यौरा | क्या इंस्टॉल करने के बाद इसे हटाना ठीक है? |
---|---|---|
base64 |
इंस्टॉलेशन स्क्रिप्ट में मौजूद डेटा की पुष्टि करता है. | |
gnu-bash gnu-sed gnu-grep |
इसका इस्तेमाल इंस्टॉलेशन स्क्रिप्ट और दूसरे सामान्य टूल में किया जाता है. | |
iptables |
डिफ़ॉल्ट फ़ायरवॉल, firewalld को बदलता है. |
|
iptables-services |
iptables की सुविधा के साथ काम करता है. |
|
lsof |
इंस्टॉलेशन स्क्रिप्ट से इस्तेमाल किया जाता है. | |
nc |
iptables रास्तों की पुष्टि की जाती है. |
|
openssl |
शुरुआती बूटस्ट्रैपिंग प्रोसेस के दौरान सर्टिफ़िकेट पर स्थानीय रूप से हस्ताक्षर करता है. |
इंस्टॉल करने के दौरान, एडमिन मशीन पर Consul पैकेज भी इंस्टॉल किया जाता है, ताकि क्रेडेंशियल और एन्क्रिप्शन कुंजी जनरेट की जा सके.
apigee-mtls
पैकेज, Consul सर्वर को इंस्टॉल और कॉन्फ़िगर करता है. इसमें क्लस्टर में मौजूद ZooKeeper नोड पर इन्ग्रेस डेटा ट्रैफ़िक और इग्रेस डेटा ट्रैफ़िक प्रॉक्सी शामिल हैं.
उपयोगकर्ता खाते की अनुमतियां
इंस्टॉल करने से पहले, एक नया उपयोगकर्ता खाता बनाएं या पक्का करें कि आपके पास उस खाते का ऐक्सेस है जिस पर खास अधिकार हैं.
क्लस्टर में हर नोड पर Apigee mTLS इंस्टॉलेशन चलाने वाले खाते के लिए ज़रूरी है कि वे:
- Apigee कॉम्पोनेंट को शुरू करना, बंद करना, रीस्टार्ट करना, और शुरू करना
- फ़ायरवॉल के नियम सेट करें
- नया ओएस/सिस्टम उपयोगकर्ता खाता बनाएं
systemctl
से सेवाओं को चालू, बंद, चालू, बंद, और मास्क करें
एडमिन मशीन (सुझाया गया)
Apigee का सुझाव है कि आपके पास क्लस्टर में एक ऐसा नोड है जिस पर आप इस दस्तावेज़ में बताए गए कई एडमिन के काम कर सकते हैं. इनमें ये शामिल हैं:
- HahiCorp Consul 1.6.2 इंस्टॉल करें.
- सर्टिफ़िकेट/की की जोड़ी और गॉसिप एन्क्रिप्शन कुंजी जनरेट करें और डिस्ट्रिब्यूट करें.
- कॉन्फ़िगरेशन फ़ाइल को अपडेट करें और उसे उपलब्ध कराएं.
एडमिन मशीन सेट अप करते समय:
- पक्का करें कि आपके पास इसका रूट ऐक्सेस है.
apigee-service
औरapigee-setup
उपयोगिताएं को डाउनलोड और इंस्टॉल करें, जैसा कि Edge apigee-setup यूटिलिटी इंस्टॉल करें में बताया गया है.- पक्का करें कि आप एडमिन मशीन से क्लस्टर में सभी नोड को
ऐक्सेस करने के लिए
scp/ssh
का इस्तेमाल कर सकते हैं. यह इसलिए ज़रूरी है, ताकि आप अपनी कॉन्फ़िगरेशन फ़ाइल और क्रेडेंशियल को डिस्ट्रिब्यूट कर सकें.
पोर्ट का इस्तेमाल और असाइनमेंट
इस सेक्शन में, पोर्ट के इस्तेमाल और पोर्ट असाइनमेंट के बारे में बताया गया है, ताकि Consul में Apigee mTLS को भेजा जा सके.
पोर्ट का इस्तेमाल: apigee-mtls चलाने वाले सभी नोड
apigee-mtls
सेवा का इस्तेमाल करने वाले क्लस्टर के सभी नोड को localhost (127.0.0.1) पर मौजूद सेवाओं से कनेक्शन की अनुमति देनी होगी. इससे Consul प्रॉक्सी, दूसरी सेवाओं से उस समय संपर्क कर पाती हैं,
जब वे इनकमिंग और आउटगोइंग मैसेज प्रोसेस करते हैं.
पोर्ट का इस्तेमाल: Consul सर्वर नोड (ZooKeeper चलाने वाले नोड)
क्लस्टर में सभी नोड से अनुरोध स्वीकार करने के लिए, आपको नीचे दिए गए ज़्यादातर पोर्ट को Consul सर्वर नोड (ZooKeeper पर चल रहे नोड) पर खोलना होगा:
नोड | Consul सर्वर पोर्ट | ब्यौरा | प्रोटोकॉल | बाहरी mtls-एजेंट को अनुमति दें * |
---|---|---|---|---|
Consul Server (ZooKeeper नोड) | 8300 |
क्लस्टर में सभी Consul सर्वर कनेक्ट करता है. | RPC | |
8301 |
क्लस्टर में, सदस्यता और ब्रॉडकास्ट मैसेज को हैंडल करता है. | यूडीपी/टीसीपी | ||
8302 |
WAN पोर्ट, जो मल्टी-डेटा सेंटर कॉन्फ़िगरेशन में सदस्यता और ब्रॉडकास्ट मैसेज को मैनेज करता है. | यूडीपी/टीसीपी | ||
8500 |
समान नोड पर प्रोसेस से HTTP कनेक्शन को Consul Server API से प्रबंधित करता है.
इस पोर्ट का इस्तेमाल, रिमोट कम्यूनिकेशन या कोऑर्डिनेशन के लिए नहीं किया जाता. यह सिर्फ़ localhost पर काम करता है. |
HTTP | ||
8502 |
क्लस्टर में मौजूद अन्य नोड से, Consul Server एपीआई के gRPC+एचटीटीपीएस कनेक्शन को हैंडल करता है. | gRPC+एचटीटीपीएस | ||
8503 |
यह क्लस्टर के अन्य नोड से, Consul Server API (एपीआई) के साथ एचटीटीपीएस कनेक्शन को मैनेज करता है. | एचटीटीपीएस | ||
8600 |
Consul सर्वर के डीएनएस को मैनेज करता है. | यूडीपी/टीसीपी | ||
* Apigee का सुझाव है कि आप इनबाउंड अनुरोधों को सिर्फ़ क्लस्टर के सदस्यों तक सीमित करें
(इसमें क्रॉस-डेटास्टोर भी शामिल हैं). यह पेमेंट iptables से किया जा सकता है.
|
जैसा कि इस टेबल में दिखाया गया है, consul-server
कॉम्पोनेंट (ZooKeeper नोड) पर चल रहे नोड को क्लस्टर के सभी सदस्यों के लिए पोर्ट 8301, 8302, 8502, और 8503 को खोलना होगा. यहां तक कि apigee-mtls
सेवा का इस्तेमाल करने वाले सभी डेटा सेंटर के लिए भी यह ज़रूरी है. जो नोड ZooKeeper का इस्तेमाल नहीं कर रहे हैं
उन्हें इन पोर्ट को खोलने की ज़रूरत नहीं है.
सभी Consul नोड के लिए पोर्ट असाइनमेंट (इसमें ZooKeeper चलाने वाले नोड शामिल हैं)
Consul में मैसेज भेजने की सुविधा देने के लिए, नीचे दिए गए Apigee कॉम्पोनेंट को चलाने वाले नोड को, नीचे दी गई रेंज में पोर्ट से बाहरी कनेक्शन की अनुमति देनी होगी:
Apigee कॉम्पोनेंट | रेंज | हर नोड के लिए ज़रूरी पोर्ट की संख्या |
---|---|---|
Apigee mTLS | 10,700 से 10,799 | 1 |
कासांद्रा | 10,100 से 10,199 | 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,000 से 10,099 | 3 |
कॉन्सल, आसान लीनियर (लीनियर) तरीके से पोर्ट असाइन करता है. उदाहरण के लिए, अगर आपके क्लस्टर में दो Postgres नोड हैं, तो पहला नोड दो पोर्ट का इस्तेमाल करता है, इसलिए Consul में पोर्ट 10300 और 10301 असाइन किए जाते हैं. दूसरा नोड दो पोर्ट का भी इस्तेमाल करता है, इसलिए कंसोल उस नोड को 10302 और 10303 असाइन करता है. यह बात सभी तरह के कॉम्पोनेंट पर लागू होती है.
जैसा कि आपको दिख रहा है, पोर्ट की असल संख्या टोपोलॉजी पर निर्भर करती है: अगर आपके क्लस्टर में दो पोस्टग्रेस नोड हैं, तो आपको चार पोर्ट खोलने होंगे (दो नोड गुणा दो पोर्ट हर एक).
निम्न पर ध्यान दें:
- Consul प्रॉक्सी, Apigee सेवाओं वाले पोर्ट पर नहीं सुन सकते.
- Consul में सिर्फ़ एक पोर्ट पता स्पेस है. कंसोल में, प्रॉक्सी पोर्ट को असाइन करने का काम, पूरे क्लस्टर में अलग-अलग होना चाहिए. इनमें डेटा सेंटर भी शामिल हैं. इसका मतलब है कि अगर होस्ट A का प्रॉक्सी A, पोर्ट 15000 पर सुनता है, तो होस्ट B पर प्रॉक्सी B, पोर्ट 15000 पर नहीं सुन सकता.
- जैसा कि पहले बताया गया है, टोपोलॉजी के आधार पर इस्तेमाल किए जाने वाले पोर्ट की संख्या अलग-अलग होती है.
मल्टी-डेटा सेंटर कॉन्फ़िगरेशन में, mTLS चलाने वाले सभी होस्ट को पोर्ट 8302 भी खोलना होगा.
आपके पास उन डिफ़ॉल्ट पोर्ट को पसंद के मुताबिक बनाने का विकल्प होता है जिनका इस्तेमाल Apigee mTLS किया जा सकता है. ऐसा करने का तरीका जानने के लिए, प्रॉक्सी पोर्ट रेंज को पसंद के मुताबिक बनाना देखें.
सीमाएं
Apigee mTLS की ये सीमाएं हैं:
- कैसांद्रा कम्यूनिकेशन के इंटर-नोड (पोर्ट 7000) को एन्क्रिप्ट (सुरक्षित) नहीं करता
- कॉन्फ़िगरेशन और सेटअप कारगर नहीं है. इसका मतलब है कि अगर एक नोड में एक बदलाव किया जाता है, तो आपको सभी नोड पर एक जैसा बदलाव करना होगा. सिस्टम इस बदलाव को किसी दूसरे नोड पर लागू नहीं करता है. ज़्यादा जानकारी के लिए, मौजूदा apigee-mtls कॉन्फ़िगरेशन बदलना देखें.
शब्दावली
इस सेक्शन में, नीचे दी गई शब्दावली का इस्तेमाल किया गया है:
टर्म | परिभाषा |
---|---|
क्लस्टर | उन मशीनों का ग्रुप जो Private Cloud को इंस्टॉल करने के लिए आपका Edge बनाती हैं. |
कॉन्सुल | Apigee mTLS में इस्तेमाल किया जाने वाला सेवा मेश. Consul कैसे आपके निजी क्लाउड कम्यूनिकेशन को सुरक्षित रखता है, इस बारे में जानकारी के लिए, Consul का सुरक्षा मॉडल देखें. |
mTLS | दोनों जगहों की पुष्टि की गई TLS. |
सर्विस मेश | ओवरले नेटवर्क (या नेटवर्क में मौजूद नेटवर्क). |
टीएलएस | ट्रांज़ैक्शन लेयर सिक्योरिटी. सुरक्षित कम्यूनिकेशन के लिए, यह इंडस्ट्री स्टैंडर्ड का पुष्टि करने वाला प्रोटोकॉल है. |