AWS IoT 장치 프로비저닝(2) - Fleet Provisioning

2022. 6. 9. 23:30·개발/AWS

이전 글에 이어서

https://heeyodev.tistory.com/7

 

AWS IoT 장치 프로비저닝(1) - JITP/JITR/MAR

나중에 AWS로 인프라 마이그레이션 해야 할 때 알아둬야 하는 내용을 미리 공부하는 차원에서 기록. Aws official doc이 있다. https://docs.aws.amazon.com/ko_kr/iot/latest/developerguide/iot-provision.html..

heeyodev.tistory.com

 

Fleet Provisioning

Fleet Provisioning provides two ways to provision devices with unique credentials after they are delivered to end customers: by Trusted User or by Claim.

 

Unique identity 가 없는 장치들 같은 경우 Fleet Provisioning을 사용할 수 있는데,

그 방법은 2가지로 by 신뢰할 수 있는 사용자에 혹은 by Claim(?) 방식이라고 한다.

 

1. Fleet Provisioning by Trusted User

AWS IoT API를 통해서 mobile app이 임시 인증서와 private key를 생성하게 할 수 있다.

장치는 별도의 인증서 없이 출하되고, Trusted User가 mobile app 등을 통해서 임시 인증서와 private key를 생성한다.

 

요즘 홈 IoT 장치 구매하면 장치가 띄우는 WiFi에 접속 후, 로그인해서 본인 계정에 장치 등록하는 것이랑 같은 방식인 듯.

 

신뢰할 수 있는 유저에 의한 방식임으로, 높은 보안이 필요할 때 추천하는 방식이라고 함.

(신뢰할 수 있는 유저를 신뢰할 수 있는 신뢰성 있는 근거는? 아 ㅋㅋ)

 

  1. 모바일 app이 Trusted User APIs를 통해 임시 X.509 인증서와 private key를 발급받는다(이는 5분간만 유효하다).
  2. 모바일 app이 임시 인증 정보(인증서, private key)를 장치로 전달한다.(WiFi / BLE 등)
  3. 장치는 AWS IoT Cloud에 접속해 임시 인증서를 unique 한 인증서로 교환한다.
  4. 이 과정이 진행되면서 AWS 계정 Thing name, Policy, 그리고 인증서가 등록된다.

이를 수행하기 위해서

  • 제조사는 Trusted User APIs 통해서 일련 과정 수행할 수 있는 앱을 개발/유지해야 한다고 한다..
  • Lamda 통해서 추가적인 인증 절차를 구성할 수 있다고 한다.

장치 요구사항

  • BLE, WiFi, USB 등 인증서를 안전하게 전달받을 수 있는 통신 방안이 있어야 한다.
  • Fleet Provisioning MQTT 토픽에 publish/subscribe 할 수 있는 로직 처리가 가능해야 함.
    • 그냥 AWS IoT SDK 쓸 수 있어야 한다는 거랑 같은 의미인 듯
  • (안전한) 저장장치에 perment credential을 저장할 수 있어야 함
    • Permenant..? Renewal 필요 없는 인증서인 건가? - 알아볼 필요가 있다.

 

2. Fleet Provisioning by Claim

위의 by Trusted Users 방식 장치 요구사항 중, 

  • BLE, WiFi, USB 등 인증서를 안전하게 전달받을 수 있는 통신 방안이 있어야 한다.

이게 충족되지 못하는 장치들을 위한 Provisioning 방식이라고 한다.

  • 제조사는 각 장치에 shared claim 인증서를 firmware에 포함시켜야 한다.
  • 해당 claim 인증서는 장치 batch별로 unique 해야 한다.

장치가 AWS IoT에 처음으로 연결하면, claim 인증서를 unique 한 X.509 인증서와 private key로 교환을 한다.

이때 장치는 unique token을 전송해야 한다고 한다(시리얼 넘버나 embedded hardware secret)

그 unique token을 allow list랑 대조해서 검증을 할 수 있다.(valid 한지)

 

제조사는

  • Fleet Provisioning template과 추가 검증 로직을 처리하는 Lamda를 지속적으로 관리해야 하며
  • claim 인증서를 보호하고 주기적으로 변경을 해서 오용을 막아야 한다 한다.
    • 유출되면 너도 나도 인증이 가능하니, 추가 검증 로직이 필요하고, 주기적으로 인증서 변경도 ㅇㅇ..

장치 요구사항

  • Fleet Provisioning MQTT 토픽에 publish/subscribe 할 수 있는 로직 처리가 가능해야 함.
  • (안전한) 저장장치에 perment credential을 저장할 수 있어야 함

 

 

 

글만 보면 이해 안 됐는데, 이렇게 한번 쭉 정리하면서 정독하니까 이해가 다 된듯하다.

 

아마 나는 by Trusted User 방식을 채택하여 Proof of conecpt을 진행할 듯하다.

 

여러분도 재미있는 코딩 하시길

 

'개발 > AWS' 카테고리의 다른 글

IoT 인프라 개선(3) - Offline-first Database 서비스 선정 - AWS DataStore  (0) 2022.06.16
Cloud guru에 가입했다.  (0) 2022.06.10
IoT 인프라 개선(2) - AWS IoT Core & AWS Amplify  (0) 2022.06.10
AWS IoT 장치 프로비저닝(1) - JITP/JITR/MAR  (0) 2022.06.09
IoT 인프라 개선  (0) 2022.05.22
'개발/AWS' 카테고리의 다른 글
  • Cloud guru에 가입했다.
  • IoT 인프라 개선(2) - AWS IoT Core & AWS Amplify
  • AWS IoT 장치 프로비저닝(1) - JITP/JITR/MAR
  • IoT 인프라 개선
거북이황
거북이황
nomad.hwang@gmail.com
  • 거북이황
    거북이황 개발하는 이야기
    거북이황
  • 전체
    오늘
    어제
    • 분류 전체보기 (25)
      • 프로젝트 (4)
        • 댓글리 (4)
      • 개발 (19)
        • MCU (2)
        • Linux (3)
        • Project (1)
        • AWS (9)
      • 공부 (2)
        • Network (2)
        • CS (0)
  • 블로그 메뉴

    • Github
    • 홈
    • 태그
    • 방명록
  • 링크

    • Github
    • Gist
  • 공지사항

  • 인기 글

  • 태그

    Nodejs cmd
    nodejs 설치
    reverse tunneling
    IOT
    orangepi
    NodeJS LTS
    Linux
    Fleet
    Ai
    fleet provision
    SSH
    aws iot provision
    빌드
    ssh tunneling
    댓글리
    Kernel
    reverse proxy
    provisiong
    aws
    armbian
    iot core
    오랜지파이
    Nodejs 16
    fleet provisioning
    nodejs
    방화벽
    iot provision
    ssh proxy
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.4
거북이황
AWS IoT 장치 프로비저닝(2) - Fleet Provisioning
상단으로

티스토리툴바