Conexión a un clúster con credenciales de inicio de sesión - Transmisión gestionada de Amazon para Apache Kafka

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Conexión a un clúster con credenciales de inicio de sesión

Después de crear un secreto y asociarlo al clúster, puede conectar el cliente con el clúster. El siguiente procedimiento muestra cómo conectar un cliente a un clúster que utiliza la SASL/SCRAM autenticación. También muestra cómo producir y consumir a partir de un tema de ejemplo.

Conexión de un cliente a un clúster mediante SASL/SCRAM autenticación

  1. Ejecute el siguiente comando en una máquina que AWS CLI esté instalada. clusterARNSustitúyalo por el ARN de su clúster.

    aws kafka get-bootstrap-brokers --cluster-arn clusterARN

    En el resultado JSON de este comando, guarda el valor asociado a la cadena nombradaBootstrapBrokerStringSaslScram. Utilizará este valor en pasos posteriores.

  2. En su equipo cliente, cree un archivo de configuración JAAS que contenga las credenciales de usuario almacenadas en su secreto. Por ejemplo, para el usuario alice, cree un archivo llamado users_jaas.conf con el siguiente contenido.

    KafkaClient { org.apache.kafka.common.security.scram.ScramLoginModule required username="alice" password="alice-secret"; };
  3. Utilice el siguiente comando para exportar el archivo de configuración de JAAS como parámetro de entorno KAFKA_OPTS.

    export KAFKA_OPTS=-Djava.security.auth.login.config=<path-to-jaas-file>/users_jaas.conf
  4. Cree un archivo denominado kafka.client.truststore.jks en el directorio /tmp.

  5. (Opcional) Utilice el siguiente comando para copiar el archivo del almacén de claves JDK de la cacerts carpeta JVM al kafka.client.truststore.jks archivo que creó en el paso anterior. JDKFolderSustitúyalo por el nombre de la carpeta JDK de la instancia. Por ejemplo, su carpeta JDK podría llamarse java-1.8.0-openjdk-1.8.0.201.b09-0.amzn2.x86_64.

    cp /usr/lib/jvm/JDKFolder/lib/security/cacerts /tmp/kafka.client.truststore.jks
  6. En el directorio bin de su instalación de Apache Kafka, cree un archivo de propiedades del cliente llamado client_sasl.properties con el siguiente contenido. Este archivo define el mecanismo y el protocolo SASL.

    security.protocol=SASL_SSL sasl.mechanism=SCRAM-SHA-512
  7. Para crear un tema de ejemplo, ejecuta el siguiente comando. BootstrapBrokerStringSaslScramSustitúyala por la cadena bootstrap broker que obtuviste en el paso 1 de este tema.

    <path-to-your-kafka-installation>/bin/kafka-topics.sh --create --bootstrap-server BootstrapBrokerStringSaslScram --command-config <path-to-client-properties>/client_sasl.properties --replication-factor 3 --partitions 1 --topic ExampleTopicName
  8. Para continuar con el tema de ejemplo que ha creado, ejecute el siguiente comando en su equipo cliente. BootstrapBrokerStringSaslScramSustitúyala por la cadena bootstrap broker que recuperaste en el paso 1 de este tema.

    <path-to-your-kafka-installation>/bin/kafka-console-producer.sh --broker-list BootstrapBrokerStringSaslScram --topic ExampleTopicName --producer.config client_sasl.properties
  9. Para continuar con el tema que ha creado, ejecute el siguiente comando en el equipo cliente. BootstrapBrokerStringSaslScramSustitúyala por la cadena bootstrap broker que obtuviste en el paso 1 de este tema.

    <path-to-your-kafka-installation>/bin/kafka-console-consumer.sh --bootstrap-server BootstrapBrokerStringSaslScram --topic ExampleTopicName --from-beginning --consumer.config client_sasl.properties

Solución de problemas de conexión

Al ejecutar los comandos del cliente de Kafka, es posible que se produzcan errores en la memoria apilada de Java, especialmente al trabajar con temas o conjuntos de datos extensos. Estos errores se producen porque las herramientas de Kafka se ejecutan como aplicaciones Java con una configuración de memoria predeterminada que puede ser insuficiente para la carga de trabajo.

Para resolver Out of Memory Java Heap los errores, puede aumentar el tamaño del montón de Java modificando la variable de KAFKA_OPTS entorno para incluir la configuración de memoria.

En el siguiente ejemplo, se establece el tamaño máximo del montón en 1 GB (). -Xmx1G Puede ajustar este valor en función de la memoria del sistema disponible y de los requisitos.

export KAFKA_OPTS="-Djava.security.auth.login.config=<path-to-jaas-file>/users_jaas.conf -Xmx1G"

Si se trata de temas extensos, considere la posibilidad de utilizar parámetros basados en el tiempo o en la compensación en lugar de limitar el uso de la memoria--from-beginning:

<path-to-your-kafka-installation>/bin/kafka-console-consumer.sh --bootstrap-server BootstrapBrokerStringSaslScram --topic ExampleTopicName --max-messages 1000 --consumer.config client_sasl.properties