Amazon AWS/IoT Core

IoT Core 리소스 생성(정책 및 사물 생성)

홍띠 2022. 4. 17. 16:18

이번 글에서는 AWS에서 MQTT를 사용하기 위해 IoT Core에 리소스를 생성하는것을 다뤄보고자 한다.

 

AWS IoT Core란?

AWS IoT Core는 연결된 디바이스가 쉽고 안전하게 클라우드 애플리케이션 및 다른 디바이스와 상호 작용할 수 있게 해주는 관리형 클라우드 플랫폼입니다. AWS IoT Core는 수십억 개의 디바이스와 수조 건의 메시지를 지원하고, 안전하고 안정적으로 이러한 메시지를 처리하여 AWS 엔드포인트 및 다른 디바이스로 라우팅할 수 있습니다. AWS IoT Core의 경우, 디바이스가 연결되어 있지 않더라도 언제든 애플리케이션에서 모든 디바이스를 추적하고 디바이스와 통신할 수 있습니다.

 

IoT Core에서 지원하는 프로토콜

  • MQTT(메시지 큐 및 원격 분석 전송)
  • MQTT over WSS(웹 소켓 보안)
  • HTTPS(하이퍼텍스트 전송 프로토콜 - 보안)
  • LoRaWAN(장거리 광역 네트워크)

IoT Core 리소스 생성

디바이스가 IoT Core에 퍼블리싱 할수 있도록 리소스를 생성해야 한다.  리소스를 생성하기 위해서는 먼저 정책을 생성하고, 생성된 정책을 따르는 사물을 생성해주면 된다.

 

1. AWS IoT 정책 생성

AWS IoT 콘솔에서 보안 메뉴의 정책을 선택하면 아래와 같은 페이지가 나올것이다.

여기서 정책 생성 버튼을 클릭하여 생성페이지로 넘어간다.

 

정책 속성에서 정책의 이름을 입력하고, 정책문서의 정책 효과에서 허용을 선택하여 리소스에 엑세스 권한을 부여해준다.

허용을 선택함으로써, 인증서에 해당 정책이 연결된 모든 클라이언트들이 아래 정책 작업 필드에 나열된 작업들을 수행 할수 있게 된다.

 

이제 정책 작업과 정책 리소스를 추가해주면 되는데, 쉽게 말하면 여기서 지정된 리소스들에 한해서 지정된 작업을 수행하도록 권한을 주는것이다. 이번에는 공식홈페이지 튜토리얼을 따라 아래와 같이 설정하였다. 그러나, 보안을 강화하기 위해서는 추후에 와일드카드 문자가 아닌 클라이언트 ARN으로 변경해야 한다.

아래의 공식 홈페이지 설명을 읽어보면 좀 더 이해가 쉽게 될것 같다.

정책 문서(Policy document) 섹션에서 AWS IoT Core 작업에 대한 리소스 액세스 권한을 부여하거나 거부하는 정책 문을 생성합니다. 모든 클라이언트가 iot:Connect를 수행할 수 있도록 허용하는 정책 문을 생성하려면 다음 단계를 따르세요.

정책 효과(Policy effect) 필드에서 허용(Allow)을 선택합니다. 이렇게 하면 인증서에 이 정책이 연결된 모든 클라이언트가 정책 작업(Policy action) 필드에 나열된 작업을 수행할 수 있습니다.

정책 작업(Policy action) 필드에서 iot:Connect 등의 정책 작업을 선택합니다. 정책 작업이란 디바이스가 Device SDK에서 예제 프로그램을 실행할 때 수행 권한이 필요한 작업입니다.

정책 리소스(Policy resource) 필드에 Amazon 리소스 이름(ARN) 또는 *를 입력합니다. *는 모든 클라이언트(디바이스)를 선택합니다.

iot:Receiveiot:Publishiot:Subscribe에 대한 정책 문을 생성하려면 새 명령문 추가(Add new statement)를 선택한 다음 단계를 반복합니다.

편의를 위해 이 빠른 시작에서는 와일드카드(*) 문자가 사용됩니다. 보안을 강화하려면 와일드카드 문자 대신 클라이언트 ARN을 리소스로 지정하여 메시지를 연결하고 게시할 수 있는 클라이언트(디바이스)를 제한해야 합니다. 클라이언트 ARN은 다음 형식을 따릅니다. arn:aws:iot:your-region:your-aws-account:client/my-client-id  그러나 리소스(클라이언트 디바이스, 사물 섀도우 등)를 먼저 생성해야 해당 ARN을 정책에 할당할 수 있습니다. 자세한 내용은 AWS IoT Core 작업 리소스를 참조하세요.

 

2. AWS IoT Core 사물 객체 만들기

정책 생성이 완료 되었으면, 다시 IoT 콘솔에서 관리 메뉴의 사물을 선택하여 사물을 생성하도록 한다. 사물객체는 AWS IoT에 연결된 특정 디바이스 또는 논리적 엔터티를 나타낸다.

 

사물 생성을 선택하고, 등록할 사물수에서 단일 사물 생성으로 설정 후 다음 버튼을 클릭하면 사물 속성을 지정하는 페이지가 나온다.

 

여기서, 사물이름을 입력 하는데, 이때 한번 지정된 이름은 변경 불가하다! 디바이스 섀도우는 없음으로 선택한다.

디바이스 인증서 구성에서 새 인증서 자동생성을 선택하고, 정책 연결에서 좀전에 생성한 정책을 선택하고 사물 생성을 진행한다.

 

사물생성이 완료되면 인증서 및 키를 다운로드 할수 있는 페이지가 나온다. 여기서 클라이언트 디바이스에 설치할 인증서와 키 파일을 다운로드 하면된다.

⚠️ 해당 페이지를 나가면 더이상 인증서 파일에 엑세스 불가하므로 페이지 나가기 전에 꼭 다운로드 할것!!!

 

이렇게 하면, 클라이언트 디바이스에서 IoT Core에 연결 할 수 있는 기본적인 준비는 완료 된것이다.

참고

https://docs.aws.amazon.com/ko_kr/iot/latest/developerguide/create-iot-resources.html