

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

# プロビジョニング先
<a name="managedintegrations-sdk-device-provisionee"></a>

プロビジョニング先は、クレームによるフリートプロビジョニングを可能にするマネージド統合のコンポーネントです。プロビジョニング先を使用すると、デバイスを安全にプロビジョニングできます。SDK は、デバイスプロビジョニングに必要なリソースを作成します。これには、マネージド統合クラウドから取得したデバイス証明書とプライベートキーが含まれます。デバイスをプロビジョニングする場合、またはデバイスを再プロビジョニングする必要がある変更がある場合は、プロビジョニング先を使用できます。

**Topics**
+ [プロビジョニングワークフロー](#managedintegrations-sdk-device-provisionee-how)
+ [環境変数を設定する](#sdk-provisionee-envvars)
+ [カスタムエンドポイントを登録する](#sdk-provisionee-endpoint-create)
+ [プロビジョニングプロファイルを作成する](#sdk-provisionee-template-create)
+ [マネージド型モノを作成する](#sdk-provisionee-managed-thing-create)
+ [SDK ユーザーの Wi-Fi プロビジョニング](#sdk-provisionee-endpoint-wifi)
+ [クレームによるフリートのプロビジョニング](#sdk-provisionee-endpoint-claim)
+ [マネージドモノの機能](#sdk-provisionee-endpoint-update)

## プロビジョニングワークフロー
<a name="managedintegrations-sdk-device-provisionee-how"></a>

このプロセスでは、クラウド側とデバイス側の両方でセットアップする必要があります。お客様は、カスタムエンドポイント、プロビジョニングプロファイル、マネージド型モノなどのクラウド要件を設定します。最初のデバイスの電源をオンにすると、プロビジョニング者は次の操作を行います。

1. クレーム証明書を使用してマネージド統合エンドポイントに接続します。

1. フリートプロビジョニングフックを使用してデバイスパラメータを検証する

1. 永続的な証明書とプライベートキーを取得してデバイスに保存します。

1. デバイスは永続的な証明書を使用して再接続します

1. デバイス機能を検出してマネージド統合にアップロードします

プロビジョニングが成功すると、デバイスはマネージド統合と直接通信します。プロビジョニング先は、再プロビジョニングタスクに対してのみアクティブ化します。

## 環境変数を設定する
<a name="sdk-provisionee-envvars"></a>

クラウド環境で次の AWS 認証情報を設定します。

```
$ export AWS_ACCESS_KEY_ID=YOUR-ACCOUNT-ACCESS-KEY-ID
$ export AWS_SECRET_ACCESS_KEY=YOUR-ACCOUNT-SECRET-ACCESS-KEY
$ export AWS_DEFAULT_REGION=YOUR-DEFAULT-REGION
```

## カスタムエンドポイントを登録する
<a name="sdk-provisionee-endpoint-create"></a>

クラウド環境で [RegisterCustomEndpoint](https://docs.aws.amazon.com/iot-mi/latest/APIReference/API_RegisterCustomEndpoint.html) API コマンドを使用して、device-to-cloud通信用のカスタムエンドポイントを作成します。

```
aws iot-managed-integrations register-custom-endpoint
```

**レスポンスの例**

```
{ "EndpointAddress":"[ACCOUNT-PREFIX]-ats.iot.AWS-REGION.amazonaws.com" }
```

**注記**  
 プロビジョニングパラメータを設定するためのエンドポイントアドレスを保存します。 `GetCustomEndpoint` API を使用してエンドポイント情報を返します。詳細については、「 マネージド統合 API リファレンスガイド」の[GetCustomEndpoint](https://docs.aws.amazon.com/iot-mi/latest/APIReference/API_GetCustomEndpoint.html) API」および[RegisterCustomEndpoint](https://docs.aws.amazon.com/iot-mi/latest/APIReference/API_RegisterCustomEndpoint.html) API」を参照してください。 **

## プロビジョニングプロファイルを作成する
<a name="sdk-provisionee-template-create"></a>

フリートプロビジョニング方法を定義するプロビジョニングプロファイルを作成します。クラウド環境で [CreateProvisioningProfile](https://docs.aws.amazon.com/iot-mi/latest/APIReference/API_CreateProvisioningProfile.html) API を実行して、デバイス認証用のクレーム証明書とプライベートキーを返します。

```
aws iot-managed-integrations create-provisioning-profile \
--provisioning-type "FLEET_PROVISIONING" \
--name "PROVISIONING-PROFILE-NAME"
```

**レスポンスの例**

```
{ "Arn":"arn:aws:iot-managed-integrations:AWS-REGION:YOUR-ACCOUNT-ID:provisioning-profile/PROFILE_NAME",
    "ClaimCertificate":"string",
    "ClaimCertificatePrivateKey":"string",
    "Name":"ProfileName",
    "ProvisioningType":"FLEET_PROVISIONING"}
```

corePKCS11 プラットフォーム抽象化ライブラリ (PAL) を実装して、corePKCS11 ライブラリをデバイスと連携させることができます。corePKCS11 PAL ポートは、クレーム証明書とプライベートキーを保存する場所を提供する必要があります。この機能を使用すると、デバイスのプライベートキーと証明書を安全に保存できます。プライベートキーと証明書は、ハードウェアセキュリティモジュール (HSM) または信頼されたプラットフォームモジュール (TPM) に保存できます。

## マネージド型モノを作成する
<a name="sdk-provisionee-managed-thing-create"></a>

[CreateManagedThing](https://docs.aws.amazon.com/iot-mi/latest/APIReference/API_CreateManagedThing.html) API を使用して、マネージド統合クラウドにデバイスを登録します。デバイスのシリアル番号 (SN) とユニバーサル製品コード (UPC) を含めます。

```
aws iot-managed-integrations create-managed-thing —role DEVICE \
  --authentication-material-type WIFI_SETUP_QR_BAR_CODE \
  --authentication-material "SN:DEVICE-SN;UPC:DEVICE-UPC;"
```

以下に、API レスポンスの例を示します。

```
{
   "Arn":"arn:aws:iot-managed-integrations:AWS-REGION:ACCOUNT-ID:managed-thing/59d3c90c55c4491192d841879192d33f",
   "CreatedAt":1.730960226491E9,
   "Id":"59d3c90c55c4491192d841879192d33f"
}
```

API は、プロビジョニングの検証に使用できる **Managed Thing ID** を返します。プロビジョニングトランザクション中に承認されたマネージドモノと一致するデバイスシリアル番号 (SN) とユニバーサル製品コード (UPC) を指定する必要があります。トランザクションは次のような結果を返します。

```
/**
 * @brief Device info structure.
 */
typedef struct iotmiDev_DeviceInfo 
{
    char serialNumber[ IOTMI_DEVICE_MAX_SERIAL_NUMBER_LENGTH + 1U ];
    char universalProductCode[ IOTMI_DEVICE_MAX_UPC_LENGTH + 1U ];
    char internationalArticleNumber[ IOTMI_DEVICE_MAX_EAN_LENGTH + 1U ];
} iotmiDev_DeviceInfo_t;
```

## SDK ユーザーの Wi-Fi プロビジョニング
<a name="sdk-provisionee-endpoint-wifi"></a>

デバイスメーカーとソリューションプロバイダーには、Wi-Fi 認証情報を受信および設定するための独自の Wi-Fi プロビジョニングサービスがあります。Wi-Fi プロビジョニングサービスでは、専用モバイルアプリ、Bluetooth Low Energy (BLE) 接続、およびその他の独自のプロトコルを使用して、初期セットアッププロセスのために Wi-Fi 認証情報を安全に転送します。

エンドデバイス SDK のコンシューマーは Wi-Fi プロビジョニングサービスを実装する必要があり、デバイスは Wi-Fi ネットワークに接続できます。

## クレームによるフリートのプロビジョニング
<a name="sdk-provisionee-endpoint-claim"></a>

プロビジョニング先を使用すると、エンドユーザーはクレームによるプロビジョニングを使用して一意の証明書をプロビジョニングし、マネージド統合に登録できます。

クライアント ID は、プロビジョニングテンプレートのレスポンスまたはデバイス証明書から取得できます。 `<common name>“_”<serial number>`

## マネージドモノの機能
<a name="sdk-provisionee-endpoint-update"></a>

プロビジョニング先はマネージドモノの機能を検出し、その機能をマネージド統合にアップロードします。これにより、アプリケーションやその他のサービスがアクセスできるようになります。デバイス、他のウェブクライアント、およびサービスは、MQTT と予約された MQTT トピック、または REST API を使用した HTTP を使用して機能を更新できます。