Cassandra JMX प्रमाणीकरण और प्राधिकरण: उपयोगकर्ता बनाएँ

इसमें दो प्रकार की सुरक्षा होती है Apache Cassandra और डेटास्टैक्स एंटरप्राइज।

  • आंतरिक प्रमाणीकरण
  • प्राधिकरण

आंतरिक प्रमाणीकरण और प्राधिकरण क्या है

आंतरिक प्रमाणीकरण मूल रूप से उपयोगकर्ता कनेक्शन को मान्य करता है। उपयोगकर्ता को लॉगिन और पासवर्ड के साथ प्रमाणित किया जाता है। सभी उपयोगकर्ता खातों को प्रबंधित किया जाता है Cassandra आंतरिक रूप से।

आंतरिक प्राधिकरण उपयोगकर्ता की अनुमति से संबंधित है। यह इस बात से संबंधित है कि उपयोगकर्ता क्या कार्य कर सकता है। उदाहरण के लिए, हम उपयोगकर्ता को अनुमति दे सकते हैं जैसे कि किस उपयोगकर्ता के पास केवल डेटा पढ़ने की अनुमति है, किस उपयोगकर्ता के पास डेटा लिखने की अनुमति है और किस उपयोगकर्ता के पास डेटा हटाने की अनुमति है।

हालाँकि, प्रमाणीकरण को बाहरी रूप से भी नियंत्रित किया जा सकता है करबरोस (केर्बेरोस का उपयोग क्रेडेंशियल्स को सुरक्षित रूप से प्रबंधित करने के लिए किया जाता है) और एलडीएपी (एलडीएपी का उपयोग खातों के बारे में आधिकारिक जानकारी रखने के लिए किया जाता है, जैसे कि उन्हें किस चीज़ तक पहुंच की अनुमति है)।

बाह्य प्रमाणीकरण वह प्रमाणीकरण है जो केर्बेरोस और LDAP के साथ समर्थित है। Apache Cassandra बाह्य प्रमाणीकरण का समर्थन नहीं करता.

केवल डेटास्टैक्स एंटरप्राइज़ केर्बेरोस और एलडीएपी के साथ बाहरी प्रमाणीकरण का समर्थन करता है। जबकि आंतरिक प्रमाणीकरण दोनों में समर्थित है Apache Cassandra साथ ही डेटास्टैक्स एंटरप्राइज।

प्रमाणीकरण और प्राधिकरण कॉन्फ़िगर करें

In Cassandra, डिफ़ॉल्ट रूप से प्रमाणीकरण और प्राधिकरण विकल्प अक्षम हैं। आपको कॉन्फ़िगर करना होगा Cassandraप्रमाणीकरण और प्राधिकरण सक्षम करने के लिए .yaml फ़ाइल.

प्रारंभिक Cassandra.yaml फ़ाइल खोलें और आंतरिक प्रमाणीकरण और प्राधिकरण से संबंधित पंक्तियों को अनकमेंट करें।

प्रमाणीकरण और प्राधिकरण कॉन्फ़िगर करें

  • In Cassandra.yaml फ़ाइल में, डिफ़ॉल्ट रूप से, प्रमाणक मान 'AllowAllAuthenticator' है। इस प्रमाणक मान को 'AllowAllAuthenticator' से बदलकर 'com.datastax.bdp.cassandra.auth.PasswordAuthenticator' करें।
  • इसी तरह, में Cassandra.yaml फ़ाइल में, डिफ़ॉल्ट रूप से, ऑथराइज़र मान 'AllowAllAuthorizor' होगा। इस ऑथराइज़र मान को 'AllowAllAuthorizor' से बदलकर 'com.datastax.bdp.cassandra.auth' करें।Cassandra'प्राधिकृतकर्ता'.

प्रवेश किया

अब प्रमाणीकरण सक्षम है, यदि आप किसी भी कुंजीस्थान तक पहुँचने का प्रयास करते हैं, 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

उपयोगकर्ता को निम्नलिखित प्रकार की अनुमति दी जा सकती है।

  1. सब
  2. बदलने
  3. अधिकृत करें
  4. बनाएँ
  5. ड्रॉप
  6. संशोधित
  7. चुनते हैं

यहां उपयोगकर्ता को अनुमति प्रदान करने के उदाहरण दिए गए हैं।

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 ऑप्ससेंटर एजेंट पोर्ट

JMX प्रमाणीकरण सक्षम करना

डिफ़ॉल्ट सेटिंग्स के साथ Cassandra, JMX को केवल लोकलहोस्ट से ही एक्सेस किया जा सकता है। यदि आप JMX को रिमोट तरीके से एक्सेस करना चाहते हैं, तो LOCAL_JMX सेटिंग बदलें Cassandra-env.sh और प्रमाणीकरण या SSL सक्षम करें।

JMX प्रमाणीकरण सक्षम करने के बाद, सुनिश्चित करें ऑप्ससेंटर और nodetool प्रमाणीकरण का उपयोग करने के लिए कॉन्फ़िगर किए गए हैं।

प्रक्रिया

JMX प्रमाणीकरण सक्षम करने के लिए निम्नलिखित चरण हैं।

  1. 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"

इसके अलावा, LOCAL_JMX सेटिंग बदलें Cassandra-env.sh

LOCAL_JMX=no
  1. jmxremote.password.template को /jdk_install_location/lib/management/ से /etc/cassandra/ पर कॉपी करें और इसका नाम बदलकर jmxremote.password कर दें।
cp />jdk_install_dir/lib/management/jmxremote.password.template /etc/cassandra/jmxremote.password
  1. jmxremote.password का स्वामित्व उस उपयोगकर्ता में बदलें जिसे आप चलाते हैं Cassandra और अनुमति को केवल पढ़ने के लिए बदलें
chown cassandra:cassandra /etc/cassandra/jmxremote.password 
chmod 400 /etc/cassandra/jmxremote.password
  1. jmxremote.password संपादित करें और JMX-अनुरूप उपयोगिताओं के लिए उपयोगकर्ता और पासवर्ड जोड़ें:
monitorRole QED 
controlRole R&D 
cassandra cassandrapassword
  1. जोड़ें Cassandra /jdk_install_location/lib/management/jmxremote.access पर पढ़ने और लिखने की अनुमति वाला उपयोगकर्ता
monitorRole readonly
cassandra readwrite
controlRole readwrite \
create javax.management.monitor.,javax.management.timer. \ 
unregister
  1. पुनः प्रारंभ Cassandra
  2. nodetool को चलाएँ Cassandra उपयोगकर्ता और पासवर्ड.
$ nodetool status -u cassandra -pw cassandra

सारांश

यह ट्यूटोरियल सुरक्षा के बारे में बताता है Cassandra और विन्यास Cassandraसुरक्षा सक्षम करने के लिए .yaml फ़ाइल। इसके अलावा यह यह भी बताता है कि नया उपयोगकर्ता खाता कैसे बनाया जा सकता है, अनुमति का असाइनमेंट, फ़ायरवॉल को कॉन्फ़िगर करना, इत्यादि।