Grundlag i Apache Kafka og strømbehandling · Lektion

Sikkerhed: godkendelse og autorisation

Implementér grundlæggende sikkerhedsforanstaltninger i Kafka, herunder klientgodkendelse og autorisation til dataadgang.

Lektion 3 af 410 trin

Sikkerhed: godkendelse og autorisation er en gratis Grundlag i Apache Kafka og strømbehandling-lektion på CoddyKit. Dette er lektion 3 af 4. Du kan læse alle 3 lektioner i dette læringsspor gratis i deres fulde længde — derefter låser CoddyKit PRO alle lektioner op samt praktiske øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. Den er en del af læringsforløbet i Grundlag i Apache Kafka og strømbehandling, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. Grundlag i Apache Kafka og strømbehandling-kurset indeholder 4 lektioner i alt.

Hvorfor sikre Kafka?

I dagens datadrevne verden er det afgørende at beskytte dine data. Kafka er ofte rygraden i kritiske datastrømme og har derfor brug for robuste sikkerhedsforanstaltninger.

Uden sikkerhed kan følsomme oplysninger blive afsløret, dataintegriteten blive kompromitteret, og krav i lovgivningen blive overtrådt. Denne lektion gennemgår de grundlæggende måder at beskytte din Kafka-klynge på.

Godkendelse: Hvem er du?

Godkendelse er processen, hvor identiteten af en klient, f.eks. en producent eller forbruger, der forsøger at oprette forbindelse til en Kafka-broker, bliver bekræftet.

Tænk på det som at vise legitimation i en lufthavn. Kafka skal bekræfte, at du er den, du siger, du er, før nogen interaktion tillades. Det forhindrer uautoriserede brugere i overhovedet at oprette forbindelse.

Autorisation: Hvad må du gøre?

Når en klient er godkendt, og dens identitet er bekræftet, afgør autorisation, hvilke handlinger den har tilladelse til at udføre.

Det svarer til at have et boardingkort, efter at du har vist din legitimation. Kortet bestemmer, hvilken gate du må gå til, og hvilket fly du må gå om bord på. Kafka bruger autorisation til at styre adgangen til bestemte emner, forbrugergrupper og andre ressourcer.

Kafkas sikkerhedsværktøjer

Kafka tilbyder flere mekanismer til at implementere både godkendelse og autorisation:

  • Godkendelse: Håndteres primært af SASL (Simple Authentication and Security Layer) eller SSL/TLS.
  • Autorisation: Håndteres via Access Control Lists (ACL'er), som definerer tilladelser for godkendte brugere på bestemte ressourcer.

Disse lag arbejder sammen om at skabe et sikkert miljø til datastrømme.

Opsætning af SASL/PLAIN-broker

SASL (Simple Authentication and Security Layer) leverer en ramme til godkendelse. En almindelig mekanisme er SASL/PLAIN, som bruger et simpelt brugernavn og en adgangskode.

Hvis du vil aktivere SASL/PLAIN på en Kafka-broker, skal du føje sikkerhedskonfiguration til dens server.properties-fil. Her er et grundlæggende 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";

Klientgodkendelse med SASL/PLAIN

Når brokeren er konfigureret til SASL/PLAIN, skal klienter, altså producenter eller forbrugere, angive gyldige legitimationsoplysninger for at oprette forbindelse. Du angiver disse oplysninger i klientens konfiguration.

Prøv at køre dette simple Java-producenteksempel, som er konfigureret til at bruge 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();
        }
    }
}

Autorisation med Access Control Lists

Efter at en klient er godkendt, bruger Kafka Access Control Lists (ACL'er) til at afgøre, om den har tilladelse til at udføre en bestemt handling på en ressource.

En ACL er en regel, der angiver, hvem, altså en brugeridentitet, der fra hvor, altså en vært, må gøre hvad, altså en handling som READ eller WRITE, på hvilken ressource, altså et emne, en gruppe eller en broker.

Håndtering af ACL'er med CLI

Kafka leverer et kommandolinjeværktøj, kafka-acls.sh, til håndtering af ACL'er. Du kan tildele eller tilbagekalde tilladelser for brugere på forskellige Kafka-ressourcer.

Her er nogle almindelige kommandoer:

  • Tildel skriveadgang til et emne:
    kafka-acls.sh --authorizer-properties authorizer.properties --add --allow-principal User:admin --producer --topic my-secure-topic
  • Tildel læseadgang til en forbrugergruppe:
    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

Sikkerhedstjek

Du har lært om de grundlæggende sikkerhedsbegreber i Kafka. Lad os teste din forståelse!

Hvilken af følgende beskrivelser forklarer bedst formålet med autorisation i Kafka?

Sikre datastrømme: Opsummering

Godt klaret! Du har gennemgået det grundlæggende i Kafkas sikkerhed.

  • Godkendelse bekræfter, hvem en klient er, f.eks. via SASL/PLAIN.
  • Autorisation afgør, hvad en godkendt klient må gøre, f.eks. via ACL'er.
  • Ved at implementere disse foranstaltninger beskytter du dine datastrømme mod uautoriseret adgang og sikrer dataintegriteten.

At sikre din Kafka-klynge er et vigtigt skridt i enhver produktionsinstallation!

Gratis at komme i gang

Lær Grundlag i Apache Kafka og strømbehandling med en AI-underviser — gratis

Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.

Kurser
12
Lektioner
48

Ofte stillede spørgsmål

Er lektionen “Sikkerhed: godkendelse og autorisation” gratis?

Ja — alle 3 lektioner i læringssporet Grundlag i Apache Kafka og strømbehandling, inklusive “Sikkerhed: godkendelse og autorisation”, kan læses gratis i deres fulde længde her på webstedet. Derefter låser CoddyKit PRO alle lektioner op samt interaktive øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. Grundlag i Apache Kafka og strømbehandling-kurset indeholder 4 lektioner i alt.

Hvad lærer jeg i “Sikkerhed: godkendelse og autorisation”?

Implementér grundlæggende sikkerhedsforanstaltninger i Kafka, herunder klientgodkendelse og autorisation til dataadgang. Du øver dig i Grundlag i Apache Kafka og strømbehandling med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.

Skal jeg have erfaring for at begynde på Grundlag i Apache Kafka og strømbehandling?

Der kræves ingen tidligere erfaring. Grundlag i Apache Kafka og strømbehandling på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 3 af 4.

Hvor lang tid tager lektionen “Sikkerhed: godkendelse og autorisation”?

De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.

Kan jeg skrive og køre kode i denne Grundlag i Apache Kafka og strømbehandling-lektion?

Ja. Alle Grundlag i Apache Kafka og strømbehandling-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.

Alle lektioner i dette kursus

  1. Kommandolinjeværktøjer til Kafka
  2. Overvågning af Kafka med JMX og værktøjer
  3. Sikkerhed: godkendelse og autorisation
  4. Sporing og alarmering af consumer lag
← Tilbage til Grundlag i Apache Kafka og strømbehandling