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.







