Der er to typer sikkerhed i Apache Cassandra og Datastax-virksomheden.
- Intern godkendelse
- Bemyndigelse
I denne vejledning lærer du,
- Hvad er intern godkendelse og godkendelse
- Konfigurer godkendelse og godkendelse
- Logger ind
- Opret ny bruger
- Bemyndigelse
- Konfiguration af firewall
- Aktivering af JMX-godkendelse
Hvad er intern godkendelse og godkendelse
Intern godkendelse validerer dybest set brugerforbindelse. Brugeren godkendes med login og adgangskode. Alle brugerkonti administreres internt i Cassandra.
Intern autorisation omhandler brugerens tilladelse. Det handler om, hvilke handlinger brugeren kan udføre. For eksempel kan vi give brugerens tilladelse, f.eks. Hvilken bruger der kun har data-læsningstilladelse, hvilken bruger der har dataskrivertilladelse, 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 holde autoritative oplysninger om kontiene, f.eks. Hvad de har adgang til).
Ekstern godkendelse er den godkendelse, der understøttes med Kerberos og LDAP. Apache Cassandra understøtter ikke ekstern godkendelse.
Kun datastax-virksomhed understøtter ekstern godkendelse med Kerberos og LDAP. Mens intern godkendelse understøttes både i Apache Cassandra såvel som Datastax-virksomheden.
Konfigurer godkendelse og godkendelse
I Cassandra er godkendelses- og autorisationsindstillinger som standard deaktiveret. Du er nødt til at konfigurere Cassandra.yaml-filen til aktivering af godkendelse og autorisation.
Åbn filen Cassandra.yaml og kommenteringslinjer, der beskæftiger sig med intern godkendelse og autorisation.
- I filen Cassandra.yaml er godkendelsesværdien som standard 'AllowAllAuthenticator'. Skift denne godkendelsesværdi fra 'AllowAllAuthenticator' til 'com.datastax.bdp.cassandra.auth.PasswordAuthenticator'.
- Tilsvarende vil autorisatorværdien i filen Cassandra.yaml som standard være 'AllowAllAuthorizor'. Skift denne autorisationsværdi fra 'AllowAllAuthorizor' til 'com.datastax.bdp.cassandra.auth.CassandraAuthorizor'.
Logger ind
Nu er godkendelse aktiveret, hvis du prøver at få adgang til et hvilket som helst nøgleområde, returnerer Cassandra en fejl.
Som standard leverer Cassandra superkontoen med brugernavnet 'cassandra' og adgangskoden 'cassandra'. Ved at logge på 'Cassandra'-kontoen kan du gøre hvad du vil.
Lad os se nedenstående skærmbillede for dette, hvor det ikke giver dig mulighed for at logge ind, hvis du ikke bruger standard Cassandra "brugernavn" og "adgangskode".
Nu, i det andet skærmbillede, kan du se efter brug af Cassandra-standard loginoplysninger, du er i stand til at logge ind.
Du kan også oprette en anden bruger med denne konto. Det anbefales at ændre adgangskoden fra standardindstillingen. Her er eksemplet på login Cassandra-bruger og skift standardadgangskode.
alter user cassandra with password 'newpassword';
Opret ny bruger
Nye konti kan oprettes med 'Cassandra'-kontoen.
For at oprette en ny bruger, login, angives adgangskoden 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 ved hjælp af følgende syntaks.
list users;
Brugere kan droppes af følgende syntaks.
drop user laura;
Bemyndigelse
Autorisation er den tildelende tilladelse til brugerne om, hvilken handling en bestemt bruger kan udføre.
Her er den generiske syntaks til 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
- DRÅBE
- MODIFICERE
- VÆLG
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' prøver 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, hvorfor 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å oplysninger om tilladelse.
list all permissions of laura;
Du kan også liste al tilladelse til ressourcen. Her er eksemplet på at få tilladelse fra en tabel.
list all permissions on dev.emp;
Konfiguration af firewall
Hvis firewallen kører, skal følgende porte åbnes for kommunikation mellem noder inklusive nogle Cassandra-porte. Hvis Cassandra-porte ikke åbnes, fungerer Cassandra-noder som enkeltstående databaseserver i stedet for at slutte sig til databaseklyngen.
Cassandra klientporte
Portnummer |
Beskrivelse |
9042 |
Cassandra klientport |
9160 |
Cassandra Client Port Thrift |
Cassandra Internode-porte
Portnummer |
Beskrivelse |
7000 |
Cassandra internode-klyngekommunikation |
7001 |
Cassandra SSL-internode-klyngekommunikation |
7199 |
Cassandra JMX overvågningsport |
Offentlige havne
Portnummer |
Beskrivelse |
22 |
SSH-port |
8888 |
OpsCenter-websted. Browser http-anmodning. |
Cassandra OpsCenter-porte
Portnummer |
Beskrivelse |
61620 |
OpsCenter-overvågningsport. |
61621 |
Opscenter agentport |
Aktivering af JMX-godkendelse
Med standardindstillingerne for Cassandra kan JMX kun tilgås fra localhost. Hvis du vil få adgang til JMX eksternt, skal du ændre indstillingen LOCAL_JMX i Cassandra-env.sh og aktivere godkendelse eller SSL.
Efter at have aktiveret JMX-godkendelse, skal du sørge for, at OpsCenter og nodetool er konfigureret til at bruge godkendelse.
Procedure
Der er følgende trin til aktivering af JMX-godkendelse.
- I filen cassandra-env.sh skal du tilføje eller opdatere 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"
Skift også indstillingen LOCAL_JMX i Cassandra-env.sh
LOCAL_JMX=no
- Kopier jmxremote.password.template fra / jdk_install_location / lib / management / til / etc / cassandra / og omdøb det tiljmxremote.password.
cp />jdk_install_dir/lib/management/jmxremote.password.template /etc/cassandra/jmxremote.password
- Skift ejerskab af jmxremote.password til den bruger, du kører Cassandra med, og skift tilladelse til kun at læse
chown cassandra:cassandra /etc/cassandra/jmxremote.passwordchmod 400 /etc/cassandra/jmxremote.password
- Rediger jmxremote.password, og tilføj brugeren og adgangskoden til JMX-kompatible hjælpeprogrammer:
monitorRole QEDcontrolRole R&Dcassandra cassandrapassword
- Tilføj Cassandra-brugeren med læse- og skrivetilladelse til /jdk_install_location/lib/management/jmxremote.access
monitorRole readonlycassandra readwritecontrolRole readwrite \create javax.management.monitor.,javax.management.timer. \unregister
- Genstart Cassandra
- Kør nodetool med Cassandra-brugeren og adgangskoden.
$ nodetool status -u cassandra -pw cassandra
Resumé:
Denne vejledning forklarer sikkerhed i Cassandra og konfiguration af Cassandra.yaml-filen til aktivering af sikkerhed. Udover dette forklares det også, hvordan ny brugerkonto kan oprettes, tildeling af tilladelse, konfiguration af firewall osv.