• Русский
  • Конфигурация клиентских файлов

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

    Notes

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

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

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

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

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

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

      $ kubectl -n {Kafka instance namespace} get secret {Kafka instance name}-cluster-ca-cert -o jsonpath='{.data.ca\.p12}' | base64 -d > ca.p12
    2. Сгенерируйте пароль для CA сертификата. Пожалуйста, сохраните этот пароль.

      $ kubectl -n {Kafka instance namespace} get secret {Kafka instance name}-cluster-ca-cert -o jsonpath='{.data.ca\.password}' | base64 -d

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

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

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

      $ kubectl -n {Kafka instance namespace} get secret {Kafka user name} -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={CA certificate password}
    EOF

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

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

    $ cat << EOF > client.properties
    security.protocol=SASL_SSL
    ssl.truststore.type=PKCS12
    ssl.truststore.location=/home/kafka/ca.p12
    ssl.truststore.password={CA certificate password}
    
    sasl.mechanism=SCRAM-SHA-512
    sasl.jaas.config=org.apache.kafka.common.security.scram.ScramLoginModule required \
        username="{Kafka user name}" \
        password="{Kafka user password}";
    
    EOF

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

    $ cat << EOF > client-ssl.properties
    security.protocol=SSL
    ssl.truststore.type=PKCS12
    ssl.truststore.location={client path}/ca.p12
    ssl.truststore.password={CA certificate password}
    
    ssl.keystore.type=PKCS12
    ssl.keystore.location=/home/kafka/user.p12
    ssl.keystore.password={user certificate password}
    EOF
    TIP

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

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

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

    Доступ внутри кластера

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

    $ kubectl cp ./{required file name} {Kafka client namespace}/{Kafka client Pod name}:/home/kafka/ -c kafka

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

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