• Русский
  • Настройка клиентских файлов

    Чтобы обеспечить безопасную связь, пожалуйста, завершите настройку, связанную с зашифрованной передачей, на клиенте Kafka.

    Заметки

    Следующие операции необходимо выполнять на управляющем узле внутри кластера.

    Содержание

    Предварительный просмотр необходимых файлов

    Подготовьте файлы в соответствии с типом аутентификации экземпляра Kafka. Каждый файл соответствует экземпляру Kafka один к одному. Если имеется несколько экземпляров, для каждого файла требуется отдельная конфигурация, и связанные файлы могут быть размещены в разных путях. Для сценариев, связанных с доступом внутри кластера, пример клиентского пути — /home/kafka.

    Метод шифрованияМетод аутентификацииНеобходимые файлы
    Внутрикластерный: TLS
    Внешний: TLS
    SCRAM-SHA-512 или отсутствуетСертификат ЦС: ca.p12
    Файл конфигурации клиента: client-ssl.properties
    Внутрикластерный: TLS
    Внешний: TLS
    TLSСертификат ЦС: ca.p12
    Пользовательский сертификат: user.p12
    Файл конфигурации клиента: client-ssl.properties

    I. Настройка сертификата ЦС

    1. Сгенерируйте сертификат ЦС.

      $ kubectl -n {пространство имен экземпляра Kafka} get secret {имя экземпляра Kafka}-cluster-ca-cert -o jsonpath='{.data.ca\.p12}' | base64 -d > ca.p12
    2. Генерируйте пароль для сертификата ЦС. Пожалуйста, запишите этот пароль.

      $ kubectl -n {пространство имен экземпляра Kafka} get secret {имя экземпляра Kafka}-cluster-ca-cert -o jsonpath='{.data.ca\.password}' | base64 -d

    II. Пользовательский сертификат

    1. Сгенерируйте пользовательский сертификат.

      $ kubectl -n {пространство имен экземпляра Kafka} get secret {имя пользователя Kafka} -o jsonpath='{.data.user\.p12}' | base64 -d > user.p12
    2. Генерируйте пароль для пользовательского сертификата. Пожалуйста, запишите этот пароль.

      $ kubectl -n {пространство имен экземпляра Kafka} get secret {имя пользователя Kafka} -o jsonpath='{.data.user\.password}' | base64 -d

    III. Настройка файлов конфигурации клиента

    client-ssl.properties (Без аутентификации)

    $ cat << EOF > client-ssl.properties
    security.protocol=SSL
    ssl.truststore.type=PKCS12
    ssl.truststore.location=/home/kafka/ca.p12
    ssl.truststore.password={пароль сертификата ЦС}
    EOF

    client.properties (Для аутентификации SCRAM-SHA-512)

    Предварительное условие: На вкладке Управление пользователями нажмите на секретный словарь и запишите значение поля пароль.

    $ cat << EOF > client.properties
    security.protocol=SASL_SSL
    ssl.truststore.type=PKCS12
    ssl.truststore.location=/home/kafka/ca.p12
    ssl.truststore.password={пароль сертификата ЦС}
    
    sasl.mechanism=SCRAM-SHA-512
    sasl.jaas.config=org.apache.kafka.common.security.scram.ScramLoginModule required \
        username="{имя пользователя Kafka}" \
        password="{пароль пользователя Kafka}";
    
    EOF

    client-ssl.properties (Для аутентификации TLS)

    $ cat << EOF > client-ssl.properties
    security.protocol=SSL
    ssl.truststore.type=PKCS12
    ssl.truststore.location={путь клиента}/ca.p12
    ssl.truststore.password={пароль сертификата ЦС}
    
    ssl.keystore.type=PKCS12
    ssl.keystore.location=/home/kafka/user.p12
    ssl.keystore.password={пароль пользовательского сертификата}
    EOF
    TIP

    Чтобы включить внешний доступ, добавьте ssl.endpoint.identification.algorithm= в файл конфигурации.

    IV. Копирование файлов на клиент

    Совет: Пожалуйста, обратитесь к таблице в предварительном просмотре необходимых файлов, чтобы определить необходимые файлы для вашего метода доступа.

    Внутрикластерный доступ

    Убедитесь, что необходимые файлы размещены в путях, указанных в файлах конфигурации клиента.

    $ kubectl cp ./{имя необходимого файла} {пространство имен клиента Kafka}/{имя Pod клиента Kafka}:/home/kafka/ -c kafka

    Внешний доступ

    Убедитесь, что необходимые файлы размещены в путях, указанных в файлах конфигурации клиента.