MQTT クライアント ID の競合
複数のデバイスが同じクライアント ID を使用して接続します。
このチェックは、CLI および API で CONFLICTING_CLIENT_IDS_CHECK
として表示されます。
重大度: 高
詳細
同じクライアント ID を使用して複数の接続が行われ、既に接続されたデバイスが切断されます。MQTT 仕様では、クライアント ID あたり 1 つのアクティブな接続のみが許可されるため、同じクライアント ID を使用して別のデバイスが接続した場合、前の接続が中断されます。
オンデマンド監査の一部として実行された場合、このチェック項目は、監査の開始前 31 日間に接続するために clientID がどのように使用されたかを調べます。スケジュールされた監査では、このチェック項目は、前回監査が実行された時間からこの監査インスタンスが開始された時間までのデータを調べます。チェック時にこの条件を緩和するステップを実行した場合、問題が残っているかどうかを判断するために接続/切断がいつ行われたかに注目してください。
このチェックにより不適合が見つかった場合、次の理由コードが返されます。
-
DUPLICATE_CLIENT_ID_ACROSS_CONNECTIONS
このチェック項目によって返される結果には、接続に使用された clientID、プリンシパル ID、切断時間も含まれます。最新の結果が最初に一覧表示されます。
重要な理由
ID が競合するデバイスは、継続して強制的に再接続されるため、メッセージが失われたり、デバイスが接続できなくなる可能性があります。
これは、デバイスまたはデバイスの認証情報が侵害されたか、DDoS 攻撃の一部であることを示している可能性があります。アカウントでデバイスが正しく設定されていない可能性や、デバイスが接続不良のために 1 分あたり数回再接続を強制された可能性もあります。
修正方法
AWS IoT で各デバイスを一意のモノとして登録し、モノの名前をクライアント ID として使用して接続します。または、MQTT を介してデバイスを接続するときに、クライアント ID として UUID を使用します。緩和アクションを使用して、以下を行うこともできます。
-
Amazon SNS メッセージに対する応答としてカスタムレスポンスを実装する場合は、
PUBLISH_FINDINGS_TO_SNS
緩和アクションを適用します。
詳細については、「緩和アクション」を参照してください。