デバイスプロビジョニング MQTT API - AWS IoT Core

デバイスプロビジョニング MQTT API

フリートプロビジョニングサービスは、次の MQTT API をサポートします。

この API は、トピックのペイロード形式に応じて、簡潔なバイナリオブジェクト表現 (CCOR) 形式および JavaScript Object Notation (JSON) 形式のレスポンスバッファをサポートします。ただし、わかりやすくするために、このセクションのレスポンスとリクエストの例を JSON 形式で示します。

ペイロード形式 レスポンス形式のデータ型
cbor 簡潔なバイナリオブジェクトの表現 (CCOR)
json JavaScript Object Notation (JSON)
重要

リクエストメッセージトピックを発行する前に、応答トピックをサブスクライブしてレスポンスを受信します。この API で使用されるメッセージは、MQTT のパブリッシュ/サブスクライブプロトコルを使用して、リクエストとレスポンスの相互作用を提供します。

リクエストを発行する前にレスポントピックをサブスクライブしていない場合、そのリクエストの結果を受信できない可能性があります。

CreateCertificateFromCsr

証明書署名リクエスト (CSR) から証明書を作成します。AWS IoT は、Amazon ルート認証局 (CA) によって署名されたクライアント証明書を提供します。新しい証明書には PENDING_ACTIVATION ステータスがあります。RegisterThing を呼び出して、この証明書を使用してモノをプロビジョニングすると、テンプレートで説明されているように、証明書のステータスが ACTIVE または INACTIVE に変わります。

注記

セキュリティ上の理由から、CreateCertificateFromCsr によって返される certificateOwnershipToken は 1 時間後に有効期限切れになります。certificateOwnershipToken が有効期限切れになる前に、RegisterThing を呼び出す必要があります。CreateCertificateFromCsr によって作成された証明書がトークンの有効期限が切れるまでにアクティベートされず、ポリシーまたはモノにアタッチされない場合、証明書は削除されます。トークンの有効期限が切れた場合、デバイスは CreateCertificateFromCsr を呼び出して新しい証明書を生成します。

CreateCertificateFromCsr リクエスト

$aws/certificates/create-from-csr/payload-format トピックを含むメッセージを発行します。

payload-format

メッセージペイロード形式 (cbor または json)。

CreateCertificateFromCsr リクエストペイロード

{ "certificateSigningRequest": "string" }
certificateSigningRequest

PEM 形式の CSR。

CreateCertificateFromCsr レスポンス

$aws/certificates/create-from-csr/payload-format/accepted​ をサブスクライブします。

payload-format

メッセージペイロード形式 (cbor または json)。

CreateCertificateFromCsr レスポンスペイロード

{ "certificateOwnershipToken": "string", "certificateId": "string", "certificatePem": "string" }
certificateOwnershipToken

プロビジョニング中に証明書の所有権を証明するトークン。

certificateId

証明書の ID。証明書管理オペレーションでは、証明書 ID のみが使用されます。

certificatePem

PEM 形式の証明書データ。

CreateCertificateFromCsr エラー

エラーレスポンスを受信するには、$aws/certificates/create-from-csr/payload-format/rejected をサブスクライブします。

payload-format

メッセージペイロード形式 (cbor または json)。

CreateCertificateFromCsr エラーペイロード

{ "statusCode": int, "errorCode": "string", "errorMessage": "string" }
statusCode

ステータスコード。

errorCode

エラーコード。

errorMessage

エラーメッセージ。

CreateKeysAndCertificate

新しいキーと証明書を作成します。AWS IoT は、Amazon ルート認証局 (CA) によって署名されたクライアント証明書を提供します。新しい証明書には PENDING_ACTIVATION ステータスがあります。RegisterThing を呼び出して、この証明書を使用してモノをプロビジョニングすると、テンプレートで説明されているように、証明書のステータスが ACTIVE または INACTIVE に変わります。

注記

セキュリティ上の理由から、CreateKeysAndCertificate によって返される certificateOwnershipToken は 1 時間後に有効期限切れになります。certificateOwnershipToken が有効期限切れになる前に、RegisterThing を呼び出す必要があります。CreateKeysAndCertificate によって作成された証明書がトークンの有効期限が切れるまでにアクティベートされず、ポリシーまたはモノにアタッチされない場合、証明書は削除されます。トークンの有効期限が切れた場合、デバイスは CreateKeysAndCertificate を呼び出して新しい証明書を生成します。

CreateKeysAndCertificate リクエスト

空のメッセージペイロードで $aws/certificates/create/payload-format にメッセージを発行します。

payload-format

メッセージペイロード形式 (cbor または json)。

CreateKeysAndCertificate レスポンス

$aws/certificates/create/payload-format/accepted​ をサブスクライブします。

payload-format

メッセージペイロード形式 (cbor または json)。

CreateKeysAndCertificate レスポンス

{ "certificateId": "string", "certificatePem": "string", "privateKey": "string", "certificateOwnershipToken": "string" }
certificateId

証明書 ID。

certificatePem

PEM 形式の証明書データ。

privateKey

プライベートキー。

certificateOwnershipToken

プロビジョニング中に証明書の所有権を証明するトークン。

CreateKeysAndCertificate エラー

エラーレスポンスを受信するには、$aws/certificates/create/payload-format/rejected をサブスクライブします。

payload-format

メッセージペイロード形式 (cbor または json)。

CreateKeysAndCertificate エラーペイロード

{ "statusCode": int, "errorCode": "string", "errorMessage": "string" }
statusCode

ステータスコード。

errorCode

エラーコード。

errorMessage

エラーメッセージ。

RegisterThing

事前定義されたテンプレートを使用してモノをプロビジョニングします。

RegisterThing リクエスト

$aws/provisioning-templates/templateName/provision/payload-format にメッセージを発行します。

payload-format

メッセージペイロード形式 (cbor または json)。

templateName

プロビジョニングテンプレート名。

RegisterThing リクエストペイロード

{ "certificateOwnershipToken": "string", "parameters": { "string": "string", ... } }
certificateOwnershipToken

証明書の所有権を証明するトークン。トークンは、MQTT 経由で証明書を作成するときに AWS IoT によって生成されます。

parameters

オプション。登録リクエストを評価するために事前プロビジョニングフックで使用されるデバイスからの、キーと値のペア。

RegisterThing レスポンス

$aws/provisioning-templates/templateName/provision/payload-format/accepted​ をサブスクライブします。

payload-format

メッセージペイロード形式 (cbor または json)。

templateName

プロビジョニングテンプレート名。

RegisterThing レスポンスペイロード

{ "deviceConfiguration": { "string": "string", ... }, "thingName": "string" }
deviceConfiguration

テンプレートで定義されているデバイス設定。

thingName

プロビジョニング中に作成される IoT モノの名前。

RegisterThing エラーレスポンス

エラーレスポンスを受信するには、$aws/provisioning-templates/templateName/provision/payload-format/rejected をサブスクライブします。

payload-format

メッセージペイロード形式 (cbor または json)。

templateName

プロビジョニングテンプレート名。

RegisterThing エラーレスポンスペイロード

{ "statusCode": int, "errorCode": "string", "errorMessage": "string" }
statusCode

ステータスコード。

errorCode

エラーコード。

errorMessage

エラーメッセージ。