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.

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

Logge inn

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.

Logge inn

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;

Opprett ny bruker

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.

  1. ALLE
  2. ENDRE
  3. GODKJENT
  4. SKAPE
  5. DROP
  6. MODIFISER
  7. 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.

autorisasjon

select* form emp_bonus;

Du kan fรฅ en liste over alle tillatelser som er tildelt brukeren. Her er eksempelet pรฅ รฅ fรฅ tillatelsesinformasjon.

autorisasjon

list all permissions of laura;

Du kan ogsรฅ liste opp alle tillatelsene pรฅ ressursen. Her er eksempelet pรฅ รฅ fรฅ tillatelse fra et bord.

autorisasjon

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.

  1. 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
  1. 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
  1. 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
  1. Rediger jmxremote.password og legg til brukeren og passordet for JMX-kompatible verktรธy:
monitorRole QED 
controlRole R&D 
cassandra cassandrapassword
  1. 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
  1. Restart Cassandra
  2. 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.

Oppsummer dette innlegget med: