Cassandra JMX-autentisering og autorisasjon: Opprett bruker
Det er to typer sikkerhet i Apache Cassandra og Datastax enterprise.
- Intern autentisering
- autorisasjon
Hva er intern autentisering og autorisasjon
Intern autentisering er i utgangspunktet å validere brukertilkobling. Brukeren er autentisert med innlogging og passord. Alle brukerkontoene administreres i Cassandra internt.
Intern autorisasjon handler om brukers tillatelse. Den omhandler hvilke handlinger brukeren kan utføre. For eksempel kan vi gi brukertillatelse som hvilken bruker som kun har tillatelse til å lese data, hvilken bruker som har tillatelse til å skrive data og hvilken bruker som har tillatelse til å slette data.
Autentisering kan imidlertid også styres eksternt med Kerberos (Kerberos brukes til å administrere legitimasjon sikkert) og LDAP (LDAP brukes til å holde autoritativ informasjon om kontoene, for eksempel hva de har tilgang til).
Ekstern autentisering er autentiseringen som støttes med Kerberos og LDAP. Apache Cassandra støtter ikke ekstern autentisering.
Kun datastax enterprise støtter ekstern autentisering med Kerberos og LDAP. Mens intern autentisering støttes både i Apache Cassandra samt Datastax enterprise.
Konfigurer autentisering og autorisasjon
In Cassandra, som standard er autentiserings- og autorisasjonsalternativer deaktivert. Du må konfigurere Cassandra.yaml-fil for å aktivere autentisering og autorisasjon.
Open Cassandra.yaml-fil og linjer for fjerning av kommentarer som omhandler intern autentisering og autorisasjon.
- In Cassandrayaml-fil, som standard er autentiseringsverdien 'AllowAllAuthenticator'. Endre denne autentiseringsverdien fra 'AllowAllAuthenticator' til 'com.datastax.bdp.cassandra.auth.PasswordAuthenticator'.
- Tilsvarende, i Cassandra.yaml-fil, som standard vil autorisasjonsverdien være 'AllowAllAuthorizor'. Endre denne autorisasjonsverdien fra 'AllowAllAuthorizor' til 'com.datastax.bdp.cassandra.auth.CassandraAutorisert'.
Logge inn
Nå er autentisering aktivert, hvis du prøver å få tilgang til et hvilket som helst tasteområde, Cassandra vil returnere en feil.
Som standard Cassandra gir superkontoen brukernavnet 'cassandra' og passordet 'cassandra'. Ved å logge inn på 'Cassandra' konto, kan du gjøre hva du vil.
La oss se skjermbildet nedenfor for dette, der det ikke vil tillate deg å logge på hvis du ikke bruker standarden Cassandra "brukernavn" og "passord".
Nå, i det andre skjermbildet, kan du se etter bruk Cassandra standard påloggingsinformasjon, kan du logge på.
Du kan også opprette en annen bruker med denne kontoen. Det anbefales å endre passordet fra standard. Her er eksempelet på innlogging Cassandra bruker og endre standard passord.
alter user cassandra with password 'newpassword';
Opprett ny bruker
Nye kontoer kan opprettes med 'Cassandra' regnskap.
For å opprette en ny bruker, logg inn, passordet spesifiseres sammen med om brukeren er superbruker eller ikke. Bare superbruker kan opprette nye brukere.
create user robin with password 'manager' superuser; create user robin with password 'newhire';
Du kan få en liste over alle brukere etter følgende syntaks.
list users;
Brukere kan droppes av følgende syntaks.
drop user laura;
autorisasjon
Autorisasjon er å tildele tillatelse til brukere om hvilken handling en bestemt bruker kan utføre.
Her er den generelle syntaksen for å tildele tillatelse til brukere.
GRANT permission ON resource TO user
Det er følgende typer tillatelser som kan gis til brukeren.
- ALLE
- ENDRE
- GODKJENT
- SKAPE
- DROP
- MODIFISER
- VELG
Her er eksempler på tildeling av tillatelse til brukeren.
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;
En ny bruker 'laura' er opprettet med passord 'newhire'.
Her er eksempelet der brukeren 'laura' prøver å få tilgang til emp_bonus-tabellen. Laura har bare tillatelse til å få tilgang til dev.emp og ingen tillatelse til denne tabellen dev.emp_bonus, det er grunnen til at en feil ble returnert.
select* form emp_bonus;
Du kan få en liste over alle tillatelser som er tildelt brukeren. Her er eksempelet på å få tillatelsesinformasjon.
list all permissions of laura;
Du kan også liste opp alle tillatelsene på ressursen. Her er eksempelet på å få tillatelse fra et bord.
list all permissions on dev.emp;
Konfigurering av brannmur
Hvis brannmuren kjører, må følgende porter åpnes for kommunikasjon mellom noder, inkludert noen Cassandra havner. Hvis Cassandra porter vil ikke bli åpnet, Cassandra noder vil fungere som frittstående databaseserver i stedet for å bli med i databaseklyngen.
Cassandra Klientporter
Portnummer | Tekniske beskrivelser |
---|---|
9042 | Cassandra Klientport |
9160 | Cassandra Client Port Thrift |
Cassandra Internodeporter
Portnummer | Tekniske beskrivelser |
---|---|
7000 | Cassandra internode klynge kommunikasjon |
7001 | Cassandra SSL internode klyngekommunikasjon |
7199 | Cassandra JMX overvåkingsport |
Offentlige havner
Portnummer | Tekniske beskrivelser |
---|---|
22 | SSH-port |
8888 | OpsCenter-nettstedet. Nettleser http-forespørsel. |
Cassandra OpsCenter-porter
Portnummer | Tekniske beskrivelser |
---|---|
61620 | OpsCenter overvåkingsport. |
61621 | Opscenter agent port |
Aktiverer JMX-autentisering
Med standardinnstillingene for Cassandra, JMX kan bare nås fra den lokale verten. Hvis du vil ha ekstern tilgang til JMX, endre LOCAL_JMX-innstillingen i Cassandra-env.sh og aktiver autentisering eller SSL.
Etter å ha aktivert JMX-autentisering, sørg for OpsCenter og nodetool er konfigurert til å bruke autentisering.
Prosedyre
Det er følgende trinn for å aktivere JMX-autentisering.
- I cassandra-env.sh-filen legger du til eller oppdaterer følgende linjer.
JVM_OPTS="$JVM_OPTS -Dcom.sun.management.jmxremote.authenticate=true" JVM_OPTS="$JVM_OPTS -Dcom.sun.management.jmxremote.password.file=/etc/cassandra/jmxremote.password"
Endre også LOCAL_JMX-innstillingen Cassandra-env.sh
LOCAL_JMX=no
- Kopier jmxremote.password.template fra /jdk_install_location/lib/management/ til /etc/cassandra/ og gi den nytt navn til jmxremote.password.
cp />jdk_install_dir/lib/management/jmxremote.password.template /etc/cassandra/jmxremote.password
- Endre eierskapet til jmxremote.password til brukeren du kjører Cassandra med og endre tillatelse til kun å lese
chown cassandra:cassandra /etc/cassandra/jmxremote.password chmod 400 /etc/cassandra/jmxremote.password
- Rediger jmxremote.password og legg til brukeren og passordet for JMX-kompatible verktøy:
monitorRole QED controlRole R&D cassandra cassandrapassword
- Legg til Cassandra bruker med lese- og skrivetillatelse til /jdk_install_location/lib/management/jmxremote.access
monitorRole readonly cassandra readwrite controlRole readwrite \ create javax.management.monitor.,javax.management.timer. \ unregister
- Restart Cassandra
- Kjør nodetool med Cassandra bruker og passord.
$ nodetool status -u cassandra -pw cassandra
Sammendrag
Denne opplæringen forklarer om sikkerhet i Cassandra og konfigurere Cassandra.yaml-fil for å aktivere sikkerhet. I tillegg til dette forklarer den også hvordan ny brukerkonto kan opprettes, tildeling av tillatelser, konfigurering av brannmuren, og så videre.