

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# デバイスプロビジョニング MQTT API
<a name="fleet-provision-api"></a><a name="provision-mqtt-api"></a>

フリートプロビジョニングサービスは、次の MQTT API オペレーションをサポートしています。
+ `CreateCertificateFromCsr`
+ `CreateKeysAndCertificate`
+ `RegisterThing`

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


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

**重要**  
リクエストメッセージトピックを発行する前に、応答トピックをサブスクライブしてレスポンスを受信します。この API で使用されるメッセージは、MQTT のパブリッシュ/サブスクライブプロトコルを使用して、リクエストとレスポンスの相互作用を提供します。  
リクエストを発行*する前に*レスポントピックをサブスクライブしていない場合、そのリクエストの結果を受信できない可能性があります。  
IoT Core フリートプロビジョニングは、API リクエストの発行に使用したのと同じ MQTT 接続を介して、デバイスのプロビジョニング MQTT API 結果を返します。

## CreateCertificateFromCsr
<a name="create-cert-csr"></a>

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

認証局証明書と証明書署名リクエストを使用してクライアント証明書を作成する方法の詳細については、「[CA 証明書を使用してクライアント証明書を作成する](create-device-cert.md)」を参照してください。

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

### CreateCertificateFromCsr リクエスト
<a name="create-cert-csr-request"></a>

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

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

#### CreateCertificateFromCsr リクエストペイロード
<a name="create-cert-csr-request-payload"></a>

```
{
    "certificateSigningRequest": "string"
}
```

`certificateSigningRequest`  
PEM 形式の CSR。

### CreateCertificateFromCsr レスポンス
<a name="create-cert-csr-response"></a>

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

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

#### CreateCertificateFromCsr レスポンスペイロード
<a name="create-cert-csr-response-payload"></a>

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

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

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

`certificatePem`  
PEM 形式の証明書データ。

### CreateCertificateFromCsr エラー
<a name="create-cert-csr-error"></a>

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

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

#### CreateCertificateFromCsr エラーペイロード
<a name="create-cert-csr-error-payload"></a>

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

`statusCode`  
ステータスコード。

`errorCode`  
エラーコード。

`errorMessage`  
エラーメッセージです。

## CreateKeysAndCertificate
<a name="create-keys-cert"></a>

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

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

### CreateKeysAndCertificate リクエスト
<a name="create-keys-cert-request"></a>

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

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

### CreateKeysAndCertificate レスポンス
<a name="create-keys-cert-response"></a>

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

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

#### CreateKeysAndCertificate レスポンス
<a name="create-keys-cert-response-payload"></a>

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

`certificateId`  
証明書 ID｡

`certificatePem`  
PEM 形式の証明書データ。

`privateKey`  
プライベートキー。

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

### CreateKeysAndCertificate エラー
<a name="create-keys-cert-error"></a>

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

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

#### CreateKeysAndCertificate エラーペイロード
<a name="create-keys-cert-error-payload"></a>

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

`statusCode`  
ステータスコード。

`errorCode`  
エラーコード。

`errorMessage`  
エラーメッセージです。

## RegisterThing
<a name="register-thing"></a>

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

### RegisterThing リクエスト
<a name="register-thing-request"></a>

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

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

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

#### RegisterThing リクエストペイロード
<a name="register-thing-request-payload"></a>

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

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

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

### RegisterThing レスポンス
<a name="register-thing-response"></a>

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

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

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

#### RegisterThing レスポンスペイロード
<a name="register-thing-response-payload"></a>

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

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

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

### RegisterThing エラーレスポンス
<a name="register-thing-error"></a>

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

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

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

#### RegisterThing エラーレスポンスペイロード
<a name="register-thing-error-payload"></a>

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

`statusCode`  
ステータスコード。

`errorCode`  
エラーコード。

`errorMessage`  
エラーメッセージ。