Cassandra JMX Authentication & Authorization: Opret bruger
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 brugerforbindelse. Brugeren er autentificeret med login og adgangskode. Alle brugerkonti administreres i Cassandra internt.
Intern autorisation omhandler brugerens tilladelse. Den omhandler hvilke handlinger brugeren kan udføre. For eksempel kan vi give brugerens tilladelse, 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.
Autentificering kan dog også styres eksternt med Kerberos (Kerberos bruges til at administrere legitimationsoplysninger sikkert) og LDAP (LDAP bruges til at opbevare autoritative oplysninger om konti, såsom hvad de har tilladelse til at få 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. Mens 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-fil til at aktivere godkendelse og godkendelse.
Åbne Cassandra.yaml-fil og uncomment-linjer, der omhandler intern godkendelse og godkendelse.
- In Cassandra.yaml-fil, som standard er autentificeringsværdien 'AllowAllAuthenticator'. Skift denne autentificeringsværdi fra 'AllowAllAuthenticator' til 'com.datastax.bdp.cassandra.auth.PasswordAuthenticator'.
- Tilsvarende i Cassandra.yaml-fil, vil autorisatorværdien som standard være 'AllowAllAuthorizor'. Skift denne godkendelsesværdi fra 'AllowAllAuthorizor' til 'com.datastax.bdp.cassandra.auth.CassandraAutoriseret'.
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' konto, 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, i det andet skærmbillede, kan du se efter brug 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 adgangskoden fra standarden. Her er et eksempel på login Cassandra bruger og ændre standardadgangskoden.
alter user cassandra with password 'newpassword';
Opret ny bruger
Nye konti kan oprettes med 'Cassandra' konto.
For at oprette en ny bruger, login, er adgangskoden angivet sammen med om brugeren er superbruger eller ej. Kun 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;
Brugere kan droppes af følgende syntaks.
drop user laura;
Tilladelse
Autorisation er tildeling af tilladelse til brugere, hvilken handling 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
- GODKEND
- 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 bruger 'laura' forsøger at få adgang til emp_bonus-tabellen. Laura har kun tilladelse til at få adgang til dev.emp og ingen tilladelse til denne tabel dev.emp_bonus, det er derfor en fejl blev returneret.
select* form emp_bonus;
Du kan få en liste over alle tilladelser, der er tildelt brugeren. Her er eksemplet på at få tilladelsesoplysninger.
list all permissions of laura;
Du kan også liste alle tilladelser på ressourcen. Her er eksemplet på at få tilladelse fra et bord.
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ændig databaseserver i stedet for at slutte sig til databaseklyngen.
Cassandra Klientporte
Portnummer | Description |
---|---|
9042 | Cassandra Klientport |
9160 | Cassandra Client Port Thrift |
Cassandra Internode porte
Portnummer | Description |
---|---|
7000 | Cassandra internode klynge kommunikation |
7001 | Cassandra SSL internode klyngekommunikation |
7199 | Cassandra JMX overvågningsport |
Offentlige Havne
Portnummer | Description |
---|---|
22 | SSH port |
8888 | OpsCenter hjemmeside. Browser http-anmodning. |
Cassandra OpsCenter-porte
Portnummer | Description |
---|---|
61620 | OpsCenter overvågningsport. |
61621 | Opscenter agent port |
Aktivering af JMX-godkendelse
Med standardindstillingerne på Cassandra, JMX kan kun tilgås fra den lokale vært. Hvis du vil have fjernadgang til JMX, skal du ændre LOCAL_JMX-indstillingen Cassandra-env.sh og aktiver 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"
Skift også LOCAL_JMX-indstillingen til 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
Resumé
Denne tutorial forklarer om sikkerhed i Cassandra og konfigurering Cassandra.yaml-fil for at aktivere sikkerhed. Udover dette forklarer den også, hvordan ny brugerkonto kan oprettes, tildeling af tilladelser, konfiguration af firewallen og så videre.