メインコンテンツへ移動

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

注意

本製品では mingdaoyun-hdp と mingdaoyun-flink の両イメージで 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"