Notice
Recent Posts
Recent Comments
Link
투케이2K
95. (Aws/Amazon) [Aws Iot Core] AWS 신뢰할 수 있는 사용자 ( Trust User ) 에 의한 App To Device 프로비저닝 프로세스 정리 본문
Aws (Amazon)
95. (Aws/Amazon) [Aws Iot Core] AWS 신뢰할 수 있는 사용자 ( Trust User ) 에 의한 App To Device 프로비저닝 프로세스 정리
투케이2K 2025. 7. 28. 20:12728x90
[개발 환경 설정]
개발 환경 : Aws / Amazon Web Services

[설명 정리]
// --------------------------------------------------------------------------------------
[개발 및 환경]
// --------------------------------------------------------------------------------------
- 인프라 : Aws / Amazon Web Services
- 기술 구분 : Aws / Iot Core / Provisioning
- 사전) Aws Iot Core 간단 설명 :
>> AWS IoT 는 IoT 디바이스를 다른 디바이스 및 AWS 클라우드 서비스에 연결하는 클라우드 서비스를 제공합니다.
>> 디바이스가에 연결할 수 있는 경우 AWS IoT는 AWS 가 제공하는 클라우드 서비스에 디바이스를 AWS IoT 연결할 수 있습니다.
>> AWS IoT Core 메시지 브로커는 MQTT 및 MQTT over WSS 프로토콜을 사용하여 메시지를 게시하고 구독하는 디바이스 및 클라이언트를 지원합니다.
- HTTPS 프로토콜을 사용하여 메시지를 게시하는 디바이스와 클라이언트도 지원합니다.
- 사전) AWS 신뢰할 수 있는 사용자 ( Trust User ) 에 의한 프로비저닝 간단 설명 :
>> 신뢰할 수 있는 사용자에 의한 프로비저닝은 CSR (Certificate Signing Request) 인증서 신청 요청 후 응답 받은 인증서를 기기에 전달해 프로비저닝을 수행하는 방식입니다.
- 클레임 프로비저닝과 가장 큰 차이로는 클레임 프로비저닝는 초기 프로비저닝 수행에 필요한 인증서를 기기에 내장
>> 신뢰할 수 있는 사용자에 의한 프로비저닝을 수행하기 위해서는 신뢰할 수 있는 사용자의 액세스 및 권한을 관리해야 합니다
- 신뢰할 수 있는 사용자를 인증하고 이 절차를 수행하는 데 필요한 AWS IoT 기능 및 API 작업에 대한 액세스 권한을 부여하는 신뢰할 수 있는 사용자에 대한 계정을 제공 및 유지 관리
// --------------------------------------------------------------------------------------
// --------------------------------------------------------------------------------------
[설 명]
// --------------------------------------------------------------------------------------
1. 신뢰할 수 있는 사용자가 프로비저닝 모바일 앱 또는 웹 서비스에 로그인합니다.
2. 모바일 앱 또는 웹 애플리케이션은 IAM 역할 (AccessKey, SecretKey) 을 사용해 CreateProvisioningClaim 을 호출하여 AWS IoT 에서 임시 프로비저닝 클레임 인증서를 가져옵니다.
>> 보안을 위해 CreateProvisioningClaim 에서 반환한 임시 프로비저닝 클레임 인증서는 5분 후에 만료됩니다.
>> 다음 단계에서는 임시 프로비저닝 클레임 인증서가 만료되기 전에 유효한 인증서를 반환해야 합니다.
>> 임시 프로비저닝 클레임 인증서는 계정의 인증서 목록에 나타나지 않습니다.
>> CreateProvisioningClaim 요청 예시 :
- POST /provisioning-templates/templateName/provisioning-claim HTTP/1.1
>> CreateProvisioningClaim 응답 예시 :
HTTP/1.1 200
Content-type: application/json
{
"certificateId": "string", ----------> 인증서의 ID입니다
"certificatePem": "string", ----------> 인증서 Pem
"expiration": number, ----------> 인증서 만료 시간
"keyPair": { ----------> 프로비저닝 클레임 키 쌍
"PrivateKey": "string",
"PublicKey": "string"
}
}
3. 모바일 앱 또는 웹 애플리케이션은 Wi-Fi 자격 증명과 같은 필수 구성 정보와 함께 임시 프로비저닝 클레임 인증서를 디바이스에 제공합니다.
>> 와이파이 SSID 정보와 PW 정보를 앱에서 입력 받습니다
>> App To Device 간 TCP/IP 소켓 통신 연결을 수행합니다
>> App To Device 간 프로비저닝에 필요한 정보를 전달합니다 (Wifi Ssid, Wifi Pw, 임시 프로비저닝 클레임 인증서)
4. 디바이스는 임시 프로비저닝 클레임 인증서를 사용하여 AWS IoT 디바이스 클라이언트를 통해 AWS IoT 에 연결합니다.
5. 디바이스는 AWS IoT 임시 프로비저닝 클레임 인증서로에 연결한 후 5분 이내에 사물 인증서와 프라이빗 키를 가져옵니다.
>> AWS IoT CreateKeysAndCertificate 를 호출하여 인증 기관을 거쳐 새 AWS 인증서와 프라이빗 키를 생성합니다
- CreateCertificateFromCsr 을 호출 인증서를 생성하는 방법도 있습니다
>> CreateKeysAndCertificate 요청 예시 :
- 빈 메시지 페이로드와 함께 $aws/certificates/create/payload-format 에 메시지를 게시합니다.
- payload-format : cbor 또는 json와 같은 메시지 페이로드 형식입니다.
>> CreateKeysAndCertificate 응답 예시 :
{
"certificateId": "string", -------------------> 인증서 ID입니다
"certificatePem": "string", -------------------> PEM 형식의 인증서 데이터입니다
"privateKey": "string", -------------------> 프라이빗 키입니다
"certificateOwnershipToken": "string" -------------------> 프로비저닝하는 동안 인증서의 소유권을 증명하는 토큰입니다
}
6. 디바이스는 미리 정의 된 템플릿에 RegisterThing 사물 등록 요청을 수행합니다
>> 템플릿에 사물 등록 요청을 수행하며, 등록이 완료 된 경우 Response ThingName 을 발급 받습니다
>> RegisterThing 요청 예시 :
- $aws/provisioning-templates/templateName/provision/payload-format 에 메시지를 게시합니다.
{
"certificateOwnershipToken": "string", -------------> 인증서 소유권을 증명하는 토큰입니다.
"parameters": { ----------------> 템플릿 등록 요청 페이로드 전문입니다
"string": "string",
...
}
}
>> RegisterThing 응답 예시 :
- $aws/provisioning-templates/templateName/provision/payload-format/accepted 을 구독합니다.
{
"deviceConfiguration": { -------------> 템플릿에 정의된 디바이스 구성입니다.
"string": "string",
...
},
"thingName": "string" ----------------> 프로비저닝 중에 생성된 IoT 사물의 이름입니다.
}
7. 디바이스는 임시 프로비저닝 클레임 인증서로 시작한 세션과의 연결을 끊고, 사물 인증서를 사용하여 다시 AWS 연결을 수행합니다
8. 디바이스는 응답 받은 ThingName 을 사용해 특정 Shadow Topic 을 구독하고, Publish MQTT 통신을 수행합니다
// --------------------------------------------------------------------------------------
// --------------------------------------------------------------------------------------
[참고 사이트]
// --------------------------------------------------------------------------------------
[Aws Iot Core] Fleet provisioning 플릿 프로비저닝 수행 방법 정리 - 클레임 인증서 , 신뢰할 수 있는 사용자
https://blog.naver.com/kkh0977/223779257161?trackingCode=blog_bloghome_searchlist
[AWS 플릿 프로비저닝을 사용하여 디바이스 인증서가 없는 디바이스 프로비저닝]
https://docs.aws.amazon.com/ko_kr/iot/latest/developerguide/provision-wo-cert.html
// --------------------------------------------------------------------------------------
728x90
반응형
'Aws (Amazon)' 카테고리의 다른 글
Comments
