暗号化を開始する方法 - Amazon Managed Streaming for Apache Kafka

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

暗号化を開始する方法

MSK クラスターを作成するときに、暗号化設定を JSON 形式で指定できます。次に例を示します。

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

ではDataVolumeKMSKeyIdカスタマーマネージドキーまたは を指定できます。 AWS マネージドキー アカウント (alias/aws/kafka) MSK の 。を指定しない場合MSKでもEncryptionAtRest、Amazon は で保管中のデータを暗号化します。 AWS マネージドキー。 クラスターが使用しているキーを確認するには、GETリクエストを送信するか、 DescribeClusterAPIオペレーションを呼び出します。

の場合EncryptionInTransit、 のデフォルト値InClusterは true ですが、Amazon がブローカー間でデータを暗号化しないようにする場合は、false MSK に設定できます。

クライアントとブローカー間で転送されるデータの暗号化モードを指定するには、ClientBrokerTLSTLS_PLAINTEXT、または PLAINTEXT のいずれかに設定します。

クラスターの作成時に暗号化設定を指定するには
  1. 前述の例の内容をファイルに保存し、任意の名前を付けます。たとえば、encryption-settings.json と呼びます。

  2. create-cluster コマンドを実行し、 encryption-infoオプションを使用して、設定を保存したファイル をポイントしますJSON。次に例を示します。置換 {YOUR MSK VERSION} Apache Kafka クライアントバージョンと一致するバージョンを持つ 。MSK クラスターバージョンを検索する方法については、「」を参照してくださいTo find the version of your MSK cluster。MSK クラスターバージョンと同じではない Apache Kafka クライアントバージョンを使用すると、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

    次に、このコマンドを実行した後の正常な応答の例を示します。

    { "ClusterArn": "arn:aws:kafka:us-east-1:123456789012:cluster/SecondTLSTest/abcdabcd-1234-abcd-1234-abcd123e8e8e", "ClusterName": "ExampleClusterName", "State": "CREATING" }
TLS 暗号化をテストするには
  1. ステップ 3: クライアントマシンを作成する のガイダンスに従って、クライアントマシンを作成します。

  2. クライアントマシンに Apache Kafka をインストールします。

  3. この例では、JVM信頼ストアを使用してMSKクラスターと通信します。これを行うには、まずクライアントマシンに /tmp という名前のフォルダを作成します。次に、Apache Kafka インストールの bin フォルダに移動し、次のコマンドを実行します。(JVMパスは異なる場合があります)。

    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
  4. クライアントマシン上の Apache Kafka インストールの bin フォルダに、次の内容の client.properties というテキストファイルを作成します。

    security.protocol=SSL ssl.truststore.location=/tmp/kafka.client.truststore.jks
  5. を持つマシンで次のコマンドを実行します。 AWS CLI インストール済み、置き換え clusterARN クラスターARNの を使用します。

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

    正常に実行された場合の結果は次のようになります。次のステップで必要になるため、この結果を保存します。

    { "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" }
  6. 次のコマンドを実行し、BootstrapBrokerStringTls は、前のステップで取得したブローカーエンドポイントの 1 つを使用します。

    <path-to-your-kafka-installation>/bin/kafka-console-producer.sh --broker-list BootstrapBrokerStringTls --producer.config client.properties --topic TLSTestTopic
  7. 新しいコマンドウィンドウを開き、同じクライアントマシンに接続します。その後、次のコマンドを実行して、コンソールコンシューマーを作成します。

    <path-to-your-kafka-installation>/bin/kafka-console-consumer.sh --bootstrap-server BootstrapBrokerStringTls --consumer.config client.properties --topic TLSTestTopic
  8. プロデューサーウィンドウで、テキストメッセージに続けてリターンを入力し、コンシューマーウィンドウで同じメッセージを探します。Amazon は転送中にこのメッセージをMSK暗号化しました。

暗号化されたデータを操作するように Apache Kafka クライアントを設定する方法の詳細については、「Kafka クライアントの設定」を参照してください。