

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

# LTS 認定の前提条件を設定する
<a name="lts-idt-dev-tester-prereqs"></a>

このセクションでは、 でマイクロコントローラーをテストするための前提条件について説明します AWS IoT Device Tester。

## FreeRTOS 認定の準備をする
<a name="idt-preparing-qualification"></a>

**注記**  
AWS IoT Device Tester for FreeRTOS では、最新の FreeRTOS-LTS バージョンの最新のパッチリリースを使用することを強くお勧めします。

IDT for FRQ 2.0 は FreeRTOS の認定です。IDT FRQ 2.0 を実行して認定を行う前に、「*FreeRTOS 認定ガイド*」の「[ボードを資格認定する](https://docs.aws.amazon.com/freertos/latest/qualificationguide/freertos-qualification.html)」を完了する必要があります。ライブラリの移植、テスト、および `manifest.yml` のセットアップについては、「*FreeRTOS 移植ガイド*」の「[FreeRTOS ライブラリの移植](https://docs.aws.amazon.com/freertos/latest/portingguide/afr-porting.html)」を参照してください。FRQ 2.0 には、認定のためのさまざまなプロセスが含まれています。詳細については、「FreeRTOS 認定ガイド」で[認定に関する最新の変更内容](https://docs.aws.amazon.com/freertos/latest/qualificationguide/latest-changes.html)を参照してください。

IDT を実行するには、[FreeRTOS-Libraries-Integration-Tests](https://github.com/FreeRTOS/FreeRTOS-Libraries-Integration-Tests) リポジトリが存在している必要があります。このリポジトリを複製してソースプロジェクトに移植する方法については、「[README.md](https://github.com/FreeRTOS/FreeRTOS-Libraries-Integration-Tests/blob/main/README.md)」を参照してください。FreeRTOS-Libraries-Integration-Tests には、IDT を実行するために、プロジェクトのルートに `manifest.yml` が含まれている必要があります。

**注記**  
IDT は、テストリポジトリでの `UNITY_OUTPUT_CHAR` の実装に依存しています。テスト出力ログとデバイスログは、相互にインターリーブしないようにする必要があります。詳細については、「*FreeRTOS 移植ガイド*」の「[ライブラリロギングマクロの実装](https://docs.aws.amazon.com/freertos/latest/portingguide/afr-library-logging-macros.html)」セクションを参照してください。

## IDT for FreeRTOS のダウンロード
<a name="idt-download-dev-tester-afr"></a>

どのバージョンの FreeRTOS にも、認定テストの実行に対応する IDT for FreeRTOS のバージョンがあります。IDT for FreeRTOS の適切なバージョンを [AWS IoT Device Tester for FreeRTOS のサポートされているバージョンからダウンロードします](https://docs.aws.amazon.com/freertos/latest/userguide/dev-test-versions-afr.html)。

IDT for FreeRTOS を、ファイルシステム上で読み取りおよび書き込みアクセス許可を持っている場所に抽出します。Microsoft Windows ではパスの長さに文字数の制限があるため、IDT for FreeRTOS は、`C:\` や `D:\` などのルートディレクトリに抽出してください。

**注記**  
NFS ディレクトリや Windows ネットワーク共有フォルダなどの共有場所から複数のユーザーが IDT を実行しないようにする必要があります。そうしないと、クラッシュやデータ破損が発生します。IDT パッケージをローカルドライブに抽出することをお勧めします。

## Git のダウンロード
<a name="idt-download-git"></a>

IDT では、ソースコードの整合性を確保するための前提条件として、Git がインストールされている必要があります。

Git をインストールするには、[GitHub](https://github.com/git-guides/install-git) ガイドの手順を実行します。現在インストールされている Git のバージョンを確認するには、ターミナルで `git --version` コマンドを入力します。

**警告**  
IDT は Git を使用して、ディレクトリのステータスがクリーンであるかダーティであるかに沿って動作します。Git がインストールされていない場合、`FreeRTOSIntegrity` テストグループは失敗するか、正常に実行されません。IDT が `git executable not found` や `git command not found` などのエラーを返す場合は、Git をインストールまたは再インストールしてから再試行してください。

**Topics**
+ [FreeRTOS 認定の準備をする](#idt-preparing-qualification)
+ [IDT for FreeRTOS のダウンロード](#idt-download-dev-tester-afr)
+ [Git のダウンロード](#idt-download-git)
+ [AWS アカウントを作成する](#lts-config-aws-account)
+ [AWS IoT Device Tester マネージドポリシー](#managed-policy)
+ [(オプション) をインストールする AWS Command Line Interface](#install-cli)

## AWS アカウントを作成する
<a name="lts-config-aws-account"></a>

**注記**  
IDT 認定スイートは、以下でのみサポートされています。 AWS リージョン   
米国東部 (バージニア北部)
 米国西部 (オレゴン) 
アジアパシフィック (東京) 
欧州 (アイルランド) 

デバイスをテストするために、IDT for FreeRTOS は AWS IoT モノ、FreeRTOS グループ、Lambda 関数などのリソースを作成します。これらのリソースを作成するには、IDT for FreeRTOS では、 AWS アカウントと、テストの実行中にユーザーに代わってリソースにアクセスするアクセス許可を IDT for FreeRTOS に付与する IAM ポリシーを作成して設定する必要があります。

次の手順では、 AWS アカウントを作成して設定します。

1.  AWS アカウントが既にある場合は、次のステップに進みます。それ以外の場合は、[AWS アカウント](https://aws.amazon.com/premiumsupport/knowledge-center/create-and-activate-aws-account/)を作成します。

1. 「[IAM ロールの作成](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-user.html)」のステップを実行します。この時点では、アクセス許可やポリシーを追加しないでください。

1. OTA 認定テストを実行するには、ステップ 4 に進みます。それ以外の場合は、ステップ 5 に進みます。

1.  OTA IAM アクセス許可インラインポリシーを IAM ロールにアタッチします。

   1. 
**重要**  
 次のポリシーテンプレートは、ロールの作成、ポリシーの作成、およびロールへのポリシーのアタッチを行うアクセス許可を IDT に付与します。IDT for FreeRTOS は、ロールを作成するテストに、これらのアクセス許可を使用します。ポリシーテンプレートはユーザーに管理者権限を提供しませんが、アクセス権限を使用して AWS アカウントへの管理者アクセスを取得できます。

   1.  以下のステップを実行して、必要なアクセス許可を IAM ロールにアタッチします。

      1. **[アクセス許可]** ページで、**[アクセス許可の追加]** を選択します。

      1. **[インラインポリシーを作成]** を選択します。

      1. [**JSON**] タブを選択し、次のアクセス許可を [**JSON**] テキストボックスにコピーします。中国リージョン以外の場合は、**[ほとんどのリージョン]** のテンプレートを使用します。中国リージョンの場合は、**[北京および寧夏リージョン]** のテンプレートを使用します。

------
#### [ Most Regions ]

------
#### [ JSON ]

****  

         ```
         {
             "Version":"2012-10-17",		 	 	 
             "Statement": [
                 {
                     "Effect": "Allow",
                     "Action": "iotdeviceadvisor:*",
                     "Resource": [
                         "arn:aws:iotdeviceadvisor:*:*:suiterun/*/*",
                         "arn:aws:iotdeviceadvisor:*:*:suitedefinition/*"
                     ]
                 },
                 {
                     "Effect": "Allow",
                     "Action": "iam:PassRole",
                     "Resource": "arn:aws:iam::*:role/idt*",
                     "Condition": {
                         "StringEquals": {
                             "iam:PassedToService": "iotdeviceadvisor.amazonaws.com"
                         }
                     }
                 },
                 {
                     "Effect": "Allow",
                     "Action": [
                         "execute-api:Invoke*",
                         "iam:ListRoles",
                         "iot:Connect",  
                         "iot:CreateJob",
                         "iot:DeleteJob",
                         "iot:DescribeCertificate", 
                         "iot:DescribeEndpoint",
                         "iot:DescribeJobExecution",
                         "iot:DescribeJob",                                 
                         "iot:DescribeThing",
                         "iot:GetPolicy",
                         "iot:ListAttachedPolicies",
                         "iot:ListCertificates",
                         "iot:ListPrincipalPolicies",
                         "iot:ListThingPrincipals",
                         "iot:ListThings",
                         "iot:Publish",    
                         "iot:UpdateThingShadow",                
                         "logs:CreateLogGroup",
                         "logs:CreateLogStream",
                         "logs:DescribeLogGroups",
                         "logs:DescribeLogStreams",
                         "logs:PutLogEvents",
                         "logs:PutRetentionPolicy"
                     ],
                     "Resource": "*"
                 },
                 {
                     "Effect": "Allow",
                     "Action": "iotdeviceadvisor:*",
                     "Resource": "*"
                 },
                 {
                     "Effect": "Allow",
                     "Action": "logs:DeleteLogGroup",
                     "Resource": "arn:aws:logs:*:*:log-group:/aws/iot/deviceadvisor/*"
                 },
                 {
                     "Effect": "Allow",
                     "Action": "logs:GetLogEvents",
                     "Resource": "arn:aws:logs:*:*:log-group:/aws/iot/deviceadvisor/*:log-stream:*"
                 },
                 {
                     "Effect": "Allow",
                     "Action": [
                         "iam:CreatePolicy",
                         "iam:DetachRolePolicy",
                         "iam:DeleteRolePolicy",
                         "iam:DeletePolicy",
                         "iam:CreateRole",
                         "iam:DeleteRole",
                         "iam:AttachRolePolicy"
                     ],
                     "Resource": [
                         "arn:aws:iam::*:policy/idt*",
                         "arn:aws:iam::*:role/idt*"
                     ]
                 },
                 {
                     "Effect": "Allow",
                     "Action": [
                         "ssm:GetParameters"
                     ],
                     "Resource": [
                         "arn:aws:ssm:*::parameter/aws/service/ami-amazon-linux-latest/amzn2-ami-hvm-x86_64-gp2"
                     ]
                 },
                 {
                     "Effect": "Allow",
                     "Action": [
                         "ec2:DescribeInstances",
                         "ec2:RunInstances",
                         "ec2:CreateSecurityGroup",
                         "ec2:CreateTags",
                         "ec2:DeleteTags"
                     ],
                     "Resource": [
                         "*"
                     ]
                 },
                 {
                     "Effect": "Allow",
                     "Action": [
                         "ec2:CreateKeyPair",
                         "ec2:DeleteKeyPair"
                     ],
                     "Resource": [
                         "arn:aws:ec2:*:*:key-pair/idt-ec2-ssh-key-*"
                     ]
                 },
                 {
                     "Effect": "Allow",
                     "Condition": {
                         "StringEqualsIgnoreCase": {
                             "aws:ResourceTag/Owner": "IoTDeviceTester"
                         }
                     },
                     "Action": [
                         "ec2:TerminateInstances",
                         "ec2:DeleteSecurityGroup",
                         "ec2:AuthorizeSecurityGroupIngress",
                         "ec2:RevokeSecurityGroupIngress"
                     ],
                     "Resource": [
                         "*"
                     ]
                 }
             ]
         }
         ```

------

------
#### [ Beijing and Ningxia Regions ]

         次のポリシーテンプレートは、北京および寧夏リージョンで使用できます。

------

      1. 完了したら、[**ポリシーの確認**] を選択します。

      1. ポリシー名として **IDTFreeRTOSIAMPermissions** と入力します。

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

1.  **AWSIoTDeviceTesterForFreeRTOSFullAccess** を IAM ロールにアタッチします。

   1. 必要なアクセス許可を IAM ロールにアタッチするには、次の手順を実行します。

      1. **[アクセス許可]** ページで、**[アクセス許可の追加]** を選択します。

      1. **ポリシーのアタッチ** を選択します。

      1. **AWSIoTDeviceTesterForFreeRTOSFullAccess** ポリシーを見つけます。チェックボックスをオンにします。

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

1. IDT の認証情報をエクスポートします。詳細については、「[Getting IAM role credentials for CLI access](https://docs.aws.amazon.com/singlesignon/latest/userguide/howtogetcredentials.html)」を参照してください。

## AWS IoT Device Tester マネージドポリシー
<a name="managed-policy"></a>

`AWSIoTDeviceTesterForFreeRTOSFullAccess` 管理ポリシーには、バージョンチェック、自動更新機能、メトリクスの収集に関する以下の AWS IoT Device Tester アクセス許可が含まれています。
+ `iot-device-tester:SupportedVersion`

  サポートされている製品、テストスイート、IDT バージョンのリストを取得する AWS IoT Device Tester アクセス許可を付与します。
+ `iot-device-tester:LatestIdt`

  ダウンロード可能な最新の IDT バージョンを取得する AWS IoT Device Tester アクセス許可を付与します。
+ `iot-device-tester:CheckVersion`

  IDT、テストスイート、製品のバージョンの互換性をチェックする AWS IoT Device Tester アクセス許可を付与します。
+ `iot-device-tester:DownloadTestSuite`

  テストスイートの更新をダウンロードする AWS IoT Device Tester アクセス許可を付与します。
+ `iot-device-tester:SendMetrics`

   AWS IoT Device Tester 内部使用状況に関するメトリクスを収集する AWS アクセス許可を付与します。

## (オプション) をインストールする AWS Command Line Interface
<a name="install-cli"></a>

一部のオペレーションを実行する AWS CLI には、 を使用することをお勧めします。 AWS CLI がインストールされていない場合は、「[AWS CLIのインストール](https://docs.aws.amazon.com/cli/latest/userguide/installing.html)」の手順を実行します。

コマンドライン**aws configure**から を実行して、使用する AWS CLI AWS リージョンの を設定します。IDT for FreeRTOS をサポートする AWS リージョンについては、[AWS 「リージョンとエンドポイント](https://docs.aws.amazon.com/general/latest/gr/rande.html#amazon-freertos-ota-control)」を参照してください。**aws configure** の詳細については、[**aws configure** を使用したクイック設定](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-quickstart.html#cli-configure-quickstart-config)を参照してください。