Det er to typer sikkerhet i Apache Cassandra og Datastax enterprise.
- Intern autentisering
- Autorisasjon
I denne veiledningen vil du lære,
- Hva er intern autentisering og autorisering
- Konfigurer godkjenning og autorisasjon
- Logger inn
- Opprett ny bruker
- Autorisasjon
- Konfigurerer brannmur
- Aktiverer JMX-godkjenning
Hva er intern autentisering og autorisering
Intern autentisering validerer i utgangspunktet brukerforbindelse. Brukeren er autentisert med pålogging og passord. Alle brukerkontoer administreres internt i Cassandra.
Intern autorisasjon omhandler brukertillatelse. Den tar for seg hvilke handlinger brukeren kan utføre. For eksempel kan vi gi brukerens tillatelse, for eksempel hvilken bruker som bare har data-lesetillatelse, hvilken bruker som har data-skrivetillatelse og hvilken bruker som har data-slettingstillatelse.
Autentisering kan imidlertid også kontrolleres eksternt med Kerberos (Kerberos brukes til å administrere legitimasjon på en sikker måte) og LDAP (LDAP brukes til å holde autoritativ informasjon om kontoene, for eksempel hva de har tilgang til).
Ekstern autentisering er autentisering som støttes av Kerberos og LDAP. Apache Cassandra støtter ikke ekstern autentisering.
Bare datastax-virksomheten støtter ekstern autentisering med Kerberos og LDAP. Mens intern autentisering støttes både i Apache Cassandra så vel som Datastax enterprise.
Konfigurer godkjenning og autorisasjon
I Cassandra er autentiserings- og autorisasjonsalternativer som standard deaktivert. Du må konfigurere Cassandra.yaml-filen for å aktivere autentisering og autorisasjon.
Åpne filen Cassandra.yaml og kommenteringslinjer som omhandler intern autentisering og autorisasjon.
- I Cassandra.yaml-filen er godkjenningsverdien som standard 'AllowAllAuthenticator'. Endre denne autentiseringsverdien fra 'AllowAllAuthenticator' til 'com.datastax.bdp.cassandra.auth.PasswordAuthenticator'.
- På samme måte, i Cassandra.yaml-filen, vil autoriseringsverdien som standard være 'AllowAllAuthorizor'. Endre denne autorisasjonsverdien fra 'AllowAllAuthorizor' til 'com.datastax.bdp.cassandra.auth.CassandraAuthorizor'.
Logger inn
Nå er autentisering aktivert. Hvis du prøver å få tilgang til et hvilket som helst tastatur, returnerer Cassandra en feil.
Som standard gir Cassandra superkontoen brukernavnet 'cassandra' og passordet 'cassandra'. Ved å logge på 'Cassandra' -kontoen kan du gjøre hva du vil.
La oss se skjermbildet nedenfor for dette, der det ikke tillater deg å logge inn hvis du ikke bruker standard Cassandra "brukernavn" og "passord".
Nå, i det andre skjermbildet, kan du se etter at du har brukt Cassandra standard påloggingsinformasjon, kan du logge inn.
Du kan også opprette en annen bruker med denne kontoen. Det anbefales å endre passordet fra standard. Her er eksemplet på pålogging Cassandra bruker og endre standard passord.
alter user cassandra with password 'newpassword';
Opprett ny bruker
Nye kontoer kan opprettes med 'Cassandra' -kontoen.
For å opprette en ny bruker, logg inn, blir passordet spesifisert 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 ved følgende syntaks.
list users;
Brukere kan slippes 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 generiske syntaksen for tildeling av tillatelse til brukere.
GRANT permission ON resource TO user
Det er følgende typer tillatelser som kan gis til brukeren.
- ALLE
- ENDRE
- GODKJENN
- SKAPE
- MISTE
- MODIFISER
- Å VELGE
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' opprettes med passordet 'newhire'.
Her er eksemplet 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 derfor en feil ble returnert.
select* form emp_bonus;
Du kan få en liste over alle tillatelser som er tildelt brukeren. Her er eksemplet på å få tillatelsesinformasjon.
list all permissions of laura;
Du kan også liste opp alle tillatelsene på ressursen. Her er eksemplet på å få tillatelse fra en tabell.
list all permissions on dev.emp;
Konfigurerer brannmur
Hvis brannmuren kjører, må følgende porter åpnes for kommunikasjon mellom noder, inkludert noen Cassandra-porter. Hvis Cassandra-porter ikke åpnes, vil Cassandra-noder fungere som frittstående databaseserver i stedet for å bli med i databaseklyngen.
Cassandra klientporter
Portnummer |
Beskrivelse |
9042 |
Cassandra klientport |
9160 |
Cassandra Client Port Thrift |
Cassandra Internode-porter
Portnummer |
Beskrivelse |
7000 |
Cassandra internode klyngekommunikasjon |
7001 |
Cassandra SSL internode klyngekommunikasjon |
7199 |
Cassandra JMX overvåkingsport |
Offentlige havner
Portnummer |
Beskrivelse |
22 |
SSH-port |
8888 |
OpsCenter-nettstedet. Nettleser http forespørsel. |
Cassandra OpsCenter-porter
Portnummer |
Beskrivelse |
61620 |
OpsCenter overvåkingsport. |
61621 |
Port for Opscenter-agent |
Aktiverer JMX-godkjenning
Med standardinnstillingene til Cassandra, kan JMX bare nås fra localhost. Hvis du vil få tilgang til JMX eksternt, endrer du LOCAL_JMX-innstillingen i Cassandra-env.sh og aktiverer autentisering eller SSL.
Etter at du har aktivert JMX-autentisering, må du sørge for at OpsCenter og nodetool er konfigurert til å bruke autentisering.
Fremgangsmåte
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å innstillingen LOCAL_JMX i Cassandra-env.sh
LOCAL_JMX=no
- Kopier jmxremote.password.template fra / jdk_install_location / lib / management / til / etc / cassandra / og gi det navnet tojmxremote.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 å lese bare
chown cassandra:cassandra /etc/cassandra/jmxremote.passwordchmod 400 /etc/cassandra/jmxremote.password
- Rediger jmxremote.password og legg til bruker og passord for JMX-kompatible verktøy:
monitorRole QEDcontrolRole R&Dcassandra cassandrapassword
- Legg til Cassandra-brukeren med lese- og skrivetillatelse til /jdk_install_location/lib/management/jmxremote.access
monitorRole readonlycassandra readwritecontrolRole readwrite \create javax.management.monitor.,javax.management.timer. \unregister
- Start Cassandra på nytt
- Kjør nodetool med Cassandra-brukeren og passordet.
$ nodetool status -u cassandra -pw cassandra
Sammendrag:
Denne opplæringen forklarer sikkerheten i Cassandra og konfigurerer Cassandra.yaml-filen for å muliggjøre sikkerhet. I tillegg til dette forklarer det også hvordan ny brukerkonto kan opprettes, tildeling av tillatelse, konfigurering av brannmur, og så videre.