Защита кластера Kafka с помощью аутентификации SASL/TLS: методы и примеры кода

Поскольку безопасность данных становится все более важной, внедрение механизмов аутентификации в кластере Kafka имеет важное значение для защиты конфиденциальной информации и предотвращения несанкционированного доступа. Одним из популярных подходов является использование SASL (простой уровень аутентификации и безопасности) с TLS (безопасность транспортного уровня) для безопасной связи. В этой статье мы рассмотрим различные методы включения аутентификации SASL/TLS в кластере Kafka, сопровождаемые примерами кода.

Метод 1: SASL/PLAIN с SSL/TLS
SASL/PLAIN — это простой механизм аутентификации по имени пользователя и паролю. Чтобы включить его с помощью SSL/TLS, вам необходимо настроить как брокеры, так и клиенты Kafka для шифрования SSL. Вот пример server.properties для брокера:

listeners=PLAINTEXT://:9092,SASL_SSL://:9093
security.inter.broker.protocol=SASL_SSL
sasl.mechanism.inter.broker.protocol=PLAIN
ssl.keystore.location=/path/to/keystore.jks
ssl.keystore.password=keystore_password
ssl.key.password=key_password

Метод 2: SASL/SCRAM с SSL/TLS
SASL/SCRAM (механизм аутентификации с использованием соленого запроса и ответа) обеспечивает безопасную аутентификацию на основе пароля. Чтобы включить его с помощью SSL/TLS, вам необходимо настроить брокеры и клиенты Kafka для шифрования SSL и настроить учетные данные SCRAM. Вот пример server.properties для брокера:

listeners=PLAINTEXT://:9092,SASL_SSL://:9093
security.inter.broker.protocol=SASL_SSL
sasl.mechanism.inter.broker.protocol=SCRAM-SHA-256
sasl.enabled.mechanisms=SCRAM-SHA-256
ssl.keystore.location=/path/to/keystore.jks
ssl.keystore.password=keystore_password
ssl.key.password=key_password

Метод 3: SASL/OAUTHBEARER с SSL/TLS
SASL/OAUTHBEARER включает аутентификацию с использованием OAuth 2.0. Чтобы включить его с помощью SSL/TLS, вам необходимо настроить брокеров и клиентов Kafka для шифрования SSL и настроить учетные данные OAuth 2.0. Вот пример server.properties для брокера:

listeners=PLAINTEXT://:9092,SASL_SSL://:9093
security.inter.broker.protocol=SASL_SSL
sasl.mechanism.inter.broker.protocol=OAUTHBEARER
sasl.enabled.mechanisms=OAUTHBEARER
ssl.keystore.location=/path/to/keystore.jks
ssl.keystore.password=keystore_password
ssl.key.password=key_password
oauthbearer.sasl.server.callback.handler.class=example.oauthbearer.server.callback.handler

Защита кластера Kafka с помощью аутентификации SASL/TLS жизненно важна для защиты конфиденциальных данных и предотвращения несанкционированного доступа. В этой статье мы рассмотрели три метода: SASL/PLAIN с SSL/TLS, SASL/SCRAM с SSL/TLS и SASL/OAUTHBEARER с SSL/TLS. Следуя предоставленным примерам кода и соответствующим образом настроив брокеров и клиентов Kafka, вы сможете повысить безопасность своих приложений на основе Kafka.