Cassandra JMX Authentication & Authorization: Opret bruger
⚡ Smart opsummering
Cassandra Sikkerhed hviler på intern godkendelse, rolletilladelser, firewallregler og JMX-adgangskontrol. Denne side viser, hvordan man aktiverer hvert lag, opretter brugere, giver tilladelser og sikrer fjernadgang til nodetools.
Der er to typer sikkerhed i Apache Cassandra og DataStax Enterprise.
- Intern godkendelse
- Tilladelse
Hvad er intern godkendelse og godkendelse
Intern godkendelse er grundlæggende at validere en brugerforbindelse. Brugeren godkendes med login og adgangskode. Alle brugerkonti administreres i Cassandra internt.
Intern autorisation omhandler en brugers tilladelser. Det omhandler, hvilke handlinger en bruger kan udføre. For eksempel kan vi give tilladelser, såsom hvilken bruger der kun har tilladelse til at læse data, hvilken bruger der har tilladelse til at skrive data, og hvilken bruger der har tilladelse til at slette data.
Godkendelse kan dog også styres eksternt med Kerberos (Kerberos bruges til at administrere legitimationsoplysninger sikkert) og LDAP (LDAP bruges til at opbevare autoritative oplysninger om kontiene, f.eks. hvad de har adgang til).
Ekstern godkendelse er den godkendelse, der understøttes af Kerberos og LDAP. Apache Cassandra understøtter ikke ekstern godkendelse.
Kun DataStax Enterprise understøtter ekstern godkendelse med Kerberos og LDAP, hvorimod intern godkendelse understøttes både i Apache Cassandra samt DataStax Enterprise.
Konfigurer godkendelse og godkendelse
In Cassandra, som standard er godkendelses- og autorisationsindstillinger deaktiveret. Du skal konfigurere cassandra.yaml-filen for at aktivere godkendelse og autorisation.
Åbn cassandra.yaml og fjern kommentaren fra linjerne, der omhandler intern godkendelse og autorisation, som vist nedenfor.
- I cassandra.yaml er godkendelsesværdien som standard 'AllowAllAuthenticator'. Skift denne godkendelsesværdi fra 'AllowAllAuthenticator' til 'com.datastax.bdp.cassandra.auth.PasswordAuthenticator'.
- På samme måde vil autorisationsværdien i cassandra.yaml som standard være 'AllowAllAuthorizer'. Skift denne autorisationsværdi fra 'AllowAllAuthorizer' til 'com.datastax.bdp.cassandra.auth'.CassandraAutoriseret'.
Disse to klassenavne er DataStax Enterprise-værdierne. På open source Apache Cassandra de samme indstillinger tager PasswordAuthenticator og CassandraAuthorizer, og legitimationsoplysningerne findes derefter i system_auth nøglerum, hvis replikationsfaktor skal hæves til over én.
Logger ind
Nu er godkendelse aktiveret, hvis du forsøger at få adgang til et hvilket som helst tasterum, Cassandra vil returnere en fejl.
Som standard Cassandra giver superkontoen brugernavnet 'cassandra' og adgangskoden 'cassandra'. Ved at logge ind på 'cassandra'-kontoen kan du gøre, hvad du vil.
Lad os se nedenstående skærmbillede for dette, hvor det ikke vil tillade dig at logge ind, hvis du ikke bruger standarden Cassandra "brugernavn" og "adgangskode".
Nu, på det andet skærmbillede, kan du se efter brug af Cassandra standard login-legitimationsoplysninger, er du i stand til at logge ind.
Du kan også oprette en anden bruger med denne konto. Det anbefales at ændre standardadgangskoden. Her er et eksempel på at logge ind som Cassandra bruger og ændring af standardadgangskoden.
alter user cassandra with password 'newpassword';
Opret ny bruger
Nye konti kan oprettes med 'cassandra'-kontoen.
For at oprette en ny bruger skal login og adgangskode angives sammen med om brugeren er superbruger eller ej. Kun en superbruger kan oprette nye brugere.
create user robin with password 'manager' superuser; create user robin with password 'newhire';
Du kan få en liste over alle brugere efter følgende syntaks.
list users;
Outputtet viser alle konti sammen med dets superbrugerflag.
Brugere kan droppes af følgende syntaks.
drop user laura;
Tilladelse
Autorisation er tildeling af tilladelser til brugere og beslutningen om, hvilke handlinger en bestemt bruger kan udføre.
Her er den generiske syntaks for tildeling af tilladelse til brugere.
GRANT permission ON resource TO user
Der er følgende typer tilladelser, der kan gives til brugeren.
- ALLE
- ÆNDRE
- BEMYNDIGE
- SKAB
- DROP
- MODIFICERE
- SELECT
Her er eksempler på tildeling af tilladelse til brugeren.
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 bruger 'laura' oprettes med adgangskoden 'newhire'.
Her er eksemplet, hvor brugeren 'laura' forsøger at få adgang til tabellen emp_bonus. Laura har kun tilladelse til at få adgang til dev.emp og ingen tilladelse til tabellen dev.emp_bonus, hvilket er grunden til, at der blev returneret en fejl.
select* form emp_bonus;
Du kan få en liste over alle tilladelser, der er tildelt brugeren. Her er et eksempel på, hvordan man henter tilladelsesoplysninger.
list all permissions of laura;
Du kan også liste alle tilladelser på en ressource. Her er et eksempel på at hente tilladelser fra en tabel.
list all permissions on dev.emp;
Konfiguration af firewall
Hvis firewall'en kører, skal følgende porte åbnes for kommunikation mellem noder, inklusive nogle Cassandra havne. Hvis Cassandra porte vil ikke blive åbnet, Cassandra Noder vil fungere som selvstændige databaseservere i stedet for at blive en del af databaseklyngen.
Cassandra Klientporte
| Portnummer | Beskrivelse |
|---|---|
| 9042 | Cassandra Klientport |
| 9160 | Cassandra Client Port Thrift |
Cassandra Internode porte
| Portnummer | Beskrivelse |
|---|---|
| 7000 | Cassandra internode klynge kommunikation |
| 7001 | Cassandra SSL internode klyngekommunikation |
| 7199 | Cassandra JMX overvågningsport |
Offentlige Havne
| Portnummer | Beskrivelse |
|---|---|
| 22 | SSH port |
| 8888 | OpsCenter hjemmeside. Browser http-anmodning. |
Cassandra OpsCenter-porte
| Portnummer | Beskrivelse |
|---|---|
| 61620 | OpsCenter overvågningsport. |
| 61621 | Opscenter agent port |
Nuværende drivere bruger kun 9042; port 9160 betjener den ældre Thrift-grænseflade og kan forblive lukket på nye klynger.
Aktivering af JMX-godkendelse
Med standardindstillingerne på Cassandra, JMX kan kun tilgås fra localhost. Hvis du vil have fjernadgang til JMX, skal du ændre LOCAL_JMX-indstillingen i cassandra-env.sh og aktivere godkendelse eller SSL.
Når du har aktiveret JMX-godkendelse, skal du sørge for OpsCenter og nodetool er konfigureret til at bruge godkendelse.
Procedure
Der er følgende trin for at aktivere JMX-godkendelse.
- Tilføj eller opdater følgende linjer i filen cassandra-env.sh.
JVM_OPTS="$JVM_OPTS -Dcom.sun.management.jmxremote.authenticate=true" JVM_OPTS="$JVM_OPTS -Dcom.sun.management.jmxremote.password.file=/etc/cassandra/jmxremote.password"
Rediger også LOCAL_JMX-indstillingen i cassandra-env.sh.
LOCAL_JMX=no
- Kopier jmxremote.password.template fra /jdk_install_location/lib/management/ til /etc/cassandra/ og omdøb den til jmxremote.password.
cp /jdk_install_dir/lib/management/jmxremote.password.template /etc/cassandra/jmxremote.password - Skift ejerskabet af jmxremote.password til den bruger, du kører Cassandra med og ændre tilladelse til kun at læse.
chown cassandra:cassandra /etc/cassandra/jmxremote.password chmod 400 /etc/cassandra/jmxremote.password
- Rediger jmxremote.password og tilføj brugeren og adgangskoden til JMX-kompatible hjælpeprogrammer:
monitorRole QED controlRole R&D cassandra cassandrapassword
- Tilsæt Cassandra bruger med læse- og skrivetilladelse til /jdk_install_location/lib/management/jmxremote.access
monitorRole readonly cassandra readwrite controlRole readwrite \ create javax.management.monitor.,javax.management.timer. \ unregister
- Genstart Cassandra.
- Kør nodetool med Cassandra bruger og adgangskode.
$ nodetool status -u cassandra -pw cassandra








