

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# LTS 검증 사전 조건 설정
<a name="lts-idt-dev-tester-prereqs"></a>

이 섹션에서는를 사용하여 마이크로컨트롤러를 테스트하기 위한 사전 조건을 설명합니다 AWS IoT Device Tester.

## FreeRTOS 검증 준비
<a name="idt-preparing-qualification"></a>

**참고**  
AWS IoT Device Tester FreeRTOS용는 최신 FreeRTOS-LTS 버전의 최신 패치 릴리스를 사용할 것을 적극 권장합니다.

IDT 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)을 참조하세요.

## FreeRTOS용 IDT 다운로드
<a name="idt-download-dev-tester-afr"></a>

FreeRTOS의 모든 버전에는 검증 테스트를 수행하기 위한 해당 버전의 FreeRTOS용 IDT가 있습니다. FreeRTOS용의 [ 지원되는 버전에서 적절한 버전의 FreeRTOS AWS IoT Device Tester 용](https://docs.aws.amazon.com/freertos/latest/userguide/dev-test-versions-afr.html) IDT를 다운로드합니다.

읽기 및 쓰기 권한이 있는 파일 시스템의 위치에 FreeRTOS용 IDT의 압축을 풉니다. Microsoft Windows에는 경로 길이에 문자 제한이 있으므로 FreeRTOS용 IDT를 `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)
+ [FreeRTOS용 IDT 다운로드](#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 리전   
미국 동부(버지니아 북부)
 미국 서부(오레곤) 
아시아 태평양(도쿄) 
유럽(아일랜드) 

디바이스를 테스트하기 위해 FreeRTOS용 IDT는 AWS IoT 사물, FreeRTOS 그룹 및 Lambda 함수와 같은 리소스를 생성합니다. 이러한 리소스를 생성하려면 FreeRTOS용 IDT에서 AWS 계정을 생성하고 구성해야 하며, 테스트를 실행하는 동안 사용자를 대신하여 리소스에 액세스할 수 있는 권한을 FreeRTOS용 IDT에 부여하는 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 권한을 부여합니다. FreeRTOS용 IDT는 역할을 생성하는 테스트에 이러한 권한을 사용합니다. 정책 템플릿은 사용자에게 관리자 권한을 제공하지 않지만 권한을 사용하여 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. 작업이 완료되면 **정책 검토(Review policy)**를 선택합니다.

      1. 정책 이름으로 **IDTFreeRTOSIAMPermissions**를 입력합니다.

      1. **정책 생성**을 선택합니다.

1.  IAM 역할에 **AWSIoTDeviceTesterForFreeRTOSFullAccess**를 연결합니다.

   1. IAM 역할에 필요한 권한을 연결하려면

      1. **권한** 페이지에서 **권한 추가**를 선택합니다.

      1. **정책 연결**을 선택합니다.

      1. **AWSIoTDeviceTesterForFreeRTOSFullAccess** 정책을 검색합니다. 확인란을 선택합니다.

   1. **권한 추가**를 선택합니다.

1. IDT용 자격 증명 정보를 내보냅니다. 자세한 내용은 [CLI 액세스를 위한 IAM 역할 자격 증명 정보 가져오기](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 리전에 AWS CLI 대해를 구성합니다. FreeRTOS용 IDT를 지원하는 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)을 참조하세요.