Grunnleggende Apache Kafka og strømming · leksjon

Sikkerhet: autentisering og autorisasjon

Implementer grunnleggende sikkerhetstiltak i Kafka, blant annet klientautentisering og autorisasjon for datatilgang.

Leksjon 3 av 410 trinn

Sikkerhet: autentisering og autorisasjon er en gratis leksjon i Grunnleggende Apache Kafka og strømming på CoddyKit. Dette er leksjon 3 av 4. Du kan lese valgfritt 3 leksjoner fra denne læringsstien gratis i sin helhet – deretter låser CoddyKit PRO opp alle leksjoner, samt praktisk øving med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i Grunnleggende Apache Kafka og strømming, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i Grunnleggende Apache Kafka og strømming inneholder totalt 4 leksjoner.

Hvorfor sikre Kafka?

I dagens datadrevne verden er det svært viktig å beskytte dataene dine. Kafka, som ofte utgjør ryggraden i kritiske datastrømmer, trenger robuste sikkerhetstiltak.

Uten sikkerhet kan sensitiv informasjon bli eksponert, dataintegriteten kan bli svekket, og krav i lover og forskrifter kan bli brutt. Denne leksjonen dekker de grunnleggende måtene å beskytte Kafka-klyngen på.

Autentisering: Hvem er du?

Autentisering er prosessen med å bekrefte identiteten til en klient, for eksempel en produsent eller forbruker, som prøver å koble seg til en Kafka-megler.

Tenk på det som å vise legitimasjon på en flyplass. Kafka må bekrefte at du er den du utgir deg for å være, før du får utføre handlinger. Dette hindrer uautoriserte brukere i å koble seg til i det hele tatt.

Autorisasjon: Hva kan du gjøre?

Når en klient er autentisert, altså når identiteten er bekreftet, avgjør autorisasjon hvilke handlinger klienten har tillatelse til å utføre.

Dette kan sammenlignes med å få et boardingkort etter å ha vist legitimasjon. Kortet bestemmer hvilken gate du får tilgang til, og hvilket fly du kan gå om bord på. Kafka bruker autorisasjon til å kontrollere tilgangen til bestemte topics, forbrukergrupper og andre ressurser.

Kafkas sikkerhetsverktøy

Kafka tilbyr flere mekanismer for å implementere både autentisering og autorisasjon:

  • Autentisering: Håndteres hovedsakelig av SASL (Simple Authentication and Security Layer) eller SSL/TLS.
  • Autorisasjon: Håndteres gjennom Access Control Lists (ACL-er), som definerer tillatelser for autentiserte brukere på bestemte ressurser.

Disse lagene fungerer sammen for å skape et sikkert miljø for datastrømming.

Oppsett av SASL/PLAIN-megler

SASL (Simple Authentication and Security Layer) tilbyr et rammeverk for autentisering. En vanlig mekanisme er SASL/PLAIN, som bruker et enkelt brukernavn og passord.

For å aktivere SASL/PLAIN på en Kafka-megler må du legge til sikkerhetskonfigurasjon i filen server.properties. Her er et grunnleggende eksempel:

# server.properties
listeners=PLAINTEXT://:9092,SASL_PLAINTEXT://:9093
sasl.enabled.mechanisms=PLAIN
sasl.mechanism.inter.broker.protocol=PLAIN
authorizer.class.name=kafka.security.auth.SimpleAclAuthorizer
supers.users=User:admin

listener.name.sasl_plaintext.plain.sasl.jaas.config=
  org.apache.kafka.common.security.plain.PlainLoginModule required
  username="admin" password="admin-secret";

Klientautentisering med SASL/PLAIN

Når megleren er konfigurert for SASL/PLAIN, må klienter, altså produsenter eller forbrukere, oppgi gyldig påloggingsinformasjon for å koble seg til. Du angir disse opplysningene i klientens konfigurasjon.

Prøv å kjøre dette enkle Java-eksempelet på en produsent, konfigurert til å bruke SASL/PLAIN:

import org.apache.kafka.clients.producer.*;
import java.util.Properties;

