セキュリティガイド
セキュリティはMQTTベースのアプリケーションにおいて非常に重要な要素であり、本ガイドはEMQXのデプロイにおいて堅牢なセキュリティ対策を理解し実装するための支援を目的としています。本章では、アクセス制御、認可、そしてTransport Layer Security(TLS)を用いたネットワークセキュリティに焦点を当てて解説します。
本番環境向けのチェックリストを使用して、リスナーの公開範囲、TLS、認証、認可、シークレットの管理、監視などを展開前に確認してください。
EMQXがエンドツーエンドの暗号化通信をどのようにサポートしているか、SSL/TLS接続の有効化やSSL/TLS証明書の取得方法について説明します。
file://プレフィックスをシークレット型の設定フィールドに付けることで、emqx.confやAPIリクエストに直接埋め込む代わりに、起動時およびリロード時にファイルから値を読み込むことができます。認証はクライアントの身元を検証するプロセスであり、多くのアプリケーションにおいて不可欠です。これにより不正なクライアント接続からサービスを保護できます。EMQXは以下の複数の認証方式をサポートし、クライアントの保護を強化しています。
- X.509証明書認証
- ユーザー名/パスワード認証
- JWT認証
- MQTT 5.0の拡張認証
- PSK認証
本節では、これらの認証方式の仕組みとEMQXでの設定方法を紹介します。
EMQXにおける認可とは、MQTTクライアントのパブリッシュ/サブスクライブ操作に対する権限管理を指します。本章では、組み込みデータベースやACLファイルの利用方法、またMySQL、PostgreSQL、MongoDB、Redisとの連携による認可ルールの設定方法を解説します。
EMQXはブラックリスト/禁止機能を提供しています。システム管理者はダッシュボードやHTTP APIを通じて、クライアントID、ユーザー名、IPアドレスを指定して特定のクライアントのアクセスをブロックできます。
EMQXは頻繁にログインを繰り返すクライアントを自動的に禁止し、他のクライアントに影響を与える可能性のあるサーバーリソースの消費を防止します。