Quali sono i primi passi per iniziare a utilizzare 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à.

Quali sono i primi passi per iniziare a utilizzare la crittografia?

Durante la creazione di un cluster MSK, puoi 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" } }

Per DataVolumeKMSKeyId, puoi specificare una chiave gestita dal cliente o la Chiave gestita da AWS per MSK nel tuo account (alias/aws/kafka). Se non lo specifichiEncryptionAtRest, Amazon MSK crittografa comunque i tuoi dati inattivi in base a. Chiave gestita da AWS Per determinare la chiave utilizzata dal cluster, invia una richiesta GET o richiama l'operazione API DescribeCluster.

Per EncryptionInTransit, il valore predefinito di InCluster è true, ma puoi impostarlo su false se Amazon MSK non deve crittografare i dati durante il passaggio tra i broker.

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 {YOUR MSK VERSION} con una versione che corrisponda alla versione del client Apache Kafka. Per informazioni su come trovare la versione del cluster MSK in uso, consulta la pagina To find the version of your MSK cluster. Tieni presente che l'utilizzo di una versione del client Apache Kafka diversa da quella del cluster MSK può causare il danneggiamento, la perdita dei dati e tempi di inattività 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 Passaggio 3: creazione di un computer client.

  2. Installare Apache Kafka sul computer client.

  3. Esegui il comando seguente su un computer su cui è AWS CLI installato, sostituendo clusterARN con l'ARN del tuo cluster (un cluster ClientBroker creato con TLS set to like nell'esempio della procedura precedente).

    aws kafka describe-cluster --cluster-arn clusterARN

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

  4. Per creare un argomento, esegui il comando seguente sul computer client. Sostituisci ZookeeperConnectStringcon il valore ottenuto ZookeeperConnectString nel 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. Esegui il comando seguente su un computer su cui è AWS CLI installato, sostituendo clusterARN con l'ARN del tuo 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 computer client. Sostituisci BootstrapBrokerStringTlscon 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 comando seguente per creare un utente della console.

    <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 invio 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.