public class SecureProducer {
    public static void main(String[] args) {
        Properties props = new Properties();
        props.put("bootstrap.servers", "localhost:9093");
        props.put("key.serializer", "org.apache.kafka.common.serialization.StringSerializer");
        props.put("value.serializer", "org.apache.kafka.common.serialization.StringSerializer");

        // SASL_PLAINTEXT configuration
        props.put("security.protocol", "SASL_PLAINTEXT");
        props.put("sasl.mechanism", "PLAIN");
        props.put("sasl.jaas.config", 
            "org.apache.kafka.common.security.plain.PlainLoginModule required " +
            "username=\"admin\" password=\"admin-secret\";");

        Producer<String, String> producer = new KafkaProducer<>(props);
        try {
            for (int i = 0; i < 5; i++) {
                String message = "Hello Secure Kafka " + i;
                producer.send(new ProducerRecord<>("my-secure-topic", "key" + i, message));
                System.out.println("Sent: " + message);
            }
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            producer.close();
        }
    }
}

Autorisasjon med Access Control Lists

Etter at en klient er autentisert, bruker Kafka Access Control Lists (ACL-er) til å avgjøre om klienten har tillatelse til å utføre en bestemt handling på en ressurs.

En ACL er en regel som angir hvem (en brukerprincipal), fra hvor (vert), som kan gjøre hva (en operasjon som READ eller WRITE), på hvilken ressurs (topic, gruppe eller megler).

Administrere ACL-er med CLI

Kafka tilbyr et kommandolinjeverktøy, kafka-acls.sh, for å administrere ACL-er. Du kan gi eller trekke tilbake tillatelser for brukere på ulike Kafka-ressurser.

Her er noen vanlige kommandoer:

  • Gi skrivetilgang til et topic:
    kafka-acls.sh --authorizer-properties authorizer.properties --add --allow-principal User:admin --producer --topic my-secure-topic
  • Gi lesetilgang til en forbrukergruppe:
    kafka-acls.sh --authorizer-properties authorizer.properties --add --allow-principal User:consumerUser --consumer --group my-group
  • Vis alle ACL-er:
    kafka-acls.sh --authorizer-properties authorizer.properties --list --topic my-secure-topic

Sikkerhetssjekk

Du har lært om de grunnleggende sikkerhetskonseptene i Kafka. La oss teste forståelsen din!

Hvilket av alternativene nedenfor beskriver best formålet med autorisasjon i Kafka?

Sikre datastrømmer: Oppsummering

Flott jobbet! Du har gått gjennom det viktigste innen Kafka-sikkerhet.

  • Autentisering bekrefter hvem en klient er, for eksempel via SASL/PLAIN.
  • Autorisasjon avgjør hva en autentisert klient kan gjøre, for eksempel via ACL-er.
  • Ved å implementere disse tiltakene beskytter du datastrømmene mot uautorisert tilgang og sikrer dataintegriteten.

Å sikre Kafka-klyngen er et kritisk trinn i enhver produksjonsdistribusjon!

Gratis å komme i gang

Lær deg Grunnleggende Apache Kafka og strømming med en AI-veileder – gratis

Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.

Kurs
12
Leksjoner
48

Ofte stilte spørsmål

Er leksjonen «Sikkerhet: autentisering og autorisasjon» gratis?

Ja – du kan lese valgfritt 3 av leksjonene i læringsstien Grunnleggende Apache Kafka og strømming, inkludert «Sikkerhet: autentisering og autorisasjon», gratis i sin helhet her på nettet. Deretter låser CoddyKit PRO opp alle leksjoner, samt interaktiv øving med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Kurset i Grunnleggende Apache Kafka og strømming inneholder totalt 4 leksjoner.

Hva lærer jeg i «Sikkerhet: autentisering og autorisasjon»?

Implementer grunnleggende sikkerhetstiltak i Kafka, blant annet klientautentisering og autorisasjon for datatilgang. Du øver på Grunnleggende Apache Kafka og strømming med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.

Trenger jeg erfaring for å begynne med Grunnleggende Apache Kafka og strømming?

Ingen tidligere erfaring er nødvendig. Grunnleggende Apache Kafka og strømming på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 3 av 4.

Hvor lang tid tar leksjonen «Sikkerhet: autentisering og autorisasjon»?

De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.

Kan jeg skrive og kjøre kode i denne Grunnleggende Apache Kafka og strømming-leksjonen?

Ja. Alle Grunnleggende Apache Kafka og strømming-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.

Alle leksjonene i dette kurset

  1. Kommandolinjeverktøy for Kafka
  2. Overvåke Kafka med JMX og verktøy
  3. Sikkerhet: autentisering og autorisasjon
  4. Sporing og varsling av consumer lag
← Tilbake til Grunnleggende Apache Kafka og strømming