Skip to content

セキュリティガイド

セキュリティはMQTTベースのアプリケーションにおいて非常に重要な要素であり、本ガイドはEMQXのデプロイにおいて堅牢なセキュリティ対策を理解し実装するための支援を目的としています。本章では、アクセス制御、認可、そしてTransport Layer Security(TLS)を用いたネットワークセキュリティに焦点を当て、さまざまなセキュリティ関連のトピックを解説します。

  • セキュリティチェックリスト

    本番環境向けのチェックリストを用いて、リスナーの公開範囲、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へのアクセスをブロックできます。

  • フラッピング検知

    EMQXは頻繁にログインを繰り返すクライアントを自動的に禁止し、他のクライアントに影響を与える可能性のあるサーバーリソースの消費を防止します。