通信セキュリティ設定¶
以下のセクションでは、通信設定の構成について説明します。
MQTT Proxy と MQTT クライアント間¶
MQTT Proxy と MQTT 間で使用可能な通信設定は、以下のとおりです。
セキュリティ設定
以下のモードがサポートされています。
- PLAINTEXT
- SSL
- TLS
- SASL_PLAINTEXT
- SASL_SSL
- SASL_TLS
listeners.security.protocol
プロパティを設定して、これらを構成することができます。デフォルトでは、認証および暗号化されないチャンネルが使用されます。
listeners.security.protocol |
認証 | 暗号化 |
---|---|---|
PLAINTEXT | × | × |
SSL | × | ○ |
TLS | × | ○ |
SASL_PLAINTEXT | ○ | × |
SASL_SSL | ○ | ○ |
SASL_TLS | ○ | ○ |
認証設定
認証を構成および使用するには、listeners.security.protocol=SASL_PLAINTEXT
、listeners.security.protocol=SASL_SSL
、または listeners.security.protocol=SASL_TLS
を設定する必要があります。次に、通常の JAAS 構成ファイルを JVM オプションとして渡すことができます。たとえば、
export KAFKA_OPTS="-Djava.security.auth.login.config=<path/to/JAAS-config-file>"
MQTT Proxy には、デフォルトのログインモジュールである io.confluent.mqtt.protocol.security.PropertyFileLoginModule
が付属します。このモジュールは、ローカルのプロパティファイルと照合してユーザーを認証します。これは開発テストにおいて使用できますが、本稼働環境では使用しません。
# Sample JAAS file
ConfluentKafkaMqtt {
io.confluent.mqtt.protocol.security.PropertyFileLoginModule required
file="/tmp/credentials.txt";
};
暗号化設定
デフォルトでは、暗号化は無効になっています。有効にするには、listeners.security.protocol=SSL
、listeners.security.protocol=SASL_SSL
、listeners.security.protocol=TLS
、または listeners.security.protocol=SASL_TLS
を設定する必要があります。次に、目的の org.apache.kafka.common.config.SslConfigs <../clients/javadocs/index.html?org/apache/kafka/common/config/SslConfigs.html> を渡すことができます。セキュリティの設定の詳細については、「セキュリティのチュートリアル」を参照してください。暗号化の問題をデバッグするには、VM オプションの -Djavax.net.debug=all
を追加します。
MQTT Proxy と Kafka 間¶
MQTT Proxy と Kafka 間で使用可能な通信設定は、以下のとおりです。
セキュリティ設定
以下のモードがサポートされています。
- PLAINTEXT
- SSL
- SASL_PLAINTEXT
- SASL_SSL
producer.security.protocol
プロパティを設定して、これらを構成することができます。デフォルトでは、認証および暗号化されないチャンネルが使用されます。
producer.security.protocol |
認証 | 暗号化 |
---|---|---|
PLAINTEXT | × | × |
SSL | × | ○ |
SASL_PLAINTEXT | ○ | × |
SASL_SSL | ○ | ○ |
producer.security.protocal
に加えて、他にもいくつかのセキュリティプロパティを構成する必要があります。producer*
のプレフィックスが付いたすべてのプロパティは、(Kafka への書き込みのために)プロキシにより作成された基盤となるプロデューサーに伝播されることに注意してください。以下は、SASL_SSL
構成プロパティの例を示しています。
producer.security.protocol=SASL_SSL
producer.ssl.truststore.location=/var/ssl/private/kafka.client.truststore.jks
producer.ssl.truststore.password=<password>
producer.sasl.mechanism=PLAIN
producer.sasl.jaas.config=org.apache.kafka.common.security.plain.PlainLoginModule required \
username="<username>" \
password="<password>";
- プロデューサーのおよびプロデューサーの構成に関する詳細ついては、「Kafka プロデューサー」を参照してください。
- すべてのプロデューサー構成プロパティについては、「プロデューサーの構成」を参照してください。
- セキュリティの設定の詳細については、「セキュリティの概要」を参照してください。