

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

# 에서 Raspberry Pi 프로비저닝 AWS IoT
<a name="iot-dc-install-provision"></a>

이 섹션의 절차는 및 AWS IoT Device Client가 AWS CLI 설치된 저장된 microSD 이미지로 시작하고 Raspberry Pi를 프로비저닝하는 AWS IoT 리소스 및 디바이스 인증서를 생성합니다 AWS IoT.

## Raspberry Pi에 microSD 카드를 설치합니다.
<a name="iot-dc-install-dc-restore"></a>

이 절차에서는 필요한 소프트웨어가 로드되고 Raspberry Pi에 구성된 microSD 카드를 설치하고이 학습 경로의 자습서를 계속할 수 AWS 계정 있도록를 구성합니다.

이 학습 경로의 연습 및 튜토리얼에 필요한 소프트웨어가 있는 [(선택 사항) microSD 카드 이미지 저장](iot-dc-install-download.md#iot-dc-install-dc-save)의 microSD 카드를 사용합니다.

**Raspberry Pi에 microSD 카드를 설치하려면**

1. Raspberry Pi의 전원을 분리한 상태에서 microSD 카드를 Raspberry Pi에 삽입합니다.

1. Raspberry Pi에 전원을 공급합니다.

1. 약 1분 후 로컬 호스트 컴퓨터에서 터미널 창 세션을 다시 시작하고 Raspberry Pi에 로그인합니다.

1. 로컬 호스트 컴퓨터의 터미널 창에서 Raspberry Pi의 **액세스 키 ID(Access Key ID)** 및 **비밀 액세스 키(Secret Access Key)** 자격 증명을 사용하여

   1. 다음 명령을 사용하여 AWS 구성 앱을 실행합니다.

      ```
      aws configure
      ```

   1. 메시지가 표시되면 자격 AWS 계정 증명 및 구성 정보를 입력합니다.

      ```
      AWS Access Key ID [****************YXYX]: your Access Key ID
      AWS Secret Access Key [****************YXYX]: your Secret Access Key
      Default region name [us-west-2]: your AWS 리전 code
      Default output format [json]: json
      ```

자격 AWS 계정 증명을 복원한 후에는 로 계속 진행할 준비가 된 것입니다[에서 디바이스 프로비저닝 AWS IoT Core](#iot-dc-install-dc-provision).

## 에서 디바이스 프로비저닝 AWS IoT Core
<a name="iot-dc-install-dc-provision"></a>

이 섹션의 절차에서는 Raspberry Pi를 프로비저닝하는 AWS IoT 리소스를 생성합니다 AWS IoT. 이러한 리소스를 생성할 때 다양한 정보를 기록하라는 메시지가 나타납니다. 이 정보는 다음 절차에서 AWS IoT Device Client 구성에 사용됩니다.

Raspberry Pi가 함께 작동하려면 프로비저닝해야 AWS IoT합니다. 프로비저닝은 Raspberry Pi를 IoT 디바이스로 지원하는 데 필요한 AWS IoT 리소스를 생성하고 구성하는 프로세스입니다.

Raspberry Pi의 전원을 켜고 다시 시작한 상태에서 로컬 호스트 컴퓨터의 터미널 창을 Raspberry Pi에 연결하고 이 절차를 완료합니다.

**Topics**
+ [디바이스 인증서 파일 생성 및 다운로드](#iot-dc-install-dc-provision-certs)
+ [AWS IoT 리소스 생성](#iot-dc-install-dc-provision-resources)

### 디바이스 인증서 파일 생성 및 다운로드
<a name="iot-dc-install-dc-provision-certs"></a>

이 절차는 이 데모에 대한 디바이스 인증서 파일을 생성합니다.

**Raspberry Pi에 대한 디바이스 인증서 파일을 생성하고 다운로드하려면**

1. 로컬 호스트 컴퓨터의 터미널 창에서 이 명령을 입력하여 디바이스에 대한 디바이스 인증서 파일을 생성합니다.

   ```
   mkdir ~/certs/testconn
   aws iot create-keys-and-certificate \
   --set-as-active \
   --certificate-pem-outfile "~/certs/testconn/device.pem.crt" \
   --public-key-outfile "~/certs/testconn/public.pem.key" \
   --private-key-outfile "~/certs/testconn/private.pem.key"
   ```

   이 명령은 다음과 같은 응답을 반환합니다. 나중에 사용하기 위해 `certificateArn` 값을 적어 둡니다.

   ```
   {
       "certificateArn": "arn:aws:iot:us-west-2:57EXAMPLE833:cert/76e7e4edb3e52f52334be2f387a06145b2aa4c7fcd810f3aea2d92abc227d269",
       "certificateId": "76e7e4edb3e52f5233EXAMPLE7a06145b2aa4c7fcd810f3aea2d92abc227d269",
       "certificatePem": "-----BEGIN CERTIFICATE-----\nMIIDWTCCAkGgAwIBAgI_SHORTENED_FOR_EXAMPLE_Lgn4jfgtS\n-----END CERTIFICATE-----\n",
       "keyPair": {
           "PublicKey": "-----BEGIN PUBLIC KEY-----\nMIIBIjANBgkqhkiG9w0BA_SHORTENED_FOR_EXAMPLE_ImwIDAQAB\n-----END PUBLIC KEY-----\n",
           "PrivateKey": "-----BEGIN RSA PRIVATE KEY-----\nMIIEowIBAAKCAQE_SHORTENED_FOR_EXAMPLE_T9RoDiukY\n-----END RSA PRIVATE KEY-----\n"
       }
   }
   ```

1. 이 명령을 입력하여 인증서 디렉터리와 해당 파일에 대한 권한을 설정합니다.

   ```
   chmod 745 ~
   chmod 700 ~/certs/testconn
   chmod 644 ~/certs/testconn/*
   chmod 600 ~/certs/testconn/private.pem.key
   ```

1. 이 명령을 실행하여 인증서 디렉터리 및 파일에 대한 권한을 검토합니다.

   ```
   ls -l ~/certs/testconn
   ```

   명령의 출력은 파일 날짜와 시간이 다르다는 점을 제외하고 여기에 표시되는 것과 같아야 합니다.

   ```
   -rw-r--r-- 1 pi pi 1220 Oct 28 13:02 device.pem.crt
   -rw------- 1 pi pi 1675 Oct 28 13:02 private.pem.key
   -rw-r--r-- 1 pi pi  451 Oct 28 13:02 public.pem.key
   ```

이 시점에서 Raspberry Pi에 디바이스 인증서 파일이 설치되어 있고 [AWS IoT 리소스 생성](#iot-dc-install-dc-provision-resources)을 계속할 수 있습니다.

### AWS IoT 리소스 생성
<a name="iot-dc-install-dc-provision-resources"></a>

이 절차에서는 디바이스가 AWS IoT 기능 및 서비스에 액세스하는 데 필요한 리소스를 생성 AWS IoT 하여에 디바이스를 프로비저닝합니다.

**에서 디바이스를 프로비저닝하려면 AWS IoT**

1. 로컬 호스트 컴퓨터의 터미널 창에서 이 명령을 입력하여 AWS 계정의 디바이스 데이터 엔드포인트 주소를 가져옵니다.

   ```
   aws iot describe-endpoint --endpoint-type IoT:Data-ATS
   ```

   이전 단계의 명령에서 다음과 같은 응답이 반환됩니다. 나중에 사용하기 위해 `endpointAddress` 값을 적어 둡니다.

   ```
   {
       "endpointAddress": "a3qjEXAMPLEffp-ats.iot.us-west-2.amazonaws.com"
   }
   ```

1. Raspberry Pi에 대한 AWS IoT 사물 리소스를 생성하려면이 명령을 입력합니다.

   ```
   aws iot create-thing --thing-name "DevCliTestThing"
   ```

    AWS IoT 사물 리소스가 생성된 경우 명령은 이와 같은 응답을 반환합니다.

   ```
   {
       "thingName": "DevCliTestThing",
       "thingArn": "arn:aws:iot:us-west-2:57EXAMPLE833:thing/DevCliTestThing",
       "thingId": "8ea78707-32c3-4f8a-9232-14bEXAMPLEfd"
   }
   ```

1. 터미널 창에서

   1. `nano` 등의 텍스트 편집기를 엽니다.

   1. 이 JSON 정책 문서를 복사하여 열려 있는 텍스트 편집기에 붙여 넣습니다.  
****  

      ```
      {
          "Version":"2012-10-17",		 	 	 
          "Statement": [
              {
                  "Effect": "Allow",
                  "Action": [
                      "iot:Publish",
                      "iot:Subscribe",
                      "iot:Receive",
                      "iot:Connect"
                  ],
                  "Resource": [
                      "*"
                  ]
              }
          ]
      }
      ```
**참고**  
이 정책 문서는 모든 리소스에 연결, 수신, 게시 및 구독을 위한 권한을 충분히 부여합니다. 일반적으로 정책은 특정 리소스에만 특정 작업을 수행할 수 있는 권한만 부여합니다. 그러나 초기 디바이스 연결 테스트의 경우 이 테스트 중 액세스 문제 발생 가능성을 최소화하기 위해 이 지나치게 일반적이고 허용적인 정책이 사용됩니다. 후속 튜토리얼에서는 정책 설계의 더 나은 사례를 보여주기 위해 보다 좁은 범위의 정책 문서를 사용할 것입니다.

   1. 텍스트 편집기에서 파일을 **\$1/policies/dev\$1cli\$1test\$1thing\$1policy.json**으로 저장합니다.

1. 이전 단계의 정책 문서를 사용하여 AWS IoT 정책을 생성하려면이 명령을 실행합니다.

   ```
   aws iot create-policy \
   --policy-name "DevCliTestThingPolicy" \
   --policy-document "file://~/policies/dev_cli_test_thing_policy.json"
   ```

   정책이 생성되면 명령에서 다음과 같은 응답을 반환합니다.

   ```
   {
       "policyName": "DevCliTestThingPolicy",
       "policyArn": "arn:aws:iot:us-west-2:57EXAMPLE833:policy/DevCliTestThingPolicy",
       "policyDocument": "{\n    \"Version\": \"2012-10-17\",		 	 	 \n    \"Statement\": [\n        {\n            \"Effect\": \"Allow\",\n            \"Action\": [\n                \"iot:Publish\",\n                \"iot:Subscribe\",\n                \"iot:Receive\",\n                \"iot:Connect\"\n            ],\n            \"Resource\": [\n                \"*\"\n            ]\n        }\n    ]\n}\n",
       "policyVersionId": "1"
   }
   ```

1. 이 명령을 실행하여 디바이스 인증서에 정책을 연결합니다. `certificateArn`을 이전에 저장한 `certificateArn` 값으로 바꿉니다.

   ```
   aws iot attach-policy \
   --policy-name "DevCliTestThingPolicy" \
   --target "certificateArn"
   ```

   성공한 경우 이 명령은 아무 것도 반환하지 않습니다.

1. 이 명령을 실행하여 디바이스 인증서를 AWS IoT 사물 리소스에 연결합니다. `certificateArn`을 이전에 저장한 `certificateArn` 값으로 바꿉니다.

   ```
   aws iot attach-thing-principal \
   --thing-name "DevCliTestThing" \
   --principal "certificateArn"
   ```

   성공한 경우 이 명령은 아무 것도 반환하지 않습니다.

에서 디바이스를 성공적으로 프로비저닝 AWS IoT했으면 로 계속 진행할 준비가 된 것입니다[연결을 테스트하도록 AWS IoT Device Client 구성](iot-dc-install-configure.md).