Для правильной настройки Kafka Access Control List (ACL) и Simple Authentication and Security Layer (SASL) для нескольких пользователей вам потребуется выполнить несколько шагов.
- Настройте Kafka для использования SASL:
- Установите и настройте SASL-фреймворк для языка программирования PHP, такой как PECL SASL, чтобы обеспечить возможность аутентификации.
- В файле конфигурации Kafka (
server.properties
) установите значениеlisteners
в обязательном порядке с префиксом "SASL_". Например:listeners=SASL_PLAINTEXT://localhost:9092
. - Включите и настройте механизм аутентификации SASL в файле
server.properties
. Например, для PLAIN-аутентификации установитеsasl.mechanism.inter.broker.protocol=PLAIN
. - Определите список допустимых механизмов авторизации и пользователей в файле
kafka_server_jaas.conf
. Например:
ZookeeperClient { org.apache.kafka.common.security.plain.PlainLoginModule required username="kafka" password="kafkapassword" user_kafka="kafkapassword"; };
- Настройте ACL для разрешения доступа для каждого пользователя:
- Создайте файл с правилами ACL для Kafka, например
kafka_acls.sh
, и задайте правильные разрешения для каждого пользователя. - Например, для пользователя "user1" с разрешениями на чтение и запись в топик "topic1":
bin/kafka-acls.sh --bootstrap-server localhost:9092 --command-config config/adminclient.properties --add --allow-principal User:user1 --topic topic1 --operation Read bin/kafka-acls.sh --bootstrap-server localhost:9092 --command-config config/adminclient.properties --add --allow-principal User:user1 --topic topic1 --operation Write
- Повторите этот шаг для каждого пользователя и топика.
- Проверьте правильность настройки:
- Запустите Kafka сервер и PHP-приложение для проверки настроек.
- В PHP-приложении настройте SASL-аутентификацию с использованием учетных данных каждого пользователя.
- Убедитесь, что каждый пользователь может выполнять только разрешенные операции на топиках, определенных в ACL.
Таким образом, вы настроите Kafka для использования ACL и SASL для нескольких пользователей, предоставляя им полный контроль над доступом к топикам и разрешая только разрешенные операции, определенные в правилах ACL.