Comment démarrer avec le chiffrement ? - Amazon Managed Streaming for Apache Kafka

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Comment démarrer avec le chiffrement ?

Lors de la création d'un cluster MSK, vous pouvez spécifier les paramètres de chiffrement au format JSON. Voici un exemple.

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

Pour DataVolumeKMSKeyId, vous pouvez spécifier une clé gérée par le client ou la Clé gérée par AWS pour MSK dans votre compte (alias/aws/kafka). Si vous ne le spécifiez pasEncryptionAtRest, Amazon MSK chiffre toujours vos données au repos sous le. Clé gérée par AWS Pour déterminer la clé utilisée par votre cluster, envoyez une requête GET ou invoquez l'opération d'API DescribeCluster.

Pour EncryptionInTransit, la valeur par défaut de InCluster est true, mais vous pouvez la définir sur false si vous ne voulez pas qu'Amazon MSK chiffre vos données au fur et à mesure qu'elles passent entre les agents.

Pour spécifier le mode de chiffrement des données en transit entre les clients et les brokers, définissez ClientBroker sur l'une des trois valeurs suivantes : TLS, TLS_PLAINTEXT ou PLAINTEXT.

Pour spécifier des paramètres de chiffrement lors de la création d'un cluster
  1. Enregistrez le contenu de l'exemple précédent dans un fichier et donnez au fichier le nom souhaité. Par exemple, appelez-le encryption-settings.json.

  2. Exécutez la commande create-cluster et utilisez l'option encryption-info pour pointer vers le fichier dans lequel vous avez enregistré votre JSON de configuration. Voici un exemple. Remplacez {VOTRE VERSION MSK} par une version qui correspond à la version du client Apache Kafka. Pour de plus amples informations sur la recherche de la version de votre cluster MSK, consultez To find the version of your MSK cluster. Sachez que l'utilisation d'une version du client Apache Kafka différente de la version de votre cluster MSK peut entraîner la corruption, la perte et l'arrêt des données d'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

    Voici un exemple de réponse réussie après l'exécution de cette commande.

    { "ClusterArn": "arn:aws:kafka:us-east-1:123456789012:cluster/SecondTLSTest/abcdabcd-1234-abcd-1234-abcd123e8e8e", "ClusterName": "ExampleClusterName", "State": "CREATING" }
Pour tester le chiffrement TLS
  1. Créez une machine client en suivant les instructions de Étape 3 : Créer un ordinateur client.

  2. Installez Apache Kafka sur l'ordinateur client.

  3. Dans cet exemple, nous utilisons le magasin fiable JVM pour parler au cluster MSK. Pour ce faire, créez d'abord un dossier nommé /tmp sur l'ordinateur client. Ensuite, accédez au dossier bin de l'installation d'Apache Kafka et exécutez la commande suivante. (Votre chemin JVM peut être différent.)

    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. Dans le dossier bin de l'installation d'Apache Kafka sur l'ordinateur client, créez un fichier texte nommé client.properties avec le contenu suivant.

    security.protocol=SSL ssl.truststore.location=/tmp/kafka.client.truststore.jks
  5. Exécutez la commande suivante sur une machine sur laquelle le ClusterArn est AWS CLI installé, en remplaçant ClusterArn par l'ARN de votre cluster.

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

    Un résultat réussi ressemble à ce qui suit. Enregistrez ce résultat car vous en avez besoin pour l'étape suivante.

    { "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. Exécutez la commande suivante, en la BootstrapBrokerStringTlsremplaçant par l'un des points de terminaison du broker que vous avez obtenus à l'étape précédente.

    <path-to-your-kafka-installation>/bin/kafka-console-producer.sh --broker-list BootstrapBrokerStringTls --producer.config client.properties --topic TLSTestTopic
  7. Ouvrez une nouvelle fenêtre de commande et connectez-vous au même ordinateur client. Exécutez ensuite la commande suivante pour créer un consommateur de console.

    <path-to-your-kafka-installation>/bin/kafka-console-consumer.sh --bootstrap-server BootstrapBrokerStringTls --consumer.config client.properties --topic TLSTestTopic
  8. Dans la fenêtre du producteur, tapez un message texte suivi d'un retour et recherchez le même message dans la fenêtre du consommateur. Amazon MSK a chiffré ce message en transit.

Pour de plus amples informations sur la configuration des clients Apache Kafka pour qu'ils fonctionnent avec des données chiffrées, veuillez consulter Configuration des clients Kafka.