Configurazione delle ACL di Kafka
Le liste di controllo dell'accesso (ACL, Access Control List) Kafka vengono utilizzate per specificare le autorizzazioni per le risorse cluster in Streaming con Apache Kafka.
- Principal
- Utente o applicazione autenticata dal cluster Kafka. Il formato del nome principale dipende dal tipo di meccanismo di autenticazione utilizzato, ad esempio SASL/SCRAM o mTLS.
- Operazioni
- Azione eseguita su una risorsa del cluster Kafka, ad esempio creazione, eliminazione, produzione o utilizzo.
- Risorse
- Una risorsa cluster Kafka, ad esempio cluster, broker, gruppo di broker o argomento. Se a una risorsa non è associata un'ACL, solo un utente privilegiato può accedere alla risorsa.
Le ACL di Kafka controllano quale principal può eseguire operazioni sulle risorse. Se si creano entrambe le ACL allow
e deny
su una risorsa, le ACL deny
hanno la precedenza sulle ACL allow
.
Per configurare un'ACL per un cluster, completare i task riportati di seguito.
Abilita responsabile autorizzazioni
In Apache Kafka, l'autorizzazione è un componente che applica le liste di controllo dell'accesso (ACL, Access Control List) e garantisce che solo gli utenti o i client autorizzati eseguano le azioni definite nelle ACL.
config_name.properties
per il cluster con le seguenti informazioni:
authorizer.class.name=kafka.security.authorizer.AclAuthorizer
Creazione dell'ACL Kafka
Per aggiungere, rimuovere o elencare le ACL in un cluster, utilizzare l'interfaccia CLI del responsabile autorizzazioni Apache Kafka.
Le regole di accesso nelle ACL di Apache Kafka vengono create utilizzando il formato seguente:
Principal P is [Allowed/Denied] Operation O From Host H on any Resource R matching ResourcePattern RP
Qui,
- Principal P è l'utente o il client al quale viene concesso o negato l'accesso.
- Consentito/Negato è l'autorizzazione impostata sul principal.
- Operazione O è l'azione sulla risorsa, ad esempio lettura, scrittura, creazione ed eliminazione.
-
Host H è l'origine della richiesta. Il carattere jolly
*
viene utilizzato per rappresentare qualsiasi host. - Risorsa R è l'entità Kafka, ad esempio un argomento o un cluster.
-
ResourcePattern RP indica la corrispondenza della risorsa. Ad esempio,
ResourcePattern RP
potrebbe esserePREFIXED
con un valorelogs-
, il che significa che l'ACL si applica a tutti gli argomenti i cui nomi iniziano conlogs-
. Se RP non corrisponde a una specifica risorsa R, R non dispone di ACL associate.
logs-
da qualsiasi host:
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
Aggiorna configurazione cluster
Quando si crea un cluster, viene creato un file di configurazione predefinito per il cluster. La proprietà ACL è impostata in modo da consentire a tutti di accedere alle risorse quando non viene trovata alcuna ACL per il cluster.
allow.everyone.if.no.acl.found
in false
per applicare un accesso di sicurezza deny by default. Quando si imposta il valore di questa proprietà su false, solo i client o gli utenti autorizzati nell'ACL e gli utenti privilegiati possono accedere alle risorse.
allow.everyone.if.no.acl.found=false
true
per allow.everyone.if.no.acl.found
per consentire l'accesso illimitato alle risorse senza ACL, applicando al contempo le ACL per le risorse che le dispongono.