Apache Cassandrassa ja Datastax-yrityksessä on kahden tyyppisiä suojauksia.
- Sisäinen todennus
- Valtuutus
Tässä opetusohjelmassa opit,
- Mikä on sisäinen todennus ja valtuutus
- Määritä todennus ja valtuutus
- Kirjautua sisään
- Luo uusi käyttäjä
- Valtuutus
- Palomuurin määrittäminen
- JMX-todennuksen käyttöönotto
Mikä on sisäinen todennus ja valtuutus
Sisäinen todennus on periaatteessa käyttäjän yhteyden vahvistamista. Käyttäjä todennetaan sisäänkirjautumisella ja salasanalla. Kaikkia käyttäjätilejä hallinnoidaan Cassandrassa sisäisesti.
Sisäinen valtuutus käsittelee käyttäjän lupaa. Se käsittelee mitä toimintoja käyttäjä voi suorittaa. Voimme esimerkiksi antaa käyttäjälle luvan, kuten jolla käyttäjällä on vain tietojen lukuoikeus, kenellä käyttäjällä tietojen kirjoitusoikeus ja kenellä käyttäjällä tietojen poistamisoikeus.
Todennusta voidaan kuitenkin hallita myös ulkoisesti Kerberosilla (Kerberosia käytetään tunnistetietojen turvalliseen hallintaan) ja LDAP: llä (LDAP: tä käytetään tilien arvovaltaisten tietojen, kuten mitä heillä on pääsy) hallintaan.
Ulkoinen todennus on todennus, jota Kerberos ja LDAP tukevat. Apache Cassandra ei tue ulkoista todennusta.
Vain datastax-yritys tukee ulkoista todennusta Kerberosilla ja LDAP: llä. Sisäistä todennusta tuetaan sekä Apache Cassandrassa että Datastax-yrityksessä.
Määritä todennus ja valtuutus
Cassandrassa todennus- ja valtuutusasetukset ovat oletusarvoisesti poissa käytöstä. Sinun on määritettävä Cassandra.yaml-tiedosto todentamisen ja todennuksen käyttöönottoa varten.
Avaa Cassandra.yaml-tiedosto ja kommentointirivit, jotka käsittelevät sisäistä todennusta ja todennusta.
- Cassandra.yaml-tiedostossa todennuksen arvo on oletusarvoisesti AllowAllAuthenticator. Vaihda tämä todennusarvoksi AllowAllAuthenticator-arvosta com.datastax.bdp.cassandra.auth.PasswordAuthenticator.
- Vastaavasti Cassandra.yaml-tiedostossa valtuuttajan arvo on oletusarvoisesti AllowAllAuthorizor. Muuta tämän valtuuttajan arvo arvosta AllowAllAuthorizor arvoon com.datastax.bdp.cassandra.auth.CassandraAuthorizor.
Kirjautua sisään
Todennus on nyt käytössä, jos yrität käyttää avainta, Cassandra palauttaa virheen.
Oletusarvoisesti Cassandra tarjoaa supertilille käyttäjätunnuksen 'cassandra' ja salasanan 'cassandra'. Kirjautumalla sisään Cassandra-tilille voit tehdä mitä haluat.
Katsotaanpa alla oleva kuvakaappaus tästä, jossa se ei salli sinun kirjautua sisään, jos et käytä oletusarvoista Cassandran "käyttäjänimeä" ja "salasanaa".
Nyt toisessa kuvakaappauksessa näet, kun olet käyttänyt Cassandran oletus kirjautumistunnuksia, voit kirjautua sisään.
Voit myös luoda toisen käyttäjän tällä tilillä. On suositeltavaa vaihtaa salasana oletusasetukseksi. Tässä on esimerkki kirjautumisesta Cassandra-käyttäjästä ja oletussalasanan vaihtamisesta.
alter user cassandra with password 'newpassword';
Luo uusi käyttäjä
Uusia tilejä voidaan luoda 'Cassandra' -tilillä.
Uuden käyttäjän, kirjautumisen, luomiseksi salasana määritetään yhdessä sen kanssa, onko käyttäjä pääkäyttäjä vai ei. Vain Super-käyttäjä voi luoda uusia käyttäjiä.
create user robin with password 'manager' superuser;create user robin with password 'newhire';
Voit saada luettelon kaikista käyttäjistä seuraavalla syntaksilla.
list users;
Käyttäjät voidaan pudottaa seuraavan syntaksin avulla.
drop user laura;
Valtuutus
Valtuutus on käyttöoikeuden antaminen käyttäjille, mitä toimintoja tietty käyttäjä voi suorittaa.
Tässä on yleinen syntaksin käyttöoikeuksien myöntäminen käyttäjille.
GRANT permission ON resource TO user
Käyttäjälle voidaan myöntää seuraavan tyyppisiä käyttöoikeuksia.
- KAIKKI
- MUUTTAA
- VALTUUTA
- LUODA
- PUDOTA
- MUUTTAA
- VALITSE
Tässä on esimerkkejä käyttöoikeuksien antamisesta käyttäjälle.
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;
Uusi käyttäjä 'laura' luodaan salasanalla 'newhire'.
Tässä on esimerkki, jossa käyttäjä 'laura' yrittää käyttää emp_bonus-taulukkoa. Lauralla on vain lupa käyttää dev.emp: ää eikä lupaa tähän taulukkoon dev.emp_bonus, minkä vuoksi virhe palautettiin.
select* form emp_bonus;
Voit saada luettelon kaikista käyttäjälle määritetyistä käyttöoikeuksista. Tässä on esimerkki lupatietojen saamisesta.
list all permissions of laura;
Voit myös luetella kaikki resurssin oikeudet. Tässä on esimerkki luvan saamisesta taulukosta.
list all permissions on dev.emp;
Palomuurin määrittäminen
Jos palomuuri on käynnissä, seuraavat portit on avattava yhteydenpitoon solmujen välillä, mukaan lukien jotkut Cassandra-portit. Jos Cassandra-portteja ei avata, Cassandra-solmut toimivat erillisenä tietokantapalvelimena sen sijaan, että liittyisivät tietokantaryhmään.
Cassandra-asiakasportit
Porttinumero |
Kuvaus |
9042 |
Cassandran asiakasportti |
9160 |
Cassandra Client Port Thrift |
Cassandra Internode -portit
Porttinumero |
Kuvaus |
7000 |
Cassandra-internode-klusteriviestintä |
7001 |
Cassandra SSL-internodiklusterikommunikaatio |
7199 |
Cassandra JMX -valvontaportti |
Julkiset satamat
Porttinumero |
Kuvaus |
22 |
SSH-portti |
8888 |
OpsCenter-verkkosivusto. Selaimen http-pyyntö. |
Cassandra OpsCenter -portit
Porttinumero |
Kuvaus |
61620 |
OpsCenter-valvontaportti. |
61621 |
Opscenter-agentin portti |
JMX-todennuksen käyttöönotto
Cassandran oletusasetuksilla JMX: ään pääsee vain paikalliselta isännältä. Jos haluat käyttää JMX: tä etänä, muuta LOCAL_JMX-asetusta Cassandra-env.sh-tiedostossa ja ota käyttöön todennus tai SSL.
Kun olet ottanut JMX-todennuksen käyttöön, varmista, että OpsCenter ja nodetool on määritetty käyttämään todennusta.
Menettely
JMX-todennuksen käyttöönotto on seuraava:
- Lisää tai päivitä seuraavat rivit cassandra-env.sh-tiedostoon.
JVM_OPTS="$JVM_OPTS -Dcom.sun.management.jmxremote.authenticate=true"JVM_OPTS="$JVM_OPTS -Dcom.sun.management.jmxremote.password.file=/etc/cassandra/jmxremote.password"
Muuta myös LOCAL_JMX-asetusta Cassandra-env.sh-tiedostossa
LOCAL_JMX=no
- Kopioi jmxremote.password.template hakemistosta / jdk_install_location / lib / management / tiedostoon / etc / cassandra / ja nimeä se uudelleen tojmxremote.password.
cp />jdk_install_dir/lib/management/jmxremote.password.template /etc/cassandra/jmxremote.password
- Muuta jmxremote.passwordin omistajuus käyttäjälle, jolla käytät Cassandraa, ja muuta käyttöoikeus vain luku -tilaan
chown cassandra:cassandra /etc/cassandra/jmxremote.passwordchmod 400 /etc/cassandra/jmxremote.password
- Muokkaa jmxremote.password ja lisää käyttäjä ja salasana JMX-yhteensopiville apuohjelmille:
monitorRole QEDcontrolRole R&Dcassandra cassandrapassword
- Lisää Cassandra-käyttäjä luku- ja kirjoitusoikeuksilla tiedostoon /jdk_install_location/lib/management/jmxremote.access
monitorRole readonlycassandra readwritecontrolRole readwrite \create javax.management.monitor.,javax.management.timer. \unregister
- Käynnistä Cassandra uudelleen
- Suorita nodetool Cassandra -käyttäjällä ja salasanalla.
$ nodetool status -u cassandra -pw cassandra
Yhteenveto:
Tässä opetusohjelmassa kerrotaan Cassandran tietoturvasta ja Cassandra.yaml-tiedoston määrittämisestä turvallisuuden mahdollistamiseksi. Tämän lisäksi se selittää, miten uusi käyttäjätili voidaan luoda, käyttöoikeuksien määritys, palomuurin määritys ja niin edelleen.