¿Cómo empiezo a utilizar el cifrado? - Transmisión gestionadada 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.

¿Cómo empiezo a utilizar el cifrado?

Al crear un clúster de MSK, puede especificar la configuración de cifrado en formato JSON. A continuación, se muestra un ejemplo.

{ "EncryptionAtRest": { "DataVolumeKMSKeyId": "arn:aws:kms:us-east-1:123456789012:key/abcdabcd-1234-abcd-1234-abcd123e8e8e" }, "EncryptionInTransit": { "InCluster": true, "ClientBroker": "TLS" } }

Para DataVolumeKMSKeyId, puede especificar una clave administrada por el cliente o la Clave administrada de AWS para MSK en su cuenta (alias/aws/kafka). Si no lo especificaEncryptionAtRest, Amazon MSK seguirá cifrando sus datos en reposo en. Clave administrada de AWS Para determinar qué clave está utilizando su clúster, envíe una solicitud GET o invoque la operación de la API de DescribeCluster.

En EncryptionInTransit, el valor predeterminado de InCluster es true, pero puede establecerlo en false si no desea que Amazon MSK cifre sus datos a medida que pasan entre los agentes.

Para especificar el modo de cifrado de los datos en tránsito entre clientes y agentes, establezca ClientBroker a uno de los tres valores: TLS, TLS_PLAINTEXT, o PLAINTEXT.

Especificación de la configuración de cifrado al crear un clúster
  1. Guarde el contenido del ejemplo anterior en un archivo y asígnele el nombre que desee. Por ejemplo, llámalo encryption-settings.json.

  2. Ejecute el comando create-cluster y use la opción encryption-info para señalar al archivo donde guardó su configuración JSON. A continuación, se muestra un ejemplo. Sustituya {YOUR MSK VERSION} por una versión que coincida con la versión del cliente de Apache Kafka. Para obtener información sobre cómo encontrar la versión de clúster de MSK, consulte To find the version of your MSK cluster. Tenga en cuenta que el uso de una versión de cliente de Apache Kafka que no sea la misma que su versión de clúster de MSK puede provocar la corrupción, la pérdida y el tiempo de inactividad de los datos de Apache Kafka.

    aws kafka create-cluster --cluster-name "ExampleClusterName" --broker-node-group-info file://brokernodegroupinfo.json --encryption-info file://encryptioninfo.json --kafka-version "{YOUR MSK VERSION}" --number-of-broker-nodes 3

    El siguiente es un ejemplo de una respuesta correcta después de ejecutar este comando.

    { "ClusterArn": "arn:aws:kafka:us-east-1:123456789012:cluster/SecondTLSTest/abcdabcd-1234-abcd-1234-abcd123e8e8e", "ClusterName": "ExampleClusterName", "State": "CREATING" }
Prueba del cifrado TLS
  1. Cree un equipo cliente siguiendo las instrucciones de Paso 3: creación de un equipo cliente.

  2. Instale Apache Kafka en el equipo cliente.

  3. En este ejemplo, usamos el almacén de confianza de JVM para comunicarnos con el clúster de MSK. Para ello, primero cree una carpeta denominada /tmp en el equipo cliente. Luego, vaya a la carpeta bin de la instalación de Apache Kafka y ejecute el siguiente comando. (Su ruta de JVM puede ser diferente).

    cp /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.201.b09-0.amzn2.x86_64/jre/lib/security/cacerts /tmp/kafka.client.truststore.jks
  4. Mientras esté aún en la carpeta bin de la instalación de Apache Kafka en el equipo cliente, cree un archivo de texto denominado client.properties con el siguiente contenido.

    security.protocol=SSL ssl.truststore.location=/tmp/kafka.client.truststore.jks
  5. Ejecute el siguiente comando en una máquina que lo tenga AWS CLI instalado y sustituya ClusterArn por el ARN de su clúster.

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

    Un resultado correcto sería como el siguiente. Guarde este resultado porque lo necesita para el siguiente paso.

    { "BootstrapBrokerStringTls": "a-1.example.g7oein.c2.kafka.us-east-1.amazonaws.com:0123,a-3.example.g7oein.c2.kafka.us-east-1.amazonaws.com:0123,a-2.example.g7oein.c2.kafka.us-east-1.amazonaws.com:0123" }
  6. Ejecute el siguiente comando y reemplácelo por BootstrapBrokerStringTlsuno de los puntos finales del broker que obtuvo en el paso anterior.

    <path-to-your-kafka-installation>/bin/kafka-console-producer.sh --broker-list BootstrapBrokerStringTls --producer.config client.properties --topic TLSTestTopic
  7. Abra una nueva ventana de comandos y conéctese al mismo equipo cliente. A continuación, ejecute el siguiente comando para crear un consumidor de consola.

    <path-to-your-kafka-installation>/bin/kafka-console-consumer.sh --bootstrap-server BootstrapBrokerStringTls --consumer.config client.properties --topic TLSTestTopic
  8. En la ventana del productor, escriba un mensaje de texto seguido de una devolución y busque el mismo mensaje en la ventana del consumidor. Amazon MSK cifró este mensaje en tránsito.

Para obtener más información acerca de cómo configurar clientes Apache Kafka para que funcionen con datos cifrados, consulte Configuración de clientes Kafka.