Назад к вопросам
ГК Иннотех
Middle
16
Как реализовано разграничение прав доступа в кластере Kafka? На какие сущности распространяются ACL?
Компании, где спрашивали
Ответ от нейросети
sobes.tech AI
В Apache Kafka разграничение прав доступа реализовано через механизм ACL (Access Control Lists). ACL позволяют задавать, какие пользователи или сервисы (принципалы) имеют права на выполнение определённых операций с ресурсами кластера.
ACL распространяются на следующие основные сущности:
- Topic — права на чтение (READ), запись (WRITE), создание (CREATE), удаление (DELETE) топиков.
- Group — права на управление группами потребителей (например, чтение offset'ов).
- Cluster — права на операции, связанные с самим кластером, например, создание топиков, управление ACL.
- TransactionalId — права на использование транзакций.
Каждая ACL задаёт:
- Принципала (пользователя или сервисный аккаунт), которому предоставляются права.
- Ресурс (topic, group, cluster и т.д.).
- Разрешённые операции (READ, WRITE, DESCRIBE, CREATE, DELETE и др.).
- Тип разрешения (ALLOW или DENY).
Пример команды для добавления ACL:
kafka-acls --authorizer-properties zookeeper.connect=localhost:2181 \
--add --allow-principal User:Alice --operation Read --topic my-topic
Таким образом, ACL в Kafka позволяют гибко управлять доступом на уровне ключевых ресурсов кластера.