Skip to main content

Command Palette

Search for a command to run...

Conexión a MSK desde AWS CloudShell

Updated
2 min read

Documentación paso a paso para conectarte a un clúster de Amazon MSK (con autenticación SCRAM-SHA-512) desde AWS CloudShell, utilizando la versión Kafka 3.6.0

Requisitos

  • Acceso a AWS CloudShell en la misma región del clúster MSK (us-east-1).

  • Nombre de usuario y contraseña SCRAM habilitados en el clúster (se encuentran como secret en la misma cuenta y región del clúster).

  • DNS de brokers disponibles.

  • El clúster debe estar accesible desde el entorno VPC de CloudShell (ver como crear un VPC Environment en AWS CloudShell)


1. Descargar Kafka

export KAFKA_VERSION=3.6.0

wget https://archive.apache.org/dist/kafka/$KAFKA_VERSION/kafka_2.13-$KAFKA_VERSION.tgz

tar -xzf kafka_2.13-$KAFKA_VERSION.tgz

cd kafka_2.13-$KAFKA_VERSION/bin

2. Copiar truststore por defecto (para SSL)

cp /usr/lib/jvm/jre/lib/security/cacerts kafka.client.truststore.jks

3. Definir brokers MSK (SCRAM)

export KAFKA_BROKERS_SCRAM="b-2.dfhsdf.u4jjft.c2.kafka.us-east-1.amazonaws.com:9096,b-1.dfhsdf.u4jjft.c2.kafka.us-east-1.amazonaws.com:9096"

4. Crear archivo client.properties

cat <<EOF > client.properties
security.protocol=SASL_SSL
sasl.mechanism=SCRAM-SHA-512
ssl.truststore.location=$(pwd)/kafka.client.truststore.jks
EOF

5. Crear archivo users_jaas.conf

cat <<EOF > users_jaas.conf
KafkaClient {
   org.apache.kafka.common.security.scram.ScramLoginModule required
   username="msk-user"
   password="msk-pass";
};
EOF

6. Exportar variable de entorno KAFKA_OPTS

Esta variable asegura que el cliente Kafka use la autenticación SASL/SCRAM configurada.

export KAFKA_OPTS="-Djava.security.auth.login.config=$(pwd)/users_jaas.conf"

7. Listar tópicos del clúster

./kafka-topics.sh --bootstrap-server $KAFKA_BROKERS_SCRAM --list --command-config client.properties

Validación y Troubleshooting

  • Si ves errores de conexión o certificados, verifica que:

    • El VPC Endpoint está configurado (si el MSK es privado).

    • Estás usando el truststore correcto (cacerts).

    • El usuario y contraseña SCRAM son válidos.

    • Tienes conectividad desde CloudShell hacia los brokers.