Kafka-ACLs konfigurieren
Mit Kafka-Zugriffskontrolllisten (ACLs) werden Berechtigungen zum Clustern von Ressourcen in Streaming mit Apache Kafka angegeben.
- Principal
- Ein Benutzer oder eine Anwendung, der/die vom Kafka-Cluster authentifiziert wird. Das Format des Principal-Namens hängt vom verwendeten Authentifizierungsmechanismus ab, wie SASL/SCRAM oder mTLS.
- Arbeitsvorgänge
- Eine Aktion, die für eine Kafka-Clusterressource ausgeführt wird, wie Erstellen, Löschen, Produzieren oder Konsumieren.
- Ressourcen
- Eine Kafka-Clusterressource, wie Cluster, Broker, Brokergruppe oder Thema. Wenn einer Ressource keine ACL zugeordnet ist, kann nur ein Superuser auf die Ressource zugreifen.
Kafka-ACLs steuern, welcher Principal Vorgänge an den Ressourcen ausführen kann. Wenn Sie sowohl allow
- als auch deny
-ACLs für eine Ressource erstellen, haben die deny
-ACLs Vorrang vor den allow
-ACLs.
Führen Sie die folgenden Aufgaben aus, um eine ACL für ein Cluster zu konfigurieren.
Autorisierer aktivieren
In Apache Kafka ist der Autorisierer eine Komponente, die Access Control-Listen (ACLs) durchsetzt und sicherstellt, dass nur autorisierte Benutzer oder Clients die in ACLs definierten Aktionen ausführen.
config_name.properties
für das Cluster mit den folgenden Informationen:
authorizer.class.name=kafka.security.authorizer.AclAuthorizer
Kafka-ACL erstellen
Um ACLs in einem Cluster hinzuzufügen, zu entfernen oder aufzulisten, verwenden Sie die Apache Kafka-Autorisierer-CLI.
Die Zugriffsregeln in Apache Kafka-ACLs werden im folgenden Format erstellt:
Principal P is [Allowed/Denied] Operation O From Host H on any Resource R matching ResourcePattern RP
Hier,
- Principal P ist der Benutzer oder Client, dem der Zugriff erteilt oder verweigert wird.
- Zulässig/Abgelehnt ist die Berechtigung, die für den Principal festgelegt ist.
- Vorgang O ist die Aktion für die Ressource, wie Lesen, Schreiben, Erstellen und Löschen.
- Host H ist die Quelle, von der die Anforderung ausgeführt wird. Der Platzhalter
*
wird zur Darstellung eines beliebigen Hosts verwendet. - Ressource R ist die Kafka-Entity, wie Topic oder Cluster.
- ResourcePattern RP gibt an, wie die Ressource abgeglichen wird. Beispiel:
ResourcePattern RP
könntePREFIXED
mit dem Wertlogs-
sein, was bedeutet, dass die ACL für alle Themen gilt, deren Namen mitlogs-
beginnen. Wenn RP nicht mit einer bestimmten Ressource R übereinstimmt, sind R keine ACLs zugeordnet.
logs-
beginnen:
kafka-acls --bootstrap-server <bootstrap-server-url> \
--command-config <config-file-path> \
--add \
--allow-principal User:Alice \
--operation Write \
--topic logs- \
--resource-pattern-type prefixed
Clusterkonfiguration aktualisieren
Wenn Sie ein Cluster erstellen, wird eine Standardkonfigurationsdatei für das Cluster erstellt. Die ACL-Eigenschaft ist so eingestellt, dass jeder auf Ressourcen zugreifen kann, wenn keine ACL für das Cluster gefunden wird.
allow.everyone.if.no.acl.found
in false
, um einen standardmäßigen Sicherheitszugriff zu erzwingen. Wenn Sie den Wert dieser Eigenschaft auf "false" setzen, können nur die Clients oder Benutzer, die in der ACL zugelassen sind, und Superuser auf die Ressourcen zugreifen.
allow.everyone.if.no.acl.found=false
true
für allow.everyone.if.no.acl.found
beibehalten, um uneingeschränkten Zugriff auf Ressourcen ohne ACLs zuzulassen, während Sie ACLs für Ressourcen erzwingen, die diese enthalten.