Apache Cassandra और Datastax उद्यम में दो प्रकार की सुरक्षा है।
- आंतरिक प्रमाणीकरण
- प्राधिकार
इस ट्यूटोरियल में आप सीखेंगे,
- आंतरिक प्रमाणीकरण और प्राधिकरण क्या है
- प्रमाणीकरण और प्राधिकरण कॉन्फ़िगर करें
- प्रवेश किया
- नया उपयोगकर्ता बनाएँ
- प्राधिकार
- फ़ायरवॉल को कॉन्फ़िगर करना
- JMX प्रमाणीकरण सक्षम करना
आंतरिक प्रमाणीकरण और प्राधिकरण क्या है
आंतरिक प्रमाणीकरण मूल रूप से उपयोगकर्ता कनेक्शन को मान्य कर रहा है। उपयोगकर्ता लॉगिन और पासवर्ड से प्रमाणित होता है। सभी उपयोगकर्ता खातों को कैसंड्रा में आंतरिक रूप से प्रबंधित किया जाता है।
आंतरिक प्राधिकरण उपयोगकर्ता की अनुमति से संबंधित है। यह उपयोगकर्ता द्वारा किए जाने वाले कार्यों से संबंधित है। उदाहरण के लिए, हम उपयोगकर्ता की अनुमति दे सकते हैं जैसे कि किस उपयोगकर्ता के पास केवल डेटा रीड अनुमति है, किस उपयोगकर्ता के पास डेटा लिखने की अनुमति है और किस उपयोगकर्ता के पास डेटा हटाने की अनुमति है।
हालाँकि, प्रमाणीकरण को Kerberos के साथ बाहरी रूप से भी नियंत्रित किया जा सकता है (Kerberos का उपयोग क्रेडेंशियल्स को सुरक्षित रूप से प्रबंधित करने के लिए किया जाता है) और LDAP (LDAP का उपयोग खातों के बारे में आधिकारिक जानकारी रखने के लिए किया जाता है, जैसे कि उन्हें एक्सेस करने की अनुमति क्या है)।
बाहरी प्रमाणीकरण वह प्रमाणीकरण है जो केर्बरोस और एलडीएपी के साथ समर्थित है। अपाचे कैसेंड्रा बाहरी प्रमाणीकरण का समर्थन नहीं करता है।
केवल डेटाटैक्स उद्यम कर्बरोस और एलडीएपी के साथ बाहरी प्रमाणीकरण का समर्थन करता है। जबकि अपाचे कैसेंड्रा और साथ ही डाटासैक्स एंटरप्राइज में आंतरिक प्रमाणीकरण का समर्थन किया जाता है।
प्रमाणीकरण और प्राधिकरण कॉन्फ़िगर करें
कैसेंड्रा में, डिफ़ॉल्ट प्रमाणीकरण और प्राधिकरण विकल्प अक्षम हैं। प्रमाणीकरण और प्राधिकरण सक्षम करने के लिए आपको Cassandra.yaml फ़ाइल को कॉन्फ़िगर करना होगा।
आंतरिक प्रमाणीकरण और प्राधिकरण के साथ काम करने वाली Cassandra.yaml फाइल और अनकंफर्टेशन लाइनें खोलें।
- Cassandra.yaml फ़ाइल में, डिफ़ॉल्ट रूप से, प्रमाणक मान 'AllowAllAuthenticator' है। इस प्रमाणक मान को 'AllowAllAuthenticator' से 'com.datastax.bdp.cassandra.auth.PasswordAuthenticator' में बदलें।
- इसी तरह, कैसेंड्रा.माइल फ़ाइल में, डिफ़ॉल्ट रूप से, लेखक का मान 'AllowAllAuthorizor' होगा। इस ऑथराइज़र मान को 'AllowAllAuthorizor' से 'com.datastax.bdp.cassandra.auth.CassandraAuthorizor' में बदलें।
प्रवेश किया
अब प्रमाणीकरण सक्षम किया गया है, यदि आप किसी भी कीस्पेस को एक्सेस करने का प्रयास करते हैं, तो कैसेंड्रा एक त्रुटि वापस करेगा।
डिफ़ॉल्ट रूप से, कैसेंड्रा उपयोगकर्ता नाम 'कैसेंड्रा' और पासवर्ड 'कैसेंड्रा' के साथ सुपर खाता प्रदान करता है। 'कैसेंड्रा' खाते में प्रवेश करके, आप जो चाहें कर सकते हैं।
आइए इसके लिए नीचे स्क्रीनशॉट देखें, जहां यह आपको डिफ़ॉल्ट कैसेंड्रा "उपयोगकर्ता नाम" और "पासवर्ड" का उपयोग नहीं करने पर लॉगिन करने की अनुमति नहीं देगा।
अब, दूसरे स्क्रीनशॉट में, आप कैसंड्रा डिफ़ॉल्ट लॉगिन क्रेडेंशियल का उपयोग करने के बाद देख सकते हैं, आप लॉगिन करने में सक्षम हैं।
आप इस खाते के साथ एक अन्य उपयोगकर्ता भी बना सकते हैं। डिफ़ॉल्ट से पासवर्ड बदलने की सिफारिश की जाती है। यहाँ लॉगिन कैसेंड्रा उपयोगकर्ता का उदाहरण है और डिफ़ॉल्ट पासवर्ड बदलें।
alter user cassandra with password 'newpassword';
नया उपयोगकर्ता बनाएँ
'कैसंड्रा' खाते के साथ नए खाते बनाए जा सकते हैं।
एक नया उपयोगकर्ता बनाने के लिए, लॉगिन करें, पासवर्ड निर्दिष्ट किया गया है कि उपयोगकर्ता सुपर उपयोगकर्ता है या नहीं। केवल सुपर उपयोगकर्ता ही नए उपयोगकर्ता बना सकता है।
create user robin with password 'manager' superuser;create user robin with password 'newhire';
आप निम्न सिंटैक्स द्वारा सभी उपयोगकर्ताओं की सूची प्राप्त कर सकते हैं।
list users;
उपयोगकर्ताओं को निम्नलिखित सिंटैक्स द्वारा छोड़ा जा सकता है।
drop user laura;
प्राधिकार
प्राधिकरण उपयोगकर्ताओं को असाइन करने की अनुमति है कि एक विशेष उपयोगकर्ता क्या कार्रवाई कर सकता है।
यहां उपयोगकर्ताओं को अनुमति देने के लिए सामान्य वाक्यविन्यास है।
GRANT permission ON resource TO user
निम्नलिखित प्रकार की अनुमति है जो उपयोगकर्ता को दी जा सकती है।
- सब
- बदलने
- AUTHORIZIZE
- सृजन करना
- ड्रॉप
- संशोधित
- चुनते हैं
यहां उपयोगकर्ता को अनुमति देने के उदाहरण दिए गए हैं।
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' emp_bonus table तक पहुँचने का प्रयास करता है। लौरा को केवल dev.emp तक पहुँचने की अनुमति है और इस तालिका dev.emp_bonus को कोई अनुमति नहीं है, इसीलिए त्रुटि वापस की गई।
select* form emp_bonus;
आप उन सभी अनुमतियों की सूची प्राप्त कर सकते हैं जो उपयोगकर्ता को सौंपी गई हैं। यहाँ अनुमति जानकारी प्राप्त करने का उदाहरण है।
list all permissions of laura;
आप संसाधन पर सभी अनुमति भी सूचीबद्ध कर सकते हैं। यहाँ एक तालिका से अनुमति प्राप्त करने का उदाहरण दिया गया है।
list all permissions on dev.emp;
फ़ायरवॉल को कॉन्फ़िगर करना
यदि फ़ायरवॉल चल रहा है, तो कुछ कैसंड्रा बंदरगाहों सहित नोड्स के बीच संचार के लिए निम्नलिखित पोर्ट खोले जाने चाहिए। यदि Cassandra पोर्ट नहीं खोला जाएगा, Cassandra नोड्स डेटाबेस क्लस्टर में शामिल होने के बजाय स्टैंडअलोन डेटाबेस सर्वर के रूप में कार्य करेगा।
कैसांद्रा क्लाइंट पोर्ट्स
पोर्ट नंबर |
विवरण |
9042 |
कैसेंड्रा क्लाइंट पोर्ट |
9160 है |
कैसांद्रा क्लाइंट पोर्ट थ्रिफ्ट |
कैसंड्रा इंटरनोड बंदरगाहों
पोर्ट नंबर |
विवरण |
7000 है |
कैसंड्रा इंटर्नोड क्लस्टर संचार |
7001 |
कैसेंड्रा एसएसएल इंटर्नोड क्लस्टर संचार |
7199 है |
कैसंड्रा जेएमएक्स निगरानी बंदरगाह |
सार्वजनिक बंदरगाह
पोर्ट नंबर |
विवरण |
२२ |
एसएसएच पोर्ट |
8888 है |
ऑप्सेंटर वेबसाइट। ब्राउज़र http अनुरोध। |
कैसेंड्रा ऑप्सेंटर पोर्ट
पोर्ट नंबर |
विवरण |
61620 है |
ऑप्सेंटर मॉनिटरिंग पोर्ट। |
61621 है |
ऑप्सेंटर एजेंट पोर्ट |
JMX प्रमाणीकरण सक्षम करना
कैसंड्रा की डिफ़ॉल्ट सेटिंग्स के साथ, जेएमएक्स को केवल लोकलहोस्ट से एक्सेस किया जा सकता है। यदि आप JMX को दूरस्थ रूप से एक्सेस करना चाहते हैं, तो Cassandra-env.sh में LOCAL_JMX सेटिंग बदलें और प्रमाणीकरण या SSL सक्षम करें।
JMX प्रमाणीकरण सक्षम करने के बाद, सुनिश्चित करें कि ऑप्सेंटर और नोडोडूल प्रमाणीकरण का उपयोग करने के लिए कॉन्फ़िगर किए गए हैं।
प्रक्रिया
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
- Jmxremote.password.template को / jdk_install_location / lib / प्रबंधन / से / etc / cassandra / की प्रतिलिपि बनाएँ और इसे tojmxremote.password का नाम बदलें।
cp />jdk_install_dir/lib/management/jmxremote.password.template /etc/cassandra/jmxremote.password
- उस उपयोगकर्ता को jmxremote.password का स्वामित्व बदलें जिसमें आप कैसंड्रा चलाते हैं और केवल पढ़ने की अनुमति बदलते हैं
chown cassandra:cassandra /etc/cassandra/jmxremote.passwordchmod 400 /etc/cassandra/jmxremote.password
- Jmxremote.password संपादित करें और JMX- अनुरूप उपयोगिताओं के लिए उपयोगकर्ता और पासवर्ड जोड़ें:
monitorRole QEDcontrolRole R&Dcassandra cassandrapassword
- कैसंड्रा उपयोगकर्ता को /jdk_install_location/lib/management/jmxremote.access पर पढ़ने और लिखने की अनुमति दें
monitorRole readonlycassandra readwritecontrolRole readwrite \create javax.management.monitor.,javax.management.timer. \unregister
- कैसंड्रा को फिर से शुरू करें
- कैसंड्रा उपयोगकर्ता और पासवर्ड के साथ नोडोडूल चलाएं।
$ nodetool status -u cassandra -pw cassandra
सारांश:
यह ट्यूटोरियल कैसेंड्रा में सुरक्षा के बारे में बताता है और सुरक्षा को सक्षम करने के लिए कैसेंड्रा.माइल फाइल को कॉन्फ़िगर करता है। इसके अलावा यह यह भी बताता है कि नया उपयोगकर्ता खाता कैसे बनाया जा सकता है, अनुमति का कार्य, फ़ायरवॉल को कॉन्फ़िगर करना, और इसी तरह।