設定 - AWS IoT Core

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

設定

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

IoT モノの作成

まず、IoT モノを作成し、モノに証明書をアタッチします。モノの作成方法のチュートリアルについては、「モノのオブジェクトを作成する」を参照してください。

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

注記

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

  1. AWS Identity and Access Management コンソールに移動し、 AWS アカウント デバイスアドバイザーのテストに使用しているものにログインします。

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

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

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

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

    2. [アクション] で、次のいずれかを実行します。

      • (推奨) IoT Thing に添付されているポリシーまたは前のセクションで作成した証明書に基づいてアクションを選択します。

      • [フィルターアクション] ボックスで次のアクションを検索して選択します。

        • Connect

        • Publish

        • Subscribe

        • Receive

        • RetainPublish

    3. [リソース] で、クライアント、トピック、およびトピックのリソースを制限します。これらのリソースを制限することは、セキュリティのベストプラクティスです。リソースを制限するには、次の手順を実行します。

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

      2. [ARN の追加] を選択し、次のいずれかを実行します。

        注記

        clientId は、デバイスが Device Advisor とやり取りするために使用する MQTT ライアント ID です。

        • ビジュアル ARN エディタで、[リージョン][accountID]、および [clientID] を指定します。

        • テストケースを実行する IoT トピックの Amazon リソースネーム (ARN) を手動で入力します。

      3. [追加] を選択します。

      4. [受信およびさらに 1 つのアクションのためにトピックリソース ARN を指定] を選択します。

      5. [ARN の追加] を選択し、次のいずれかを実行します。

        注記

        トピック名は、デバイスがメッセージを発行する MQTT トピックです。

        • ビジュアル ARN エディタで、[リージョン][accountID]、および [トピック名] を指定します。

        • テストケースを実行する IoT トピックの ARN を手動で入力します。

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

      7. [サブスクライブアクションのトピックフィルターリソース ARN を指定] を選択します。

      8. [ARN の追加] を選択し、次のいずれかを実行します。

        注記

        トピック名は、デバイスがサブスクライブする MQTT トピックです。

        • ビジュアル ARN エディタで、[リージョン][accountID]、および [トピック名] を指定します。

        • テストケースを実行する IoT トピックの ARN を手動で入力します。

      9. [追加] を選択します。

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

  6. [次へ: 確認] を選択します。

  7. [ポリシーの確認] でポリシーの [名前] を入力します。

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

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

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

  11. [信頼されたエンティティの選択] で、[カスタム信頼ポリシー] を選択します。

  12. 次の信頼ポリシーを [カスタム信頼ポリシー] ボックスに入力します。Confused Deputy Problem (混乱した代理の問題) から保護するために、グローバル条件コンテキストキー aws:SourceArnaws:SourceAccount をポリシーに追加します。

    重要

    aws:SourceArn は、format: arn:aws:iotdeviceadvisor:region:account-id:*. と一致する必要があります。region がお客様の AWS IoT リージョンと一致し、account-id がお客様のカスタマーアカウント ID と一致することを確認してください。詳細については、クロスサービスでの混乱した代理処理を防止するを参照してください。

    { "Version": "2012-10-17", "Statement": [ { "Sid": "AllowAwsIoTCoreDeviceAdvisor", "Effect": "Allow", "Principal": { "Service": "iotdeviceadvisor.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceAccount": "111122223333" }, "ArnLike": { "aws:SourceArn": "arn:aws:iotdeviceadvisor:*:111122223333:suitedefinition/*" } } } ] }
  13. [次へ] を選択します。

  14. ステップ 4 で作成したポリシーを選択します。

  15. (オプション) [アクセス許可の境界の設定] で、[アクセス許可の境界を使用してロールのアクセス許可の上限を設定する] を選択し、作成したポリシーを選択します。

  16. [次へ] を選択します。

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

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

IAM ユーザーが 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 ユーザーを作成することをお勧めします。管理者ユーザーから Device Advisor のテストを実行すると、セキュリティ上のリスクが生じる可能性があるため、お勧めしません。

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

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

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

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

  5. AWS 外部とやりとりしたいユーザは、プログラムによるアクセスが必要です。 AWS Management Consoleプログラムによるアクセスを許可する方法は、アクセスするユーザーのタイプによって異なります。 AWS

    ユーザーにプログラマチックアクセス権を付与するには、以下のいずれかのオプションを選択します。

    プログラマチックアクセス権を必要とするユーザー 目的 方法

    ワークフォースアイデンティティ

    (IAM Identity Center で管理されているユーザー)

    一時的な認証情報を使用して、 AWS CLI、 AWS SDK、または API へのプログラムによるリクエストに署名します。 AWS

    使用するインターフェイス用の手引きに従ってください。

    IAM 一時的な認証情報を使用して、、 AWS SDK AWS CLI、または API へのプログラムによるリクエストに署名します。 AWS IAM ユーザーガイドの「AWS リソースでの一時認証情報の使用」の指示に従います。
    IAM

    (非推奨)

    長期認証情報を使用して、 AWS CLI、 AWS SDK、または API へのプログラムによるリクエストに署名します。 AWS

    使用するインターフェイス用の手引きに従ってください。

  6. [次のステップ: アクセス許可] を選択します。

  7. アクセス権限を付与するには、ユーザー、グループ、またはロールにアクセス許可を追加します。

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

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

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

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

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

Device Advisor では、 AWS ユーザーに代わってリソース (モノ、証明書、エンドポイント) にアクセスする必要があります。IAM ユーザーは必要なアクセス許可を備えている必要があります。必要なアクセス権限ポリシーを IAM CloudWatch ユーザーに適用すると、Device Advisor は Amazon にもログを公開します。

デバイスを設定する

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

Device Advisor は、テストが Running のステータスにあるときに TLS 接続を許可します。Device Advisor は、各テストの実行前と実行後に TLS 接続を拒否します。このため、Device Advisor で完全に自動化されたテストを行うために、デバイス接続の再試行メカニズムを使用することをお勧めします。TLS 接続、MQTT 接続、MQTT パブリッシュなど、複数のテストケースを含むテストスイートを実行できます。複数のテストケースを実行する場合、デバイスが 5 秒ごとにテストエンドポイントに接続することを推奨します。その後、自動化された方法で順番に複数のテストケースを実行できます。

注記

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

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

次のコマンドを実行して、デバイスレベルのエンドポイントを取得します。

X.509 クライアント証明書を使用する MQTT のお客様の場合:

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

または

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

署名バージョン 4 を使用する MQTT over WebSocket のお客様の場合:

aws iotdeviceadvisor get-endpoint --device-role-arn your-device-role-arn --authentication-method SignatureVersion4

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

aws iotdeviceadvisor get-endpoint