設定 - AWS IoT Core

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

設定

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

IoT モノの作成

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

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

注記

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

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

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

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

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

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

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

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

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

        • Connect

        • Publish

        • Subscribe

        • Receive

        • RetainPublish

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

      1. Connect アクションARNのクライアントリソースの指定を選択します。

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

        注記

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

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

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

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

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

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

        注記

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

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

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

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

      7. サブスクライブアクションARNの topicFilter リソースを指定を選択します

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

        注記

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

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

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

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

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

  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. [Next (次へ)] を選択します。

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

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

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

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

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

IAM ユーザーが Device Advisor を使用するためのカスタム管理ポリシーを作成する

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

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

  3. ポリシーの作成を選択し、JSONタブを選択します。

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

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

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

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

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。

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

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

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

    (IAMIdentity Center で管理されるユーザー)

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

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

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

    (非推奨)

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

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

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

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

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

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

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

注記

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

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

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

X.509 クライアント証明書を使用しているMQTTお客様:

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

or

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

署名バージョン 4 を使用している MQTT を超える WebSocket お客様向け:

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

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

aws iotdeviceadvisor get-endpoint