

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

# 設定
<a name="device-advisor-setting-up"></a>

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

## IoT モノの作成
<a name="da-create-thing-certificate"></a>

まず、IoT モノを作成し、モノに証明書をアタッチします。モノの作成方法のチュートリアルについては、「[モノのオブジェクトを作成する](https://docs.aws.amazon.com/iot/latest/developerguide/create-iot-resources.html#create-aws-thing)」を参照してください。

## デバイスロールとして使用する IAM ロールを作成する
<a name="da-iam-role"></a>

**注記**  
Device Advisor コンソールを使用して、デバイスロールをすばやく作成できます。Device Advisor コンソールを使用してデバイスロールを設定する手順については、「[コンソールでの Device Advisor の開始方法](https://docs.aws.amazon.com/iot/latest/developerguide/da-console-guide.html)」を参照してください。

1. [AWS Identity and Access Management コンソール](https://console.aws.amazon.com/iam/home?region=us-west-2#/home)に移動し、Device Advisor テスト AWS アカウント に使用する にログインします。

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

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

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

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

   1. **[アクション]** で、次のいずれかを実行します。
      + (推奨) IoT Thing に添付されているポリシーまたは前のセクションで作成した証明書に基づいてアクションを選択します。
      + **[フィルターアクション]** ボックスで次のアクションを検索して選択します。
        + `Connect`
        + `Publish`
        + `Subscribe`
        + `Receive`
        + `RetainPublish`

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

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

      1. **[ARN の追加]** を選択し、次のいずれかを実行します。
**注記**  
*clientId* は、デバイスが Device Advisor とやり取りするために使用する MQTT クライアント ID です。
         + ビジュアル ARN エディタで、**[リージョン]**、**[accountID]**、および **[clientID]** を指定します。
         + テストケースを実行する IoT トピックの Amazon リソースネーム (ARN) を手動で入力します。

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

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

      1. **[ARN の追加]** を選択し、次のいずれかを実行します。
**注記**  
*トピック名*は、デバイスがメッセージを発行する MQTT トピックです。
         + ビジュアル ARN エディタで、**[リージョン]**、**[accountID]**、および **[トピック名]** を指定します。
         + テストケースを実行する IoT トピックの ARN を手動で入力します。

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

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

      1. **[ARN の追加]** を選択し、次のいずれかを実行します。
**注記**  
*トピック名*は、デバイスがサブスクライブする MQTT トピックです。
         + ビジュアル ARN エディタで、**[リージョン]**、**[accountID]**、および **[トピック名]** を指定します。
         + テストケースを実行する IoT トピックの ARN を手動で入力します。

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

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

1. **[次へ: レビュー]** を選択します。

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

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

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

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

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

1. 次の信頼ポリシーを **[カスタム信頼ポリシー]** ボックスに入力します。混乱した代理問題から保護するために、グローバル条件コンテキストキー `[aws:SourceArn](https://docs.aws.amazon.com//IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourcearn)` と `[aws:SourceAccount](https://docs.aws.amazon.com//IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourceaccount)` をポリシーに追加します。
**重要**  
`aws:SourceArn` は、`format: arn:aws:iotdeviceadvisor:region:account-id:*.` と一致する必要があります。`region` がお客様の AWS IoT リージョンと一致し、`account-id` がお客様のカスタマーアカウント ID と一致することを確認してください。詳細については、[クロスサービスでの混乱した代理処理を防止する](https://docs.aws.amazon.com/iot/latest/developerguide/security-best-practices.html#cross-service-confused-deputy-prevention-DA)を参照してください。  
****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "AllowAwsIoTCoreDeviceAdvisor",
               "Effect": "Allow",
               "Principal": {
                   "Service": "iotdeviceadvisor.amazonaws.com"
           },
               "Action": "sts:AssumeRole",
               "Condition": {
                   "StringEquals": {
                       "aws:SourceAccount": "123456789012"
               },
                   "ArnLike": {
                       "aws:SourceArn": "arn:aws:iotdeviceadvisor:*:123456789012:suitedefinition/*"
               }
           }
           }
       ]
   }
   ```

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

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

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

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

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

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

## IAM ユーザーが Device Advisor を使用するためのカスタムマネージドポリシーを作成する
<a name="da-managed-policy"></a>

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

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

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

1. Device Advisor を使用するために必要なアクセス許可を追加します。ポリシードキュメントは、トピック [[Security best practices]](https://docs.aws.amazon.com/iot/latest/developerguide/security-best-practices.html#device-advisor-perms) (セキュリティのベストプラクティス) にあります。

1. **ポリシーのレビュー** を選択します。

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

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

## Device Advisor のテストの実行に使用する IAM ユーザーを作成する
<a name="da-iam-user"></a>

**注記**  
Device Advisor テストを実行するときに使用する IAM ユーザーを作成することをお勧めします。管理者ユーザーから Device Advisor のテストを実行すると、セキュリティ上のリスクが生じる可能性があるため、お勧めしません。

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

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

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

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

1. ユーザーが の AWS 外部で を操作する場合は、プログラムによるアクセスが必要です AWS マネジメントコンソール。プログラムによるアクセスを許可する方法は、 がアクセスするユーザーのタイプによって異なります AWS。

   ユーザーにプログラムによるアクセス権を付与するには、以下のいずれかのオプションを選択します。  
****    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/iot/latest/developerguide/device-advisor-setting-up.html)

1. **[Next: Permissions]** (次のステップ: 許可) を選択します。

1. アクセスを提供するには、ユーザー、グループ、またはロールにアクセス許可を追加します。
   + 以下のユーザーとグループ AWS IAM アイデンティティセンター:

     アクセス許可セットを作成します。「*AWS IAM アイデンティティセンター ユーザーガイド*」の「[アクセス許可セットを作成する](https://docs.aws.amazon.com//singlesignon/latest/userguide/howtocreatepermissionset.html)」の手順に従ってください。
   + IAM 内で、ID プロバイダーによって管理されているユーザー:

     ID フェデレーションのロールを作成します。詳細については *IAM ユーザーガイド* の [サードパーティー ID プロバイダー (フェデレーション) 用のロールを作成する](https://docs.aws.amazon.com//IAM/latest/UserGuide/id_roles_create_for-idp.html) を参照してください。
   + IAM ユーザー:
     + ユーザーが担当できるロールを作成します。手順については *IAM ユーザーガイド* の [IAM ユーザーのロールの作成](https://docs.aws.amazon.com//IAM/latest/UserGuide/id_roles_create_for-user.html) を参照してください。
     + (お奨めできない方法) ポリシーをユーザーに直接アタッチするか、ユーザーをユーザーグループに追加します。*IAM ユーザーガイド* の [ユーザー (コンソール) へのアクセス許可の追加](https://docs.aws.amazon.com//IAM/latest/UserGuide/id_users_change-permissions.html#users_change_permissions-add-console) の指示に従います。

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

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

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

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

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

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

## デバイスを設定する
<a name="da-configure-device"></a>

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
```