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

¿Cómo empiezo a utilizar el cifrado?

Al crear un MSK clúster, puede especificar la configuración de cifrado en el JSON formato. 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" } }

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

ParaEncryptionInTransit, el valor predeterminado de InCluster es verdadero, pero puedes establecerlo en falso si no quieres que Amazon cifre tus datos MSK a medida que pasan de un agente a otro.

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 create-cluster comando y utilice la encryption-info opción para apuntar al archivo en el que guardó la configuraciónJSON. A continuación, se muestra un ejemplo. Reemplazar {YOUR MSK VERSION} con una versión que coincida con la versión del cliente Apache Kafka. Para obtener información sobre cómo encontrar la versión de su MSK clúster, consulteTo 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 la versión de MSK clúster puede provocar la corrupción de los datos de Apache Kafka, su pérdida y su tiempo de inactividad.

    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" }
Para probar el 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, utilizamos el JVM truststore para comunicarnos con el MSK clúster. 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 JVM ruta 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 tenga AWS CLI instalada la que sustituya clusterARN con 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, sustituyendo BootstrapBrokerStringTls con uno de los puntos finales del bróker 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.