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 unGET
richiedere o invocare ilDescribeCluster
Funzionamento 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
Salvare il contenuto dell'esempio precedente in un file e assegnare al file il nome desiderato. Ad esempio, chiamarlo
encryption-settings.json
.-
Eseguire il comando
create-cluster
e utilizzare l'opzioneencryption-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 3Di 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
Creare un computer client seguendo le linee guida in Fase 3: Creare un computer client.
-
Installare Apache Kafka sul computer client.
-
Eseguire il seguente comando su un computer in cui è stato installato AWS CLI, sostituendo
clusterARN
con l'ARN del cluster (un cluster creato conClientBroker
impostato suTLS
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. -
Esegui il seguente comando sul tuo computer client per creare un argomento. Sostituisci
ZookeeperConnectString
con il valore che hai ottenuto perZookeeperConnectString
nel passaggio precedente.<path-to-your-kafka-installation>
/bin/kafka-topics.sh --create --zookeeperZookeeperConnectString
--replication-factor 3 --partitions 1 --topic TLSTestTopic -
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 cartellabin
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
-
Sempre nella cartella
bin
dell'installazione di Apache Kafka sul computer client, creare un file di testo denominatoclient.properties
con il seguente contenuto.security.protocol=SSL ssl.truststore.location=/tmp/kafka.client.truststore.jks
-
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" }
-
Esegui il comando seguente per creare un produttore di console sul tuo computer client. Sostituisci
BootstrapBrokerStringTls
con il valore ottenuto nel passaggio precedente. Lasciare questo comando del produttore in esecuzione.<path-to-your-kafka-installation>
/bin/kafka-console-producer.sh --broker-listBootstrapBrokerStringTls
--producer.config client.properties --topic TLSTestTopic -
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-serverBootstrapBrokerStringTls
--consumer.config client.properties --topic TLSTestTopic -
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