Beveiliging: authenticatie en autorisatie
Implementeer fundamentele beveiligingsmaatregelen in Kafka, waaronder clientauthenticatie en autorisatie voor gegevenstoegang.
Beveiliging: authenticatie en autorisatie is een gratis De basis van Apache Kafka en streamverwerking-les op CoddyKit. Dit is les 3 van 4. Je kunt 3 lessen uit dit leerpad gratis volledig lezen — daarna ontgrendelt CoddyKit PRO alle lessen, plus praktische oefeningen met een ingebouwde code-editor en een AI-tutor die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject De basis van Apache Kafka en streamverwerking. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus De basis van Apache Kafka en streamverwerking bevat in totaal 4 lessen.
Waarom Kafka beveiligen?
In de huidige datagedreven wereld is het van het grootste belang om je gegevens te beveiligen. Kafka vormt vaak de ruggengraat van kritieke gegevensstromen en heeft daarom sterke beveiligingsmaatregelen nodig.
Zonder beveiliging kan gevoelige informatie worden blootgelegd, kan de integriteit van gegevens worden aangetast en kunnen nalevingsregels worden geschonden. In deze les behandel je de belangrijkste manieren om je Kafka-cluster te beschermen.
Authenticatie: wie ben je?
Authenticatie is het proces waarbij de identiteit wordt gecontroleerd van een client, zoals een producent of consument, die verbinding probeert te maken met een Kafka-broker.
Je kunt het vergelijken met het tonen van je identiteitsbewijs op een luchthaven. Kafka moet bevestigen dat je bent wie je zegt dat je bent voordat interactie wordt toegestaan. Zo voorkom je dat onbevoegde gebruikers überhaupt verbinding maken.
Autorisatie: wat mag je doen?
Nadat een client is geauthenticeerd (de identiteit is bevestigd), bepaalt autorisatie welke acties deze mag uitvoeren.
Dit is vergelijkbaar met het krijgen van een instapkaart nadat je je identiteitsbewijs hebt getoond. De kaart bepaalt tot welke gate je toegang hebt en op welke vlucht je mag stappen. Kafka gebruikt autorisatie om de toegang tot specifieke topics, consumentengroepen en andere resources te beheren.
Kafka's beveiligingsgereedschappen
Kafka biedt verschillende mechanismen voor zowel authenticatie als autorisatie:
- Authenticatie: wordt voornamelijk geregeld door SASL (Simple Authentication and Security Layer) of SSL/TLS.
- Autorisatie: wordt beheerd via Access Control Lists (ACL's), die de rechten van geauthenticeerde gebruikers voor specifieke resources definiëren.
Deze lagen werken samen om een veilige omgeving voor gegevensstromen te creëren.
Broker instellen met SASL/PLAIN
SASL (Simple Authentication and Security Layer) biedt een raamwerk voor authenticatie. Een veelgebruikt mechanisme is SASL/PLAIN, dat een eenvoudige gebruikersnaam en een eenvoudig wachtwoord gebruikt.
Om SASL/PLAIN in te schakelen op een Kafka-broker, moet je beveiligingsinstellingen toevoegen aan het server.properties-bestand. Hier zie je een eenvoudig voorbeeld:
# 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";
Clientauthenticatie met SASL/PLAIN
Nadat de broker is geconfigureerd voor SASL/PLAIN, moeten clients (producenten of consumenten) geldige aanmeldgegevens opgeven om verbinding te maken. Je geeft deze gegevens op in de configuratie van de client.
Probeer dit eenvoudige Java-voorbeeld van een producent uit te voeren, geconfigureerd voor 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();
}
}
}Autorisatie met toegangsbeheerlijsten
Nadat een client zich heeft geauthenticeerd, gebruikt Kafka Access Control Lists (ACL's) om te bepalen of deze gemachtigd is om een specifieke actie op een resource uit te voeren.
Een ACL is een regel die specificeert wie (een gebruikersprincipal), vanaf waar (host), wat mag doen (een bewerking zoals READ of WRITE) en op welke resource (topic, groep of broker).
ACL's beheren met de opdrachtregelinterface
Kafka biedt een opdrachtregelprogramma, kafka-acls.sh, om ACL's te beheren. Je kunt rechten voor gebruikers op verschillende Kafka-resources verlenen of intrekken.
Hier volgen enkele veelgebruikte opdrachten:
- Schrijftoegang tot een topic verlenen:
kafka-acls.sh --authorizer-properties authorizer.properties --add --allow-principal User:admin --producer --topic my-secure-topic - Leestoegang tot een consumentengroep verlenen:
kafka-acls.sh --authorizer-properties authorizer.properties --add --allow-principal User:consumerUser --consumer --group my-group - Alle ACL's weergeven:
kafka-acls.sh --authorizer-properties authorizer.properties --list --topic my-secure-topic
Beveiligingscontrole
Je hebt de fundamentele beveiligingsconcepten in Kafka geleerd. Laten we je begrip testen!
Welke van de volgende beschrijvingen geeft het doel van autorisatie in Kafka het beste weer?
Beveiligde gegevensstromen: samenvatting
Goed gedaan! Je hebt de basis van Kafka-beveiliging behandeld.
- Authenticatie controleert wie een client is (bijvoorbeeld via SASL/PLAIN).
- Autorisatie bepaalt wat een geauthenticeerde client mag doen (bijvoorbeeld via ACL's).
- Door deze maatregelen te implementeren, bescherm je je gegevensstromen tegen onbevoegde toegang en waarborg je de integriteit van de gegevens.
Het beveiligen van je Kafka-cluster is een essentiële stap voor elke implementatie in productie!
Leer De basis van Apache Kafka en streamverwerking met een AI-tutor — gratis
Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.
- Cursussen
- 12
- Lessen
- 48
Veelgestelde vragen
Is de les “Beveiliging: authenticatie en autorisatie” gratis?
Ja — je kunt hier op het web alle 3 lessen van het leerpad De basis van Apache Kafka en streamverwerking, waaronder “Beveiliging: authenticatie en autorisatie”, gratis volledig lezen. Daarna ontgrendelt CoddyKit PRO alle lessen, plus interactieve oefeningen met een ingebouwde code-editor en een AI-tutor die 24/7 beschikbaar is. De cursus De basis van Apache Kafka en streamverwerking bevat in totaal 4 lessen.
Wat leer ik in “Beveiliging: authenticatie en autorisatie”?
Implementeer fundamentele beveiligingsmaatregelen in Kafka, waaronder clientauthenticatie en autorisatie voor gegevenstoegang. Je oefent met De basis van Apache Kafka en streamverwerking door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.
Heb ik ervaring nodig om met De basis van Apache Kafka en streamverwerking te beginnen?
Ervaring vooraf is niet nodig. De basis van Apache Kafka en streamverwerking op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 3 van 4.
Hoe lang duurt de les “Beveiliging: authenticatie en autorisatie”?
De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.
Kan ik code schrijven en uitvoeren in deze les over De basis van Apache Kafka en streamverwerking?
Ja. Elke les over De basis van Apache Kafka en streamverwerking bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.
Alle lessen in deze cursus
- Opdrachtregeltools voor Kafka
- Kafka monitoren met JMX en tools
- Beveiliging: authenticatie en autorisatie
- Consumer lag volgen en alerts instellen