翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
デバイス通信プロトコル
AWS IoT Core は、 MQTTおよび MQTT over WebSocket Secure (WSS) プロトコルを使用してメッセージを発行およびサブスクライブするデバイスとクライアント、およびHTTPSプロトコルを使用してメッセージを発行するデバイスとクライアントをサポートします。すべてのプロトコルは IPv4と をサポートしていますIPv6。このセクションでは、デバイスおよびクライアントのさまざまな接続オプションについて説明します。
TLS プロトコルバージョン
AWS IoT Core はTLS
AWS IoT デバイス SDKs サポートはMQTT、クライアント接続のセキュリティ要件MQTTWSSをサポートします。AWS IoT デバイス SDKs を使用してクライアントを AWS IoTに接続することをお勧めします。
プロトコル、ポートマッピング、認証
デバイスまたはクライアントがメッセージブローカーに接続する方法は、[認証タイプ] を使用して設定できます。デフォルトでは、またはSNI拡張機能が送信されない場合、認証方法は、デバイスが使用するアプリケーションプロトコル、ポート、および Application Layer Protocol Negotiation (ALPN) TLS拡張機能に基づいています。次の表に、ポート、ポート、および に基づいて想定される認証を示しますALPN。
プロトコル | サポートされているオペレーション | 認証 | ポート | ALPN プロトコル名 |
---|---|---|---|---|
MQTT 経由 WebSocket |
発行、サブスクライブ | 署名バージョン 4 | 443 |
該当なし |
MQTT 経由 WebSocket |
発行、サブスクライブ | カスタム認証 | 443 |
該当なし |
MQTT |
発行、サブスクライブ |
X.509 クライアント証明書 |
443† |
|
MQTT | 発行、サブスクライブ | X.509 クライアント証明書 | 8883 | 該当なし |
MQTT |
発行、サブスクライブ |
カスタム認証 |
443† |
|
HTTPS |
発行のみ |
署名バージョン 4 |
443 |
該当なし |
HTTPS |
発行のみ |
X.509 クライアント証明書 |
443† |
|
HTTPS | 発行のみ | X.509 クライアント証明書 | 8443 | 該当なし |
HTTPS | 発行のみ | カスタム認証 | 443 | 該当なし |
Application Layer プロトコルネゴシエーション (ALPN)
†デフォルトのエンドポイント設定を使用する場合、X.509 クライアント証明書認証を使用してポート 443 に接続するクライアントは、Application Layer Protocol Negotiation (ALPN)ClientHello
メッセージの一部としてALPN ProtocolNameList 送信した にリストされているALPNプロトコル名
ポート 443 では、IoT:Data-ATS エンドポイントは ALPN x-amzn-http-ca をサポートしていますがHTTP、IoT:Jobs エンドポイントはサポートしていません。
MQTT を使用するポート 8443 HTTPSおよびポート 443 ではALPN x-amzn-mqtt-ca、カスタム認証を使用できません。
クライアントは AWS アカウント、デバイスのエンドポイントに接続します。アカウントのデバイスエンドポイントを見つける方法については、AWS IoT デバイスデータとサービスエンドポイント を参照してください。
注記
AWS SDKs 全体は必要ありませんURL。pubsub.py
で AWS IoT Device SDK for Python のサンプル GitHub
プロトコル |
エンドポイントまたは URL |
---|---|
MQTT |
|
MQTT 経由 WSS |
|
HTTPS |
|
デバイス通信用のアプリケーションプロトコルの選択
デバイスエンドポイントを介したほとんどの IoT デバイス通信では、Secure MQTTまたは MQTT over WebSocket Secure (WSS) プロトコルを使用します。ただし、デバイスエンドポイントは もサポートしていますHTTPS。
次の表は、 がデバイス通信に 2 つの高レベルプロトコル (MQTT と HTTPS) AWS IoT Core を使用する方法を比較したものです。
機能 |
||
---|---|---|
発行/サブスクライブのサポート |
発行とサブスクライブ |
発行のみ |
SDK サポート |
AWS デバイスのSDKsサポートMQTTとWSSプロトコル |
SDK サポートはありませんが、言語固有の方法を使用してHTTPSリクエストを行うことができます |
サービス品質のサポート |
QoS は、クエリ文字列パラメータを渡すことによってサポートされ、?qos=qos ここで、値は0または1にすることができます。このクエリ文字列を追加して、必要な QoS 値を持つメッセージが発行できます。 |
|
デバイスがオフラインのときに受信しなかったメッセージを受信できる | あり | いいえ |
|
はい |
いいえ |
デバイスの切断検出 |
はい |
いいえ |
安全な通信 |
はい。「プロトコル、ポートマッピング、認証」を参照してください。 |
はい。「プロトコル、ポートマッピング、認証」を参照してください。 |
トピックの定義 |
定義されているアプリケーション |
定義されているアプリケーション |
メッセージデータ形式 |
定義されているアプリケーション |
定義されているアプリケーション |
プロトコルのオーバーヘッド | Lower | より高い |
消費電力 | Lower | より高い |
デバイス通信の認証タイプの選択
設定可能なエンドポイントを使用して、IoT エンドポイントの認証タイプを設定できます。または、デフォルト設定を使用して、デバイスがアプリケーションプロトコル、ポート、ALPNTLS拡張機能の組み合わせで認証する方法を決定します。選択した認証タイプによって、接続時のデバイスの認証方法が決まります AWS IoT Core。5 つの認証タイプがあります。
X.509 証明書
X.509 クライアント証明書を使用してデバイスを認証します。これにより、 がデバイスを認証すること AWS IoT Core を検証します。この認証タイプは、Secure MQTT (MQTT 経由TLS) および HTTPSプロトコルで動作します。
カスタムオーソライザーを使用した X.509 証明書
X.509 クライアント証明書を使用してデバイスを認証し、X.509 クライアント証明書情報を受信するカスタムオーソライザーを使用して追加の認証アクションを実行します。この認証タイプは、Secure MQTT (MQTT 経由TLS) および HTTPSプロトコルで動作します。この認証タイプは、X.509 カスタム認証で設定可能なエンドポイントでのみ使用できます。ALPN オプションはありません。
AWS 署名バージョン 4 (SigV4)
Cognito またはバックエンドサービスを使用してデバイスを認証し、ソーシャルフェデレーションとエンタープライズフェデレーションをサポートします。この認証タイプは、 WebSocket Secure (WSS) および HTTPSプロトコルMQTTを介して で機能します。
カスタムオーソライザー
Lambda 関数を設定してデバイスを認証し、 AWS IoT Coreに送信されるカスタム認証情報を処理します。この認証タイプはHTTPS、Secure MQTT (MQTT 経由TLS)、、および WebSocket Secure (WSS) プロトコルMQTT経由で動作します。
デフォルト
デバイスが使用するポートやアプリケーションレイヤーのプロトコルネゴシエーション (ALPN) 拡張機能に基づいてデバイスを認証します。一部の追加の認証オプションはサポートされていません。詳細については、「プロトコル、ポートマッピング、認証」を参照してください。
以下の表は、サポートされている認証タイプとアプリケーションプロトコルのすべての組み合わせを示しています。
認証タイプ | セキュア MQTT (MQTT 経由TLS) | MQTT WebSocket セキュア経由 (WSS) | HTTPS | デフォルト値 |
---|---|---|---|---|
X.509 証明書 | ✓ | ✓ | ||
カスタムオーソライザーを使用した X.509 証明書 | ✓ | ✓ | ||
AWS 署名バージョン 4 (SigV4) | ✓ | ✓ | ||
カスタムオーソライザー | ✓ | ✓ | ✓ | |
デフォルト | ✓ | ✓ |
接続時間の制限
HTTPS 接続は、リクエストの受信と応答にかかる時間よりも長く続くとは限りません。
MQTT 接続期間は、使用する認証機能によって異なります。次の表では、各機能の最適な条件下での最大接続時間が一覧表示されています。
機能 |
最大時間 * |
---|---|
X.509 クライアント証明書 |
1~2 週間 |
カスタム認証 |
1~2 週間 |
署名バージョン 4 |
最長 24 時間 |
* 保証なし
X.509 証明書やカスタム認証では、接続時間に厳しい制限はありません。数分程度に短縮することも可能です。接続の中断は、さまざまな理由で発生します。次のリストには、最も一般的な理由の一部が含まれています。
-
Wi-Fi 可用性の中断
-
インターネットサービスプロバイダー (ISP) の接続の中断
-
サービスのパッチ
-
サービスのデプロイ
-
サービスのオートスケーリング
-
使用できないサービスホスト
-
ロードバランサーの問題および更新
-
クライアント側エラー
デバイスで、切断を検出して再接続するための戦略を実装する必要があります。接続解除イベントとその処理方法に関するガイダンスについては、ライフサイクルイベントの接続/切断イベントを参照してください。