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

この章では、オンボードの Microchip ATTECC608 Trust&GO セキュアエレメントを使用して AWS IoT Core に接続するためのデバイスをプロビジョニングし、 TLS 接続 を確立します。組み込みのハードウェアの信頼の基点により、プライベートキーを公開することなく、簡素化された迅速なプロビジョニングパスを持つことができます。デバイスに組み込まれているデバイス証明書を取得し、マニフェストファイルを作成して AWS IoT のモノ (デバイスの表現と記録) を作成することができます。このデバイスのクライアント ID は、AWS IoT Core に登録され、シリアル番号で識別されます。同様のプロセスを使用することによって、一度に何千、何百万ものデバイス群のデプロイを自動化することができます。

VS Codeで既に開いている他のプロジェクトがある場合は、まず新しいウィンドウ(FileNew Window)を開き、ファイルエクスプローラと作業環境を作成します。

このチュートリアルでは、Blinky-Hello-World プロジェクトを使用します。新しいVS Codeのウィンドウで、PlatformIOロゴ VS Codeアクティビティバー(左側のメニュー) をクリックし、左の PlatformIO メニューからOpen を選択し、Open Project をクリックし、Core2-for-AWS-IOT-edukit/Blinky-Hello-Worldフォルダに移動し、openをクリックします。

PlatformIO home screen

プロジェクトを開いたら、PlatformIO CLI ターミナルウィンドゥも開きます。

  1. VS Codeのアクティビティーバー(左のメニュー)で PlatformIOのロゴ をクリックします
  2. Quick Access メニューの、Miscellaneous にある New Terminal をクリックしてターミナルを開きます

デバイス証明書の取得とAWS IoTへthingの登録

MQTT 経由で AWS IoT Core への安全な TLS 接続を実行するには、モノを登録し、 デバイス証明書 を Thing に登録し、 セキュリティポリシー を証明書に紐付けて、AWS アカウント内で不正なデバイスや不正な操作が実行されないようにします。Core2 for AWS IoT Kitリファレンスハードウェアにセキュアエレメント利用しているため、機密性の高い秘密鍵を公開したり処理したりすることなく、デバイス登録全体を自動化できます。

プロジェクトには、ハードウェアのセキュアエレメントから事前にプロビジョニングされたデバイス証明書を取得する手順を自動化し、 X.509 証明書 でデバイス証明書に署名してデバイスマニフェストを生成するスクリプトが含まれています。Microchip(セキュアエレメントのメーカー) の ジャストインタイム登録 を行い、AWS IoT はデバイス証明書を使用して、AWS IoT Thing に安全なポリシーをアタッチします。

提供されているスクリプトを、PlatformIO CLI ターミナルウィンドゥで実行する方法については。

過去にこのセットアップをされている場合、すでにAWS IoT Coreに情報が登録されている可能性があります。その場合は、ターミナルに表示される Unique ID: 0123456789ABCD の様なIDの名前のモノや証明書、それに紐づくIoT PolicyをAWS IoT Coreのマネージメントコンソールから削除してから、再度実行してください。
cd Blinky-Hello-World
pio run -e core2foraws-device_reg -t register_thing

章のまとめ

この章では、セキュアエレメントを使用して AWS IoT の モノ を作成し、モノ用の IoTポリシー を設定し、モノに デバイス証明書 をアタッチしました。セキュアエレメントを利用することで、プライベートキーを公開したりすることなく安全にプロビジョニングが実行されます。

AWS IoT Core への接続 」に進みます。


Questions? Please use M5Stack Forum

AWS IoT Kit now features direct access to M5Stack Forum , which is a community-driven, questions-and-answers service. Search re:Post using the Core2 for AWS tag to see if your question has been asked and answered. If not, ask a new question using the Core2 for AWS tag.