メインコンテンツへ移動

Kafka 接続のセキュリティ設定

注意

本製品の hap、hdp、flink の3つのイメージはいずれも Kafka を使用しています。セキュリティ設定を変更する場合は、すべてのイメージで設定を変更してください。

接続設定パラメーター​

環境変数説明デフォルト値
ENV_KAFKA_ENDPOINTSKafka Broker のアドレス一覧。複数のアドレスはカンマで区切ります127.0.0.1:9092
ENV_KAFKA_SECURITY_PROTOCOLKafka のセキュリティプロトコル空
ENV_KAFKA_SASL_MECHANISMSASL 認証方式空
ENV_KAFKA_SASL_USERNAMESASL ユーザー名空
ENV_KAFKA_SASL_PASSWORDSASL パスワード空
ENV_KAFKA_SSL_CA_LOCATIONKafka CA 証明書のパス空
ENV_KAFKA_SSL_CLIENT_CA_LOCATIONKafka クライアント証明書のパス空
ENV_KAFKA_SSL_CLIENT_KEY_LOCATIONKafka クライアント秘密鍵のパス空

セキュリティプロトコル​

Kafka は Plaintext、SaslPlaintext、Ssl、SaslSsl など、複数のセキュリティ認証モードに対応しています。

1. Plaintext(デフォルト)​

セキュリティ認証を使用せず、平文で通信します。SASL や SSL 関連のパラメーターを設定する必要はありません。

2. SaslPlaintext(SASL 認証を有効にする)​

SASL による認証を使用しますが、データは平文で転送されます。

設定ファイルに次の環境変数を追加してください。

環境変数説明
ENV_KAFKA_SECURITY_PROTOCOLSaslPlaintext に設定
ENV_KAFKA_SASL_MECHANISMSASL 認証方式。PLAIN 固定
ENV_KAFKA_SASL_USERNAMESASL ユーザー名
ENV_KAFKA_SASL_PASSWORDSASL パスワード

3. Ssl(TLS 暗号化を有効にする)​

TLS/SSL による暗号化通信を使用します。SASL 認証は使用しません。

設定ファイルに次の環境変数を追加してください。

環境変数説明
ENV_KAFKA_SECURITY_PROTOCOLSsl に設定
ENV_KAFKA_SSL_CA_LOCATIONCA ルート証明書のパス
ENV_KAFKA_SSL_CLIENT_CA_LOCATIONクライアント証明書のパス
ENV_KAFKA_SSL_CLIENT_KEY_LOCATIONクライアント秘密鍵のパス

4. SaslSsl(SASL + TLS を有効にする)​

SASL 認証と SSL 暗号化通信の両方を使用します(推奨のセキュリティモード)。

設定ファイルに次の環境変数を追加してください。

環境変数説明
ENV_KAFKA_SECURITY_PROTOCOLSaslSsl に設定
ENV_KAFKA_SASL_MECHANISMSASL 認証方式。PLAIN 固定
ENV_KAFKA_SASL_USERNAMESASL ユーザー名
ENV_KAFKA_SASL_PASSWORDSASL パスワード
ENV_KAFKA_SSL_CA_LOCATIONCA ルート証明書(PEM 形式)
ENV_KAFKA_SSL_CLIENT_CA_LOCATIONクライアント証明書(PEM 形式)
ENV_KAFKA_SSL_CLIENT_KEY_LOCATIONクライアント秘密鍵(PEM 形式)

TLS 証明書の設定​

Ssl または SaslSsl を使用する場合は、コンテナ内に TLS 証明書を配置する必要があります。

証明書ファイル

次の PEM 形式の証明書と秘密鍵を用意してください。

ファイル説明
ca.crtKafka CA ルート証明書
client.crtクライアント証明書
client.keyクライアント秘密鍵

ディレクトリ構成例:

volume/kafka/
├─ ca.crt
├─ client.crt
└─ client.key

Docker で証明書をマウントする例

証明書をコンテナ内にマウントします。

volumes:
- ./volume/kafka/ca.crt:/usr/local/kafka/ca.crt
- ./volume/kafka/client.crt:/usr/local/kafka/client.crt
- ./volume/kafka/client.key:/usr/local/kafka/client.key

対応する環境変数は次のとおりです。環境変数に指定するパスを、コンテナ内のパスと一致させてください。

ENV_KAFKA_SSL_CA_LOCATION: "/usr/local/kafka/ca.crt"
ENV_KAFKA_SSL_CLIENT_CA_LOCATION: "/usr/local/kafka/client.crt"
ENV_KAFKA_SSL_CLIENT_KEY_LOCATION: "/usr/local/kafka/client.key"