Cassandra Security: Opret bruger & Godkendelse med JMX

Indholdsfortegnelse:

Anonim

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.

  1. ALLE
  2. ÆNDRE
  3. GODKEND
  4. SKAB
  5. DRÅBE
  6. MODIFICERE
  7. 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.

  1. 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
  1. 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
  1. 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
  1. Rediger jmxremote.password, og tilføj brugeren og adgangskoden til JMX-kompatible hjælpeprogrammer:
monitorRole QEDcontrolRole R&Dcassandra cassandrapassword
  1. 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
  1. Genstart Cassandra
  2. 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.