Cassandra JMX प्रमाणीकरण और प्राधिकरण: उपयोगकर्ता बनाएँ
⚡ स्मार्ट सारांश
Cassandra सुरक्षा आंतरिक प्रमाणीकरण, भूमिका अनुमतियों, फ़ायरवॉल नियमों और JMX एक्सेस कंट्रोल पर आधारित है। यह पृष्ठ दिखाता है कि प्रत्येक स्तर को कैसे सक्षम किया जाए, उपयोगकर्ता कैसे बनाए जाएं, अनुमतियां कैसे प्रदान की जाएं और रिमोट नोडटूल एक्सेस को कैसे सुरक्षित किया जाए।

इसमें दो प्रकार की सुरक्षा होती है Apache Cassandra और डेटास्टैक्स एंटरप्राइज।
- आंतरिक प्रमाणीकरण
- प्राधिकरण
आंतरिक प्रमाणीकरण और प्राधिकरण क्या है
आंतरिक प्रमाणीकरण मूल रूप से उपयोगकर्ता कनेक्शन को मान्य करना है। उपयोगकर्ता को लॉगिन और पासवर्ड के साथ प्रमाणित किया जाता है। सभी उपयोगकर्ता खाते प्रबंधित किए जाते हैं। Cassandra आंतरिक रूप से।
आंतरिक प्राधिकरण उपयोगकर्ता की अनुमतियों से संबंधित है। यह निर्धारित करता है कि उपयोगकर्ता कौन-कौन से कार्य कर सकता है। उदाहरण के लिए, हम यह अनुमतियाँ दे सकते हैं कि किस उपयोगकर्ता के पास केवल डेटा पढ़ने की अनुमति है, किस उपयोगकर्ता के पास डेटा लिखने की अनुमति है और किस उपयोगकर्ता के पास डेटा हटाने की अनुमति है।
हालांकि, केर्बेरोस (क्रेडेंशियल्स को सुरक्षित रूप से प्रबंधित करने के लिए केर्बेरोस का उपयोग किया जाता है) और एलडीएपी (खातों के बारे में आधिकारिक जानकारी रखने के लिए एलडीएपी का उपयोग किया जाता है, जैसे कि उन्हें किन चीजों तक पहुंचने की अनुमति है) के साथ बाहरी रूप से प्रमाणीकरण को भी नियंत्रित किया जा सकता है।
बाह्य प्रमाणीकरण वह प्रमाणीकरण है जो केर्बेरोस और LDAP के साथ समर्थित है। Apache Cassandra बाह्य प्रमाणीकरण का समर्थन नहीं करता.
केवल DataStax Enterprise ही Kerberos और LDAP के साथ बाहरी प्रमाणीकरण का समर्थन करता है, जबकि आंतरिक प्रमाणीकरण दोनों में समर्थित है। Apache Cassandra साथ ही साथ डेटास्टैक्स एंटरप्राइज भी।
प्रमाणीकरण और प्राधिकरण कॉन्फ़िगर करें
In Cassandraडिफ़ॉल्ट रूप से, प्रमाणीकरण और प्राधिकरण विकल्प अक्षम हैं। प्रमाणीकरण और प्राधिकरण को सक्षम करने के लिए आपको cassandra.yaml फ़ाइल को कॉन्फ़िगर करना होगा।
cassandra.yaml फ़ाइल खोलें और आंतरिक प्रमाणीकरण और प्राधिकरण से संबंधित पंक्तियों को अनकमेंट करें, जैसा कि नीचे दिखाया गया है।
- cassandra.yaml में, डिफ़ॉल्ट रूप से, ऑथेंटिकेटर का मान 'AllowAllAuthenticator' होता है। इस ऑथेंटिकेटर मान को 'AllowAllAuthenticator' से बदलकर 'com.datastax.bdp.cassandra.auth.PasswordAuthenticator' कर दें।
- इसी प्रकार, cassandra.yaml में, डिफ़ॉल्ट रूप से, ऑथराइज़र का मान 'AllowAllAuthorizer' होगा। इस ऑथराइज़र मान को 'AllowAllAuthorizer' से बदलकर 'com.datastax.bdp.cassandra.auth' कर दें।Cassandra'प्राधिकृतकर्ता'.
वे दोनों क्लास नाम DataStax Enterprise के मान हैं। ओपन-सोर्स पर Apache Cassandra वही सेटिंग्स लेती हैं PasswordAuthenticator और CassandraAuthorizerऔर फिर क्रेडेंशियल्स उसमें रहते हैं system_auth कीस्पेस, जिसका प्रतिकृति कारक एक से ऊपर बढ़ाया जाना चाहिए।
प्रवेश किया
अब प्रमाणीकरण सक्षम है, यदि आप किसी भी कुंजीस्थान तक पहुँचने का प्रयास करते हैं, Cassandra एक त्रुटि लौटाएगा।
डिफ़ॉल्ट रूप से, Cassandra यह सुपर अकाउंट 'cassandra' यूजरनेम और 'cassandra' पासवर्ड के साथ उपलब्ध है। 'cassandra' अकाउंट में लॉग इन करके आप जो चाहें कर सकते हैं।
आइए इसके लिए नीचे स्क्रीनशॉट देखें, जहां यह आपको लॉगिन करने की अनुमति नहीं देगा यदि आप डिफ़ॉल्ट का उपयोग नहीं कर रहे हैं Cassandra “उपयोगकर्ता नाम” और “पासवर्ड”।
अब, दूसरे स्क्रीनशॉट में, आप उपयोग करने के बाद देख सकते हैं Cassandra डिफ़ॉल्ट लॉगिन क्रेडेंशियल के साथ, आप लॉगिन करने में सक्षम हैं।
आप इस खाते से एक और उपयोगकर्ता भी बना सकते हैं। डिफ़ॉल्ट पासवर्ड को बदलने की सलाह दी जाती है। यहाँ लॉग इन करने का उदाहरण दिया गया है। Cassandra उपयोगकर्ता और डिफ़ॉल्ट पासवर्ड बदलना।
alter user cassandra with password 'newpassword';
नया उपयोगकर्ता बनाएँ
'cassandra' खाते से नए खाते बनाए जा सकते हैं।
नया उपयोगकर्ता बनाने के लिए, लॉगिन और पासवर्ड के साथ-साथ यह भी निर्दिष्ट किया जाता है कि उपयोगकर्ता सुपरयूज़र है या नहीं। केवल सुपरयूज़र ही नए उपयोगकर्ता बना सकते हैं।
create user robin with password 'manager' superuser; create user robin with password 'newhire';
आप निम्नलिखित सिंटैक्स द्वारा सभी उपयोगकर्ताओं की सूची प्राप्त कर सकते हैं।
list users;
आउटपुट में प्रत्येक खाते को उसके सुपरयूजर फ्लैग के साथ सूचीबद्ध किया गया है।
उपयोगकर्ताओं को निम्नलिखित सिंटैक्स द्वारा हटाया जा सकता है।
drop user laura;
प्राधिकरण
प्राधिकरण का अर्थ है उपयोगकर्ताओं को अनुमति देना, यह तय करना कि कोई विशेष उपयोगकर्ता कौन सी कार्रवाई कर सकता है।
यहां उपयोगकर्ताओं को अनुमति प्रदान करने के लिए सामान्य सिंटैक्स दिया गया है।
GRANT permission ON resource TO user
उपयोगकर्ता को निम्नलिखित प्रकार की अनुमति दी जा सकती है।
- सब
- बदलने
- प्राधिकृत
- बनाएँ
- ड्रॉप
- संशोधित
- चुनते हैं
यहां उपयोगकर्ता को अनुमति प्रदान करने के उदाहरण दिए गए हैं।
Create user laura with password 'newhire'; grant all on dev.emp to laura; revoke all on dev.emp to laura; grant select on dev.emp to laura;
एक नया उपयोगकर्ता 'laura' बनाया गया है जिसका पासवर्ड 'newhire' है।
यहां एक उदाहरण दिया गया है जहां उपयोगकर्ता 'लौरा' emp_bonus टेबल को एक्सेस करने का प्रयास करती है। लौरा के पास केवल dev.emp टेबल को एक्सेस करने की अनुमति है और dev.emp_bonus टेबल पर कोई अनुमति नहीं है, इसलिए एक त्रुटि प्राप्त हुई।
select* form emp_bonus;
आप उपयोगकर्ता को दी गई सभी अनुमतियों की सूची प्राप्त कर सकते हैं। अनुमति संबंधी जानकारी प्राप्त करने का उदाहरण यहाँ दिया गया है।
list all permissions of laura;
आप किसी संसाधन पर सभी अनुमतियों की सूची भी बना सकते हैं। यहां एक टेबल से अनुमति प्राप्त करने का उदाहरण दिया गया है।
list all permissions on dev.emp;
फ़ायरवॉल कॉन्फ़िगर करना
यदि फ़ायरवॉल चल रहा है, तो कुछ सहित नोड्स के बीच संचार के लिए निम्नलिखित पोर्ट खोले जाने चाहिए Cassandra बंदरगाहों. अगर Cassandra बंदरगाह नहीं खोले जाएंगे, Cassandra नोड्स डेटाबेस क्लस्टर में शामिल होने के बजाय स्टैंडअलोन डेटाबेस सर्वर के रूप में कार्य करेंगे।
Cassandra क्लाइंट पोर्ट
| पोर्ट नंबर | विवरण |
|---|---|
| 9042 | Cassandra क्लाइंट पोर्ट |
| 9160 | Cassandra क्लाइंट पोर्ट थ्रिफ्ट |
Cassandra इंटरनोड पोर्ट
| पोर्ट नंबर | विवरण |
|---|---|
| 7000 | Cassandra इंटरनोड क्लस्टर संचार |
| 7001 | Cassandra SSL इंटरनोड क्लस्टर संचार |
| 7199 | Cassandra JMX मॉनिटरिंग पोर्ट |
सार्वजनिक बंदरगाह
| पोर्ट नंबर | विवरण |
|---|---|
| 22 | एसएसएच पोर्ट |
| 8888 | ऑप्ससेंटर वेबसाइट. ब्राउज़र http अनुरोध. |
Cassandra ऑप्ससेंटर पोर्ट
| पोर्ट नंबर | विवरण |
|---|---|
| 61620 | ऑप्ससेंटर मॉनिटरिंग पोर्ट. |
| 61621 | ऑप्ससेंटर एजेंट पोर्ट |
वर्तमान ड्राइवर केवल 9042 पोर्ट का उपयोग करते हैं; पोर्ट 9160 पुराने थ्रिफ्ट इंटरफेस के लिए है और नए क्लस्टर पर बंद रह सकता है।
JMX प्रमाणीकरण सक्षम करना
डिफ़ॉल्ट सेटिंग्स के साथ CassandraJMX को केवल लोकलहोस्ट से ही एक्सेस किया जा सकता है। यदि आप JMX को दूरस्थ रूप से एक्सेस करना चाहते हैं, तो cassandra-env.sh में LOCAL_JMX सेटिंग बदलें और प्रमाणीकरण या SSL को सक्षम करें।
JMX प्रमाणीकरण सक्षम करने के बाद, सुनिश्चित करें ऑप्ससेंटर और nodetool प्रमाणीकरण का उपयोग करने के लिए कॉन्फ़िगर किए गए हैं।
प्रक्रिया
JMX प्रमाणीकरण सक्षम करने के लिए निम्नलिखित चरण हैं।
- Cassandra-env.sh फ़ाइल में, निम्नलिखित पंक्तियाँ जोड़ें या अपडेट करें।
JVM_OPTS="$JVM_OPTS -Dcom.sun.management.jmxremote.authenticate=true" JVM_OPTS="$JVM_OPTS -Dcom.sun.management.jmxremote.password.file=/etc/cassandra/jmxremote.password"
साथ ही, cassandra-env.sh में LOCAL_JMX सेटिंग को भी बदलें।
LOCAL_JMX=no
- /jdk_install_location/lib/management/ से jmxremote.password.template फ़ाइल को /etc/cassandra/ में कॉपी करें और इसका नाम बदलकर jmxremote.password कर दें।
cp /jdk_install_dir/lib/management/jmxremote.password.template /etc/cassandra/jmxremote.password - jmxremote.password का स्वामित्व उस उपयोगकर्ता में बदलें जिसे आप चलाते हैं Cassandra और अनुमति को केवल पढ़ने के लिए बदलें।
chown cassandra:cassandra /etc/cassandra/jmxremote.password chmod 400 /etc/cassandra/jmxremote.password
- jmxremote.password संपादित करें और JMX-अनुरूप उपयोगिताओं के लिए उपयोगकर्ता और पासवर्ड जोड़ें:
monitorRole QED controlRole R&D cassandra cassandrapassword
- जोड़ें Cassandra /jdk_install_location/lib/management/jmxremote.access पर पढ़ने और लिखने की अनुमति वाला उपयोगकर्ता
monitorRole readonly cassandra readwrite controlRole readwrite \ create javax.management.monitor.,javax.management.timer. \ unregister
- पुनः प्रारंभ Cassandra.
- nodetool को चलाएँ Cassandra उपयोगकर्ता और पासवर्ड.
$ nodetool status -u cassandra -pw cassandra







