ボードを資格認定する
前提条件
ハードウェア要件:
FreeRTOS AWS IoT ライブラリが動作する MCU ベースの開発ボードには、次のものが必要です。
-
イーサネット、Wi-Fi、またはセルラー接続機能
ソフトウェア要件:
「FreeRTOS 移植ガイド」の移植フローチャートには、特定の MCU ベースの開発ボードに必要な FreeRTOS AWS IoT ライブラリが記載されています。最小のサブセットは以下のとおりです。
FreeRTOS カーネル
coreMQTT
AWS IoT 無線による更新 (OTA)
テスト要件:
FreeRTOS ライブラリに必要なハードウェアプラットフォーム固有の API の実装を、FreeRTOS 用の AWS IoT Device Tester を使用して、定義済みのテスト
GitHub リポジトリと照合して検証します。「移植された FreeRTOS ライブラリを AWS IoT Device Tester (IDT) を使用して検証する」を参照してください。 Device Advisor を使用して、AWS IoT Core との相互運用性を検証します。「移植された FreeRTOS ライブラリを AWS IoT Device Tester (IDT) を使用して検証する」のステップ 4 を参照してください。
ベストプラクティス
セキュリティを強化するために、以下を推奨します。
-
オフラインまたは一時的な侵害が永続的に発生するのを防ぐには、セキュアエレメント
や Secure Enclave などの物理的な攻撃に耐えるハードウェアのルートオブトラストにシークレットと認証情報を保存してください。 -
不正なデータ漏えいにつながる恐れのあるネットワークスプーフィング
および中間者 攻撃のリスクを軽減するために、DHCP、DNS、TCP/IP、TLS などのプロトコルを実装する FreeRTOS ライブラリの真性乱数生成器 (TRNG) を使用してください。詳細については、「Recommendation for Random Number Generation Using Deterministic Random Bit Generators 」 (NIST SP 800-90A) の 50 ページを参照してください。
認定ステップ
移植された FreeRTOS ライブラリを AWS IoT Device Tester (IDT) を使用して検証する
FreeRTOS ライブラリをご利用のボードに移植します。手順については、「FreeRTOS 移植ガイド」を参照してください。
テストプロジェクトを作成し、FreeRTOS-Libraries-Integration-Tests
GitHub リポジトリから必要なテストを移植します。テストランナータスクの RunQualificationTest を呼び出します。 注記
開発者の使い勝手を良くするために、FreeRTOS ライブラリを移植し、IDE を使用して対応する個別のテストグループをローカルで実行して、統合を確認することをお勧めします。
テストランナータスクは、個別のテストプロジェクト、またはデモアプリケーションプロジェクトで実行されます。
認定で使用したすべての依存関係を一覧表示する
manifest.ymlファイルを作成します。依存関係には、FreeRTOS ライブラリとテストリポジトリが含まれます。詳細については、「FreeRTOS マニフェストファイルの手順」を参照してください。注記
manifest.ymlは、IDT が、特定の FreeRTOS ライブラリバージョンとの整合性チェックに必要な依存関係を見つけたり、テストバイナリをビルド、フラッシュ、実行するようにテストプロジェクトを設定したりするために使用します。IDT は、特定のプロジェクト構造を強制せず、
manifest.ymlファイルに含まれる参照パスを使用します。-
Device Advisor を使用して、AWS IoT との相互運用性を検証します。
-
上記のテストで使用した FreeRTOS ライブラリ、移植、OTA などの統合タスクを含む同じコンポーネントを使用するデモプロジェクトを作成します。
認定には、デモアプリケーションが以下の機能を備えている必要があります。
MQTT によるトピックのパブリッシュとサブスクライブを行います。
OTA 更新を実行します。
OTA 更新をサポートするブートローダーを作成します。独自のブートローダーまたは MCUBoot
を使用してください。「Labs-FreeRTOS-Plus-MCUBoot 」を参照してください。
注記
FreeRTOS GitHub
リポジトリには、個々のタスクを示すサンプルがあらかじめ設定されています。coreMQTT タスクと OTA タスクの両方を組み込んだ統合された coreMQTT エージェントデモ もあります。また、認定プロジェクトの例 の FreeRTOS 特集 IoT 統合も参照してください。 -
AWS IoT Device Tester は、AWS IoT Device Advisor に対してデモを実行します。認定には、以下の Device Advisor のテストケースが必要です。
テストケース テストケース テストケース 必須 TLS TLS Connect あり TLS AWS AWS IoT 暗号スイートの TLS サポート 推奨の暗号スイートがある場合は「はい」。 TLS TLS 非セキュアサーバー証明書 あり TLS TLS の不正なサブジェクト名のサーバー証明書 あり MQTT MQTT 接続 あり MQTT MQTT 接続ジッター再試行 Yes、警告なし MQTT MQTT サブスクライブ あり MQTT MQTT パブリッシュ あり MQTT MQTT ClientPuback Qos1 あり MQTT MQTT No Ack PingResp あり
-
AWS IoT Device Tester からテストを実行し、テストレポートを生成します。
-
IDT はテストを設定し、ビルドしてボードに自動的にフラッシュします。これを有効にするには、
userdata.jsonファイル内のデバイスに対してビルドコマンドとフラッシュコマンドを実行するように IDT を設定する必要があります。「IDT for FreeRTOS ユーザーガイド」の「Configure build, flash, and test settings」を参照してください。 -
IDT が実行するテストを決定できるようにするために、接続タイプ、暗号化アルゴリズム、キープロビジョニング方法など、デバイスがサポートする機能を
device.jsonファイルに入力します。「IDT for FreeRTOS ユーザーガイド」の「Create a device pool in IDT for FreeRTOS」を参照してください。 -
IDT の AWS アカウントを作成して設定し、必要なクラウドリソースを作成します。「IDT for FreeRTOS ユーザーガイド」の「Create and configure AWS account for IDT to create required cloud resources」を参照してください。
-
提出の準備
MQTT または OTA デモプロジェクトをデバイスで実行するための「入門ガイド」を作成します。手順については、「Creating a getting started with FreeRTOS guide for your device」を参照してください。
「FreeRTOS 移植ガイド」の「Porting the OTA library」に記載されている「Threat Modeling for the AWS IoT device bootloader」で定義されているリスクが軽減されていることを確認する脅威モデリングドキュメントを用意します。このドキュメントは、APN パートナーセントラル
にデバイスを提出する際に、サポートアセットとしてアップロードする必要があります。 コードダウンロード用のパブリックリポジトリを用意します。企業の GitHub リポジトリのリンクを用意することをお勧めします。
認定の提出
IDT テストレポート。
AWS IoT Device Advisor テストレポート。
脅威モデリングドキュメント。
ダウンロード用のソースコードを含む GitHub リポジトリ。