Apache Cassandra un Datastax uzņēmumā ir divi drošības veidi.
- Iekšējā autentifikācija
- Atļauja
Šajā apmācībā jūs uzzināsiet,
- Kas ir iekšējā autentifikācija un autorizācija
- Konfigurējiet autentifikāciju un autorizāciju
- Ielogoties
- Izveidot jaunu lietotāju
- Atļauja
- Ugunsmūra konfigurēšana
- Iespējo JMX autentifikāciju
Kas ir iekšējā autentifikācija un autorizācija
Iekšējā autentifikācija būtībā ir lietotāja savienojuma apstiprināšana. Lietotājs tiek autentificēts, izmantojot pieteikuminformāciju un paroli. Visi Cassandra lietotāju konti tiek pārvaldīti iekšēji.
Iekšējā autorizācija attiecas uz lietotāja atļauju. Tajā apskatīts, kādas darbības lietotājs var veikt. Piemēram, mēs varam piešķirt lietotāja atļauju, piemēram, kuram lietotājam ir tikai datu lasīšanas atļauja, kuram lietotājam ir datu rakstīšanas atļauja un kuram lietotājam ir datu dzēšanas atļauja.
Tomēr autentifikāciju var kontrolēt arī ārēji, izmantojot Kerberos (Kerberos izmanto, lai droši pārvaldītu akreditācijas datus) un LDAP (LDAP izmanto autoritatīvas informācijas glabāšanai par kontiem, piemēram, tam, kam viņiem ir atļauts piekļūt).
Ārējā autentifikācija ir autentifikācija, kuru atbalsta Kerberos un LDAP. Apache Cassandra neatbalsta ārēju autentifikāciju.
Tikai datastax uzņēmums atbalsta ārēju autentifikāciju ar Kerberos un LDAP. Iekšējā autentifikācija tiek atbalstīta gan Apache Cassandra, gan Datastax uzņēmumā.
Konfigurējiet autentifikāciju un autorizāciju
Kasandrā autentifikācijas un autorizācijas iespējas pēc noklusējuma ir atspējotas. Lai iespējotu autentifikāciju un autorizāciju, jums jākonfigurē Cassandra.yaml fails.
Atveriet failu Cassandra.yaml un komentāru rindas, kas attiecas uz iekšējo autentifikāciju un autorizāciju.
- Cassandra.yaml failā pēc noklusējuma autentifikatora vērtība ir “AllowAllAuthenticator”. Mainiet šo autentifikatora vērtību no “AllowAllAuthenticator” uz “com.datastax.bdp.cassandra.auth.PasswordAuthenticator”.
- Līdzīgi failā Cassandra.yaml pēc noklusējuma autorizētāja vērtība būs “AllowAllAuthorizor”. Mainiet šo autorizētāja vērtību no “AllowAllAuthorizor” uz “com.datastax.bdp.cassandra.auth.CassandraAuthorizor”.
Ielogoties
Tagad autentifikācija ir iespējota. Ja mēģināt piekļūt jebkurai atslēgas vietai, Kasandra atgriezīs kļūdu.
Pēc noklusējuma Kasandra nodrošina superkontu ar lietotāja vārdu “kasandra” un paroli “kasandra”. Piesakoties kontā Cassandra, jūs varat darīt visu, ko vēlaties.
Apskatīsim zemāk redzamo ekrānuzņēmumu, kur tas neļaus jums pieteikties, ja neizmantojat noklusējuma Cassandra "lietotājvārdu" un "paroli".
Tagad otrajā ekrānuzņēmumā pēc Cassandra noklusējuma pieteikšanās akreditācijas datu izmantošanas jūs varat pieteikties.
Ar šo kontu varat izveidot arī citu lietotāju. Paroli ieteicams nomainīt no noklusējuma. Šis ir pieteikšanās Cassandra lietotāja un noklusējuma paroles maiņas piemērs.
alter user cassandra with password 'newpassword';
Izveidot jaunu lietotāju
Jauni konti var tikt izveidoti ar 'Cassandra' kontu.
Lai izveidotu jaunu lietotāju, piesakieties, tiek norādīta parole, kā arī tas, vai lietotājs ir superlietotājs. Tikai Super lietotājs var izveidot jaunus lietotājus.
create user robin with password 'manager' superuser;create user robin with password 'newhire';
Visu lietotāju sarakstu varat iegūt, izmantojot šo sintaksi.
list users;
Lietotājus var nomest ar šādu sintaksi.
drop user laura;
Atļauja
Autorizācija ir lietotājiem piešķirt atļauju, kādu darbību var veikt konkrēts lietotājs.
Šeit ir vispārīgā sintakse, lai lietotājiem piešķirtu atļauju.
GRANT permission ON resource TO user
Lietotājam var piešķirt šāda veida atļaujas.
- VISI
- ALTER
- ATĻAUTI
- IZVEIDOT
- PILĒT
- PĀRVEIDOT
- SELECT
Šeit ir piemēri, kā lietotājam piešķirt atļauju.
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;
Tiek izveidots jauns lietotājs 'laura' ar paroli 'newhire'.
Šis ir piemērs, kurā lietotājs “laura” mēģina piekļūt emp_bonus tabulai. Laurai ir tikai atļauja piekļūt dev.emp un nav atļaujas šai tabulai dev.emp_bonus, tāpēc tika atgriezta kļūda.
select* form emp_bonus;
Jūs varat iegūt visu lietotājam piešķirto atļauju sarakstu. Šeit ir piemērs, kā iegūt informāciju par atļaujām.
list all permissions of laura;
Varat arī uzskaitīt visas resursa atļaujas. Šeit ir piemērs, kā iegūt atļauju no tabulas.
list all permissions on dev.emp;
Ugunsmūra konfigurēšana
Ja ugunsmūris darbojas, saziņai starp mezgliem, tostarp dažiem Kasandras portiem, ir jāatver šādi porti. Ja Kasandras porti netiks atvērti, Kasandras mezgli darbosies kā atsevišķs datu bāzes serveris, nevis pievienosies datu bāzes kopai.
Kasandras klientu ostas
Porta numurs |
Apraksts |
9042 |
Kasandras klientu osta |
9160 |
Kasandras klienta ostas taupība |
Kasandras Internoda porti
Porta numurs |
Apraksts |
7000 |
Kasandras starpkodu kopu saziņa |
7001 |
Kasandras SSL starpkodu kopu saziņa |
7199 |
Kasandras JMX uzraudzības ports |
Publiskās ostas
Ostas numurs |
Apraksts |
22 |
SSH ports |
8888 |
OpsCenter vietne. Pārlūka http pieprasījums. |
Kasandras OpsCenter porti
Porta numurs |
Apraksts |
61620 |
OpsCenter uzraudzības ports. |
61621 |
Opscentera aģenta osta |
Iespējo JMX autentifikāciju
Ar Cassandra noklusējuma iestatījumiem JMX var piekļūt tikai no vietējā hosta. Ja vēlaties piekļūt JMX attālināti, Cassandra-env.sh mainiet iestatījumu LOCAL_JMX un iespējojiet autentifikāciju vai SSL.
Pēc JMX autentifikācijas iespējošanas pārliecinieties, ka OpsCenter un nodetool ir konfigurēti autentifikācijas lietošanai.
Procedūra
JMX autentifikācijas iespējošanai ir šādas darbības.
- Failā cassandra-env.sh pievienojiet vai atjauniniet šādas rindas.
JVM_OPTS="$JVM_OPTS -Dcom.sun.management.jmxremote.authenticate=true"JVM_OPTS="$JVM_OPTS -Dcom.sun.management.jmxremote.password.file=/etc/cassandra/jmxremote.password"
Mainiet arī iestatījumu LOCAL_JMX vietnē Cassandra-env.sh
LOCAL_JMX=no
- Kopējiet jmxremote.password.template no / jdk_install_location / lib / management / uz / etc / cassandra / un pārdēvējiet to tojmxremote.password.
cp />jdk_install_dir/lib/management/jmxremote.password.template /etc/cassandra/jmxremote.password
- Mainiet jmxremote.password īpašumtiesības lietotājam, ar kuru darbināt Cassandra, un mainiet atļauju tikai lasīšanai
chown cassandra:cassandra /etc/cassandra/jmxremote.passwordchmod 400 /etc/cassandra/jmxremote.password
- Rediģējiet jmxremote.password un pievienojiet JMX saderīgu utilītu lietotāju un paroli:
monitorRole QEDcontrolRole R&Dcassandra cassandrapassword
- Pievienojiet Cassandra lietotāju ar lasīšanas un rakstīšanas atļauju vietnei /jdk_install_location/lib/management/jmxremote.access
monitorRole readonlycassandra readwritecontrolRole readwrite \create javax.management.monitor.,javax.management.timer. \unregister
- Restartējiet Kasandru
- Palaidiet mezglu ar Cassandra lietotāju un paroli.
$ nodetool status -u cassandra -pw cassandra
Kopsavilkums:
Šajā apmācībā ir paskaidrots par Cassandra drošību un faila Cassandra.yaml konfigurēšanu drošības iespējošanai. Bez tam tas arī izskaidro, kā var izveidot jaunu lietotāja kontu, piešķirt atļauju, konfigurēt ugunsmūri utt.