Come posso iniziare a usare la crittografia? - Amazon Managed Streaming per Apache Kafka

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Come posso iniziare a usare la crittografia?

Quando si crea un cluster MSK, è possibile specificare le impostazioni di crittografia in formato JSON. Di seguito è riportato un esempio.

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

PerDataVolumeKMSKeyId, puoi specificare unchiave gestita dal clienteo ilChiave gestita da AWSper MSK nel tuo account (alias/aws/kafka). Se non specifichiEncryptionAtRest, Amazon MSK continua a crittografare i dati inattivi nell'ambito delChiave gestita da AWS. Per determinare quale chiave sta utilizzando il tuo cluster, invia unGETrichiedere o invocare ilDescribeClusterFunzionamento dell'API.

PerEncryptionInTransit, il valore predefinito diInClusterè vero, ma puoi impostarlo su false se non vuoi che Amazon MSK crittografi i tuoi dati mentre passano da un broker all'altro.

Per specificare la modalità di crittografia per i dati in transito tra client e broker, imposta ClientBroker su uno di tre valori: TLS, TLS_PLAINTEXT o PLAINTEXT.

Per specificare le impostazioni di crittografia durante la creazione di un cluster
  1. Salvare il contenuto dell'esempio precedente in un file e assegnare al file il nome desiderato. Ad esempio, chiamarlo encryption-settings.json.

  2. Eseguire il comando create-cluster e utilizzare l'opzione encryption-info per puntare al file in cui il JSON di configurazione è stato salvato. Di seguito è riportato un esempio. Sostituisci{LA TUA VERSIONE DI MASCHERA}con una versione che corrisponde alla versione del client Apache Kafka. Per informazioni su come trovare la versione del cluster MSK, vedereTo find the version of your MSK cluster. Tieni presente che l'utilizzo di una versione client di Apache Kafka diversa dalla versione del cluster MSK può causare il danneggiamento, la perdita e il tempo di inattività dei dati di 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

    Di seguito è riportato un esempio di una risposta corretta dopo l'esecuzione di questo comando.

    { "ClusterArn": "arn:aws:kafka:us-east-1:123456789012:cluster/SecondTLSTest/abcdabcd-1234-abcd-1234-abcd123e8e8e", "ClusterName": "ExampleClusterName", "State": "CREATING" }
Per testare la crittografia TLS
  1. Creare un computer client seguendo le linee guida in Fase 3: Creare un computer client.

  2. Installare Apache Kafka sul computer client.

  3. Eseguire il seguente comando su un computer in cui è stato installato AWS CLI, sostituendo clusterARN con l'ARN del cluster (un cluster creato con ClientBroker impostato su TLS come l'esempio nella procedura precedente).

    aws kafka describe-cluster --cluster-arn clusterARN

    Nel risultato, cercare il valore di ZookeeperConnectString e salvalo perché è necessario nella fase successiva.

  4. Esegui il seguente comando sul tuo computer client per creare un argomento. SostituisciZookeeperConnectStringcon il valore che hai ottenuto perZookeeperConnectStringnel passaggio precedente.

    <path-to-your-kafka-installation>/bin/kafka-topics.sh --create --zookeeper ZookeeperConnectString --replication-factor 3 --partitions 1 --topic TLSTestTopic
  5. In questo esempio utilizziamo il truststore JVM per comunicare con il cluster MSK. A tale scopo, creare innanzitutto una cartella denominata /tmp sul computer client. Quindi, passare alla cartella bin dell'installazione di Apache Kafka ed eseguire il seguente comando. (Il percorso JVM potrebbe essere diverso.)

    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
  6. Sempre nella cartella bin dell'installazione di Apache Kafka sul computer client, creare un file di testo denominato client.properties con il seguente contenuto.

    security.protocol=SSL ssl.truststore.location=/tmp/kafka.client.truststore.jks
  7. Eseguire il seguente comando su un computer in cui è stato installato AWS CLI, sostituendo clusterARN con l'ARN del cluster.

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

    Se l'operazione riesce, il risultato sarà simile al seguente. Salvare questo risultato perché è necessario per la fase successiva.

    { "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" }
  8. Esegui il comando seguente per creare un produttore di console sul tuo computer client. SostituisciBootstrapBrokerStringTlscon il valore ottenuto nel passaggio precedente. Lasciare questo comando del produttore in esecuzione.

    <path-to-your-kafka-installation>/bin/kafka-console-producer.sh --broker-list BootstrapBrokerStringTls --producer.config client.properties --topic TLSTestTopic
  9. Apri una nuova finestra di comando e connettiti allo stesso computer client. Quindi, esegui il seguente comando per creare una console consumer.

    <path-to-your-kafka-installation>/bin/kafka-console-consumer.sh --bootstrap-server BootstrapBrokerStringTls --consumer.config client.properties --topic TLSTestTopic
  10. Nella finestra del produttore, digita un messaggio di testo seguito da un reso e cerca lo stesso messaggio nella finestra del consumatore. Amazon MSK ha crittografato questo messaggio in transito.

Per ulteriori informazioni sulla configurazione dei client Apache Kafka per l'utilizzo di dati crittografati, consulta Configuring Kafka Clients.