Wie kann ich mit der Verschlüsselung beginnen? - Amazon Managed Streaming für Apache Kafka

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
  1. 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“.

  2. Führen Sie den create-cluster-Befehl aus, und weisen Sie mithilfe der encryption-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 3

    Im 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
  1. Erstellen Sie einen Client-Computer entsprechend der Anweisungen in Schritt 3: Einen Client-Computer erstellen.

  2. Installieren Sie Apache Kafka auf dem Client-Computer.

  3. 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 der ClientBroker Einstellung TLS 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.

  4. Führen Sie den folgenden Befehl auf Ihrem Client-Computer aus, um ein Thema zu erstellen. ZookeeperConnectStringErsetzen Sie ihn durch den Wert, den Sie ZookeeperConnectString im vorherigen Schritt erhalten haben.

    <path-to-your-kafka-installation>/bin/kafka-topics.sh --create --zookeeper ZookeeperConnectString --replication-factor 3 --partitions 1 --topic TLSTestTopic
  5. 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
  6. Wenn Sie sich noch im bin-Ordner der Apache Kafka-Installation auf dem Client-Computer befinden, erstellen Sie eine Textdatei client.properties mit dem folgenden Inhalt.

    security.protocol=SSL ssl.truststore.location=/tmp/kafka.client.truststore.jks
  7. 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" }
  8. Führen Sie den folgenden Befehl aus, um einen Konsolenproduzenten auf Ihrem Client-Computer zu erstellen. BootstrapBrokerStringTlsErsetzen 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-list BootstrapBrokerStringTls --producer.config client.properties --topic TLSTestTopic
  9. Ö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-server BootstrapBrokerStringTls --consumer.config client.properties --topic TLSTestTopic
  10. 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.