セットアップ - AWS IoT Core

セットアップ

Device Advisor を初めて使用する場合は、事前に以下のタスクをすべて実行してください。

IoT モノの作成

まず モノ を作成し、モノ に証明書を添付する必要があります。モノを作成するために以下のチュートリアルを使います:モノ対象を作成します

デバイスロールとして使用する IAM ロールを作成する

注記

Device Advisor コンソールを使用して、デバイスロールをすばやく作成できます。Device Advisor コンソールを使用してデバイスロールを設定する手順については、コンソールでの Device Advisor の開始方法を参照してください。

  1. AWSIAM コンソールに移動し、Device Advisor のテストに使用するアカウントにログインします。

  2. 左側のナビゲーションペインで、[Policies] (ポリシー)を選択します。

  3. [Create policy] を選択します。

  4. [Create policy] (ポリシーの作成) で、次の操作を実行します。

    1. [Service] (サービス) で、[IoT] を選択します。

    2. [Actions] (アクション) で、前のセクションで作成した IoT モノまたは証明書にアタッチされたポリシーに基づいてアクションを選択するか (推奨)、[Filter] (フィルター) アクションボックスで次のアクションを検索して選択します。

      • 接続

      • 公開

      • サブスクライブ

      • 受信

    3. セキュリティのベストプラクティスとして、[Resources] (リソース) で、次の手順に従って クライアントトピック、および topicfilter のリソースを制限することをお勧めします。

      1. Connect アクションの [Specify client resource ARN] (クライアントリソース ARN を指定) を選択します。

        1. [Add ARN (ARN の追加)] を選択します。

        2. ビジュアル ARN エディタでリージョンaccountId、および clientId を指定するか、テストケースの実行に使用する IoT トピックの Amazon リソースネーム (ARN) を手動で指定します。clientId は、デバイスが Device Advisor とインタラクションするために使用する MQTT clientId です。

        3. [Add] (追加) をクリックします。

      2. [Specify topic resource ARN for the Receive and 1 more action] (受信およびさらに 1 つのアクションのためにトピックリソース ARN を指定) を選択します。

        1. [Add ARN (ARN の追加)] を選択します。

        2. ビジュアル ARN エディタでリージョンaccountId、およびトピック名を指定するか、テストケースの実行に使用する IoT トピックの ARN を手動で指定します。トピック名は、デバイスがメッセージを発行するために使用する MQTT トピックです。

        3. [Add] (追加) をクリックします。

      3. [Specify topicfilter resource ARN for the Subscribe action] (サブスクライブアクションのトピックフィルターリソース ARN を指定) を選択します。

        1. [Add ARN (ARN の追加)] を選択します。

        2. ビジュアル ARN エディタでリージョンaccountId、およびトピック名を指定するか、テストケースの実行に使用する IoT トピックの ARN を手動で指定します。トピック名は、デバイスがサブスクライブするために使用する MQTT トピックです。

        3. [Add] (追加) をクリックします。

  5. [ポリシーの確認] を選択します。

  6. [Review policy] (ポリシーのレビュー) で、[Name] (名前) を入力します。

  7. [Create policy] を選択します。

  8. 左のナビゲーションペインで、[Roles] (ロール) を選択します。

  9. [Create Role] を選択します。

  10. [Or select a service to view its use cases] (またはサービスを選択してそのユースケースを表示) で、[IoT] を選択します。

  11. [ユースケースの選択] で、[IoT] を選択します。

  12. [Next: Permissions (次へ: アクセス許可)] を選択します。

  13. (オプション) [Set permissions boundary] (アクセス許可の境界の設定) で、[Use a permissions boundary to control the maximum role permissions] (アクセス許可の境界を使用してロールのアクセス許可の上限を設定する) を選択し、作成したポリシーを選択します。

  14. [次へ: タグ] を選択します。

  15. [Next: Review] を選択します。

  16. [Role name] (ロール名) と [Role description] (ロールの説明) を入力します。

  17. [ロールの作成] を選択します。

  18. 作成したロールに移動します。

  19. [Permissions] (アクセス許可) タブで [Attach policies] (ポリシーのアタッチ) を選択してから、ステップ 4 で作成したポリシーを選択します。

  20. [ポリシーのアタッチ] を選択します。

  21. [Trust relationships] (信頼関係) タブを選択し、[Edit trust relationship] (信頼関係の編集) を選択します。

  22. 次のポリシーを入力します。

    { "Version": "2012-10-17", "Statement": [ { "Sid": "AllowAwsIoTCoreDeviceAdvisor", "Effect": "Allow", "Principal": { "Service": "iotdeviceadvisor.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
  23. [Update Trust Policy] を選択します。

Device Advisor ユーザーアカウントのカスタム管理ポリシーを作成する

  1. IAM コンソール (https://console.aws.amazon.com/iam/) に移動します。プロンプトが表示されたら、AWS 認証情報を入力してサインインします。

  2. 左のナビゲーションペインの [Policies (ポリシー)] を選択します。

  3. [Create Policy] (ポリシーの作成) を選択し、[JSON] タブを選択します。

  4. Device Advisor を使用するために必要なアクセス許可を追加します。ポリシードキュメントは、トピック [Security best practices] (セキュリティのベストプラクティス) にあります。

  5. [ポリシーの確認] を選択します。

  6. [Name (名前)] と [Description (説明)] を入力します。

  7. [Create Policy (ポリシーの作成)] を選択します。

Device Advisor のテストの実行に使用する IAM ユーザーを作成する

注記

Device Advisor テストを実行するときに使用する IAM ユーザーを作成することをお勧めします。IAM 管理者ユーザーを使用して Device Advisor テストを実行することは許可されていますが、お勧めしません。

  1. IAM コンソール (https://console.aws.amazon.com/iam/) に移動します。プロンプトが表示されたら、AWS 認証情報を入力してサインインします。

  2. 左のナビゲーションペインで、[Users] (ユーザー) を選択します。

  3. [Add User] を選択します。

  4. ユーザー名を入力します。

  5. [Programmatic access] (プログラムによるアクセス) を選択します。

  6. [Next: Permissions (次へ: アクセス許可)] を選択します。

  7. [既存のポリシーを直接添付する] を選択します。

  8. 作成したカスタム管理ポリシーの名前を検索ボックスに入力し、[Policy name] (ポリシー名) のチェックボックスをオンにします。

  9. [Next: Tags (次へ: タグ)] を選択します。

  10. [Next: Review] を選択します。

  11. [Create user] を選択します。

  12. [閉じる] を選択します。

Device Advisor は、お客様に代わって AWS リソース (モノ、証明書、エンドポイント) にアクセスする必要があります。IAM ユーザーは必要なアクセス許可を備えている必要があります。また、必要なアクセス許可ポリシーを IAM ユーザーにアタッチすると、Device Advisor は Amazon CloudWatch にログを発行します。

デバイスを設定する

Device Advisor は、サーバー名表示 (SNI) TLS 拡張を使用して TLS 設定を適用します。デバイスは、接続時にこの拡張を使用し、Device Advisor のテストエンドポイントと同じサーバー名を渡す必要があります。

Device Advisor は、テストが Running のステータスにあるときに TLS 接続を許可し、各テストの実行前と実行後に TLS 接続を拒否します。このため、デバイス接続の再試行メカニズムを使用して、Device Advisor で完全に自動化されたテスト機能を使用することもお勧めします。複数のテストケース (TLS 接続、MQTT 接続、および MQTT 発行など) を使用してテストスイートを実行する場合、デバイスが 5 秒ごとにテストエンドポイントへの接続を試行するメカニズムをビルドすることをお勧めします。その後、自動化された方法で順番に複数のテストケースを実行できます。

注記

デバイスソフトウェアのテストの準備を整えるために、AWS IoT Core に接続できる SDK を用意し、アカウント用に提供された Device Advisor テストエンドポイントを使用して SDK を更新することをお勧めします。

Device Advisor が、アカウントレベルのエンドポイントとデバイスレベルのエンドポイントの 2 種類のエンドポイントをサポートします。ユースケースに最も適したエンドポイントを選択します。異なるデバイスを使用して複数のテストスイートを同時に実行するには、デバイスレベルのエンドポイントを使用します。次のコマンドを実行して、デバイスレベルのエンドポイントを取得します。

aws iotdeviceadvisor get-endpoint --thing-arn your-thing-arn

または

aws iotdeviceadvisor get-endpoint --certificate-arn your-certificate-arn

一度に 1 つのテストスイートを実行するには、アカウントレベルのエンドポイントを選択します。次のコマンドを実行して、アカウントレベルのエンドポイントを取得します。

aws iotdeviceadvisor get-endpoint