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 MSK cluster, vous pouvez définir les paramètres de chiffrement au JSON format. Voici un exemple.

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

PourDataVolumeKMSKeyId, vous pouvez spécifier une clé gérée par le client ou le Clé gérée par AWS for MSK dans votre compte (alias/aws/kafka). Si vous ne le spécifiez pasEncryptionAtRest, Amazon chiffre MSK toujours vos données au repos conformément au Clé gérée par AWS. Pour déterminer la clé utilisée par votre cluster, envoyez une GET demande ou appelez l'DescribeClusterAPIopération.

En EncryptionInTransit effet, la valeur par défaut InCluster est true, mais vous pouvez la définir sur false si vous ne souhaitez pas qu'Amazon chiffre vos données lorsqu'elles passent d'un courtier MSK à l'autre.

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 create-cluster commande et utilisez l'encryption-infooption pour pointer vers le fichier dans lequel vous avez enregistré votre configurationJSON. Voici un exemple. Remplacez {YOUR MSK VERSION} avec une version qui correspond à la version du client Apache Kafka. Pour plus d'informations sur la façon de trouver la version de votre MSK cluster, consultezTo 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 MSK cluster 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 TLS chiffrement
  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 JVM truststore pour communiquer avec le MSK cluster. 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. (Il se peut que votre JVM parcours soit 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 est AWS CLI installé, en remplaçant clusterARN avec le 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 remplaçant BootstrapBrokerStringTls avec l'un des points de terminaison du courtier 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 a MSK chiffré ce message pendant le transport.

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.