에서 Raspberry Pi 프로비저닝 AWS IoT - AWS IoT Core

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

에서 Raspberry Pi 프로비저닝 AWS IoT

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

Raspberry Pi에 microSD 카드를 설치합니다.

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

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

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

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

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

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

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

      aws configure
    2. 메시지가 표시되면 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.

에서 디바이스 프로비저닝 AWS IoT Core

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

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

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

디바이스 인증서 파일 생성 및 다운로드

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

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" } }
  2. 이 명령을 입력하여 인증서 디렉터리와 해당 파일에 대한 권한을 설정합니다.

    chmod 745 ~ chmod 700 ~/certs/testconn chmod 644 ~/certs/testconn/* chmod 600 ~/certs/testconn/private.pem.key
  3. 이 명령을 실행하여 인증서 디렉터리 및 파일에 대한 권한을 검토합니다.

    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 리소스 생성을 계속할 수 있습니다.

AWS IoT 리소스 생성

이 절차는 디바이스가 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" }
  2. 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" }
  3. 터미널 창에서

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

    2. 이 JSON 정책 문서를 복사하여 열린 텍스트 편집기에 붙여넣습니다.

      { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iot:Publish", "iot:Subscribe", "iot:Receive", "iot:Connect" ], "Resource": [ "*" ] } ] }
      참고

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

    3. 텍스트 편집기에서 파일을 ~/policies/dev_cli_test_thing_policy.json으로 저장합니다.

  4. 이 명령을 실행하여 이전 단계의 정책 문서를 사용하여 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" }
  5. 이 명령을 실행하여 디바이스 인증서에 정책을 연결합니다. certificateArn을 이전에 저장한 certificateArn 값으로 바꿉니다.

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

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

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

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

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

에서 디바이스를 성공적으로 프로비저닝한 후에는 로 계속할 준비가 AWS IoT되었습니다연결을 테스트하도록 AWS IoT Device Client 구성.