Files
tf_provider/docs/30_registry/resources/kafka_ops.md
T
2026-06-30 15:45:24 +04:00

12 KiB

Resource nubes_kafka

Service ID: 116

Service Name: ApacheKafka

Manual | Create params | Modify params | Output params | Operations | Example

Operations

  • create — Создание кластера. Параметры: Create params
  • create_topic — Создание кластера. Параметры: Create params
  • create_user — Создание кластера. Параметры: Create params
  • delete
  • delete_topic — . См. nubes_kafka_topic
  • delete_user — # Инструкция по управлению пользователями Apache Kafka. --- ## 1. Общая информация Пользователи в Apache Kafka используются для аутентификации и авторизации при подключении к кластеру. Платформа позволяет создавать, удалять и изменять пользователей без прямого доступа к брокерам, а также настраивать права доступа к топикам и группам. Это обеспечивает централизованное и безопасное управление доступом к ресурсам Kafka. --- ## Доступные операции - create_user — Создание пользователя - modify_user — Модификация пользователя - delete_user — Удаление пользователя --- ## 2. Параметры создания пользователя Ниже перечислены параметры, которые необходимо указать при создании нового пользователя: * Имя пользователя Имя создаваемого пользователя. Используется для подключения к Kafka и настройки прав. Пример: username-admin * Топик Название топика, к которому будут назначены права для данного пользователя. Пример: orders-events. Использовать маску нельзя (orders*), только полное название или *. * Операции Список разрешённых операций на указанном топике. Пример: Describe, Read, Write * Группа Имя группы, которой разрешён доступ. Используется при настройке консюмер-групп. Пример: order-consumers. * Разрешённые хосты Список хостов или подсетей, с которых разрешено подключение пользователя. Пример: 192.168.1.0/24 или *. --- ## 3. Параметры модификации пользователя Ниже перечислены параметры, которые необходимо указать при модификации пользователя: * Имя пользователя Имя создаваемого пользователя. Используется для подключения к Kafka и настройки прав. Пример: username-admin * Топик Название топика, к которому будут назначены права для данного пользователя. Пример: orders-events. Использовать маску нельзя (orders*), только полное название или *. * Операции Список разрешённых операций на указанном топике. Пример: Describe, Read, Write * Группа Имя группы, которой разрешён доступ. Используется при настройке консюмер-групп. Пример: order-consumers. * Разрешённые хосты Список хостов или подсетей, с которых разрешено подключение пользователя. Пример: 192.168.1.0/24 или *. --- ## 4. Параметры удалении пользователя Ниже перечислены параметры, которые необходимо указать при удалении пользователя: * Имя пользователя Имя удаляемого пользователя. Пример: username-admin ## 5. Выходные параметры После успешного создания пользователя платформа возвращает параметры, необходимые для подключения: * ca.crt Корневой сертификат (Certificate Authority), используемый для проверки подлинности сервера при TLS-подключении. Файл содержит публичный ключ удостоверяющего центра, которому доверяют брокеры и клиенты. Выдаеться в формате base64 для получения файла сертификата использовать команду bash echo '<содержание поля>' | base64 -d > <название>.crt * ca.p12 PKCS#12-хранилище с корневым сертификатом (Certificate Authority), используемое для проверки подлинности сервера при TLS-подключении. Выдаеться в формате base64 для получения файла сертификата использовать команду bash echo '<содержание поля>' | base64 -d > <название>.p12 * ca.password Пароль для доступа к хранилищу ca.p12. Выдаеться в чистом виде. Раскодировать не нужно. * user.crt Клиентский сертификат, подтверждающий личность пользователя при подключении к Kafka. Используется совместно с приватным ключом user.key для аутентификации. Выдаеться в формате base64 для получения файла сертификата использовать команду bash echo '<содержание поля>' | base64 -d > <название>.crt * user.key Приватный ключ пользователя, применяемый для установления защищённого TLS-соединения и подтверждения подлинности. Выдаеться в формате base64 для получения файла сертификата использовать команду bash echo '<содержание поля>' | base64 -d > <название>.key * user.p12 PKCS#12-хранилище с клиентским сертификатом и приватным ключом, предназначенное для аутентификации пользователя в Kafka. Выдаеться в формате base64 для получения файла сертификата использовать команду bash echo "<содержание поля>" | base64 -d > <название>.p12 * user.password Пароль для доступа к хранилищу user.p12. Выдаеться в чистом виде. Раскодировать не нужно. Эти параметры используются для настройки TLS-подключения. --- ## 6. Пример конфигурации клиента внутри кластера Пример пода: yaml apiVersion: v1 kind: Pod metadata: name: kafka-4 spec: volumes: - name: work emptyDir: {} containers: - name: kcat image: quay.io/strimzi/kafka:latest-kafka-4.0.0 command: ["sleep", "5600"] volumeMounts: - name: work mountPath: /work restartPolicy: Never Создаём под и сохраняем сертификаты: bash kubectl cp user.p12 kafka-4:/work/ kubectl cp ca.p12 kafka-4:/work/ Создаём файлы конфигурации: bash cat > /work/user-read.properties <<'EOF' security.protocol=SSL ssl.keystore.type=PKCS12 ssl.keystore.location=/work/user.p12 ssl.keystore.password=<user.password> ssl.truststore.type=PKCS12 ssl.truststore.location=/work/ca.p12 ssl.truststore.password=<ca.password> EOF bash cat > /work/user-write.properties <<'EOF' security.protocol=SSL ssl.keystore.type=PKCS12 ssl.keystore.location=/work/user-write.p12 ssl.keystore.password=<user.password> ssl.truststore.type=PKCS12 ssl.truststore.location=/work/ca.p12 ssl.truststore.password=<ca.password> EOF Листинг доступных топиков: bash /opt/kafka/bin/kafka-topics.sh \ --bootstrap-server kafkak8s-bootstrap-external:9093 \ --command-config /work/user-read.properties \ --list Запись сообщений: bash /opt/kafka/bin/kafka-console-producer.sh \ --bootstrap-server <адрес сервис брокера>:9093 \ --topic <topic> \ --producer.config /work/user-write.properties Чтение сообщений: bash /opt/kafka/bin/kafka-console-consumer.sh \ --bootstrap-server <адрес сервис брокера>:9093 \ --topic <topic> \ --from-beginning \ --group <group> \ --consumer.config /work/user-read.properties \ --max-messages 50 --- ## 7. Пример внешнего подключения с использованием kcat Листинг топиков bash kcat -b <externalConnect.bootstrap.fqdn>:9093 \ -L \ -X security.protocol=SSL \ -X ssl.ca.location=./ca.crt \ -X ssl.certificate.location=./user-read.crt \ -X ssl.key.location=./user-read.key \ -X ssl.endpoint.identification.algorithm=none Запись сообщения bash echo "hello from kcat" | kcat -P \ -b <externalConnect.bootstrap.fqdn>:9093 \ -t write-test \ -X security.protocol=SSL \ -X ssl.ca.location=./ca.crt \ -X ssl.certificate.location=./user-write.crt \ -X ssl.key.location=./user-write.key \ -X ssl.endpoint.identification.algorithm=none Чтение сообщений bash kcat -C \ -b <externalConnect.bootstrap.fqdn>:9093 \ -t write-test \ -o beginning \ -q \ -X security.protocol=SSL \ -X ssl.ca.location=./ca.crt \ -X ssl.certificate.location=./user-read.crt \ -X ssl.key.location=./user-read.key \ -X ssl.endpoint.identification.algorithm=none --- ## 9. Рекомендации * Минимизируйте набор разрешённых операций для повышения безопасности. * Используйте отдельные учётные записи для продюсеров, консюмеров и системных сервисов. * Ограничивайте доступ по IP или подсетям с помощью параметра Разрешённые хосты. * После изменения прав или групп пользователя рекомендуется проверить подключение и доступ к топикам. ---. См. nubes_kafka_user
  • modify — Изменение кластера. Параметры: Modify params
  • modify_topic — Изменение кластера. Параметры: Modify params
  • modify_user — Изменение кластера. Параметры: Modify params
  • resume
  • suspend