Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Wie kann ich mit der Verschlüsselung beginnen?
Beim Erstellen eines MSK-Clusters können Sie Verschlüsselungseinstellungen im JSON-Format angeben. Im Folgenden wird ein Beispiel gezeigt.
{ "EncryptionAtRest": { "DataVolumeKMSKeyId": "arn:aws:kms:us-east-1:123456789012:key/abcdabcd-1234-abcd-1234-abcd123e8e8e" }, "EncryptionInTransit": { "InCluster": true, "ClientBroker": "TLS" } }
Für DataVolumeKMSKeyId
können Sie einen vom Kunden verwalteten Schlüssel oder den Von AWS verwalteter Schlüssel für MSK in Ihrem Konto angeben (alias/aws/kafka
). Wenn Sie nichts angebenEncryptionAtRest
, verschlüsselt Amazon MSK Ihre ruhenden Daten trotzdem unter dem. Von AWS verwalteter Schlüssel Um festzustellen, welchen Schlüssel Ihr Cluster verwendet, senden Sie eine GET
-Anforderung oder rufen Sie den DescribeCluster
-API-Vorgang auf.
Für EncryptionInTransit
ist der Standardwert von InCluster
auf Wahr festgelegt, aber Sie können ihn auf Falsch setzen, wenn Sie Ihre Daten bei der Übergabe zwischen Brokern nicht von Amazon MSK verschlüsseln lassen möchten.
Um den Verschlüsselungsmodus für die Übertragung von Daten zwischen Clients und Brokern anzugeben, legen Sie ClientBroker
auf einen der drei Werte folgenden fest: TLS
, TLS_PLAINTEXT
, oder PLAINTEXT
.
So legen Sie die Verschlüsselungseinstellungen beim Erstellen eines Clusters fest
Speichern Sie den Inhalt des vorherigen Beispiels in einer Datei und geben Sie der Datei einen beliebigen Namen. Nennen Sie sie beispielsweise „
encryption-settings.json
“.-
Führen Sie den
create-cluster
-Befehl aus, und weisen Sie mithilfe derencryption-info
-Option auf die Datei, in der Sie Ihr Konfigurations-JSON gespeichert haben. Im Folgenden wird ein Beispiel gezeigt. Ersetzen Sie{YOUR MSK VERSION}
durch eine Version, die der Apache-Kafka-Client-Version entspricht. Weitere Informationen zum Auffinden der MSK-Cluster-Version finden Sie unter To find the version of your MSK cluster. Beachten Sie, dass die Verwendung einer Apache-Kafka-Client-Version, die nicht mit Ihrer MSK-Cluster-Version identisch ist, zu Beschädigung, Verlust und Ausfallzeiten von Apache-Kafka-Daten führen kann.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 3Im Folgenden finden Sie ein Beispiel für eine erfolgreiche Antwort nach der Ausführung dieses Befehls.
{ "ClusterArn": "arn:aws:kafka:us-east-1:123456789012:cluster/SecondTLSTest/abcdabcd-1234-abcd-1234-abcd123e8e8e", "ClusterName": "ExampleClusterName", "State": "CREATING" }
So testen Sie die TLS-Verschlüsselung
Erstellen Sie einen Client-Computer entsprechend der Anweisungen in Schritt 3: Einen Client-Computer erstellen.
-
Installieren Sie Apache Kafka auf dem Client-Computer.
-
Führen Sie den folgenden Befehl auf einem Computer aus, auf dem das AWS CLI installiert ist, und ersetzen
clusterARN
ClusterArn durch den ARN Ihres Clusters (ein Cluster, der mit derClientBroker
EinstellungTLS
wie im Beispiel im vorherigen Verfahren erstellt wurde).aws kafka describe-cluster --cluster-arn
clusterARN
Suchen Sie im Ergebnis nach dem Wert von
ZookeeperConnectString
und speichern Sie ihn, da Sie ihn im nächsten Schritt benötigen. -
Führen Sie den folgenden Befehl auf Ihrem Client-Computer aus, um ein Thema zu erstellen.
ZookeeperConnectString
Ersetzen Sie ihn durch den Wert, den SieZookeeperConnectString
im vorherigen Schritt erhalten haben.<path-to-your-kafka-installation>
/bin/kafka-topics.sh --create --zookeeperZookeeperConnectString
--replication-factor 3 --partitions 1 --topic TLSTestTopic -
In diesem Beispiel verwenden wir den JVM-Vertrauensspeicher, um mit dem MSK-Cluster zu kommunizieren. Erstellen Sie dazu zunächst einen Ordner mit dem Namen
/tmp
auf dem Client-Computer. Wechseln Sie dann zum Ordner „bin
“ der Apache Kafka-Installation und führen Sie den folgenden Befehl aus. (Ihr JVM-Pfad kann sich unterscheiden.)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
-
Wenn Sie sich noch im
bin
-Ordner der Apache Kafka-Installation auf dem Client-Computer befinden, erstellen Sie eine Textdateiclient.properties
mit dem folgenden Inhalt.security.protocol=SSL ssl.truststore.location=/tmp/kafka.client.truststore.jks
-
Führen Sie den folgenden Befehl auf einem Computer aus, auf dem das AWS CLI installiert ist, und ersetzen Sie
ClusterArn
durch den ARN Ihres Clusters.aws kafka get-bootstrap-brokers --cluster-arn
clusterARN
Ein erfolgreiches Ergebnis sieht wie folgt aus. Speichern Sie dieses Ergebnis, da Sie es für den nächsten Schritt benötigen.
{ "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" }
-
Führen Sie den folgenden Befehl aus, um einen Konsolenproduzenten auf Ihrem Client-Computer zu erstellen.
BootstrapBrokerStringTls
Ersetzen Sie ihn durch den Wert, den Sie im vorherigen Schritt erhalten haben. Lassen Sie diesen Herstellerbefehl weiterhin ausführen.<path-to-your-kafka-installation>
/bin/kafka-console-producer.sh --broker-listBootstrapBrokerStringTls
--producer.config client.properties --topic TLSTestTopic -
Öffnen Sie ein neues Befehlsfenster und stellen Sie eine Verbindung zu demselben Client-Computer her. Führen Sie dann den folgenden Befehl aus, um einen Konsolenverbraucher zu erstellen.
<path-to-your-kafka-installation>
/bin/kafka-console-consumer.sh --bootstrap-serverBootstrapBrokerStringTls
--consumer.config client.properties --topic TLSTestTopic -
Geben Sie im Produzent-Fenster eine Textnachricht gefolgt von einem Zeilenumbruch ein, und suchen Sie im Verbraucher-Fenster nach derselben Nachricht. Amazon MSK hat diese Nachricht während der Übertragung verschlüsselt.
Weitere Informationen zum Konfigurieren von Apache Kafka-Clients für die Arbeit mit verschlüsselten Daten finden Sie unter Konfigurieren von Kafka-Clients