디바이스 ID 만들기 및 관리
Azure IoT Hub에 연결하기 위해 디바이스에 대한 디바이스 ID를 만듭니다. 이 문서에서는 디바이스 등록, 연결 정보 수집, 수명 주기가 끝나면 디바이스 삭제 또는 사용하지 않도록 설정을 포함하여 디바이스 ID를 관리하기 위한 주요 작업을 소개합니다.
필수 조건
Azure 구독의 IoT Hub 아직 허브가 없는 경우 IoT Hub 만들기의 단계를 따를 수 있습니다.
사용하는 도구에 따라 Azure Portal에 액세스하거나 Azure CLI를 설치합니다.
IoT 허브가 RBAC(역할 기반 액세스 제어)로 관리되는 경우 이 문서의 단계를 수행하려면 읽기/쓰기/디바이스/모듈 삭제 권한이 필요합니다. 이러한 권한은 IoT Hub 레지스트리 기여자 역할에 포함되어 있습니다.
인증서 준비
디바이스는 두 가지 유형의 인증서를 사용하여 IoT Hub에 연결합니다. 디바이스를 준비할 때 연결하기 전에 모든 적절한 인증서를 만들고 디바이스에 추가했는지 확인합니다.
- 공용 루트 인증서: 모든 디바이스에는 IoT Hub, IoT Central 및 Device Provisioning Service에서 연결 권한을 부여하는 데 사용하는 공용 루트 인증서의 복사본이 필요합니다.
- 인증 인증서: X.509 인증서는 디바이스 ID를 인증하는 데 권장되는 방법입니다.
필수 공용 루트 인증서
Azure IoT 디바이스는 TLS를 사용해 연결 중인 IoT 허브 또는 DPS 엔드포인트의 신뢰성을 확인합니다. 각 디바이스에는 IoT Hub 및 DPS에서 사용하는 루트 인증서의 복사본이 필요합니다. 모든 디바이스는 신뢰할 수 있는 인증서 저장소에 다음 루트 CA를 포함하는 것이 좋습니다.
- DigiCert Global G2 루트 CA
- Microsoft RSA root CA 2017
IoT Hub의 권장 인증서 사례에 대한 자세한 내용은 TLS 지원참조하세요.
인증 인증서
디바이스에 X.509 인증서 인증을 사용하는 경우 디바이스를 등록하기 전에 인증서가 준비되었는지 확인합니다.
CA 서명 인증서의 경우 테스트용 인증서 만들기 및 업로드 자습서에서는 CA 서명 인증서를 만들고 IoT Hub에 업로드하는 방법을 잘 소개합니다. 해당 자습서를 완료하면 X.509 CA 서명 인증을 사용하여 디바이스를 등록할 준비가 됩니다.
자체 서명된 인증서의 경우 IoT Hub에 업로드하려면 디바이스에 두 개의 디바이스 인증서(기본 및 보조 인증서)가 필요하고 둘 다에 대한 지문이 필요합니다. 인증서에서 지문을 검색하는 한 가지 방법은 다음 OpenSSL 명령을 사용하는 것입니다.
openssl x509 -in <certificate filename>.pem -text -fingerprint
디바이스 등록
이 섹션에서는 IoT 허브의 ID 레지스트리에 디바이스 ID를 만듭니다. 디바이스 ID가 없으면 디바이스는 허브에 연결할 수 없습니다.
IoT Hub ID 레지스트리는 디바이스 ID만 저장하여 IoT Hub에 보안 액세스를 사용합니다. 보안 자격 증명으로 사용하기 위해 디바이스 ID 및 키와 개별 디바이스에 대해 액세스하지 못하도록 설정할 수 있는 사용/사용 안 함 플래그를 저장합니다.
디바이스를 등록할 때 인증 방법을 선택합니다. IoT Hub는 디바이스 인증을 위한 세 가지 방법을 지원합니다.
대칭 키 - 이 옵션은 빠른 시작 시나리오에서 가장 쉽습니다.
디바이스를 등록할 때 키를 제공하거나 IoT Hub에서 키를 생성할 수 있습니다. 디바이스와 IoT 허브에는 모두 디바이스가 연결될 때 비교할 수 있는 대칭 키의 복사본이 있습니다.
X.509 자체 서명됨
디바이스에 자체 서명된 X.509 인증서가 있는 경우 인증을 위해 IoT Hub에 인증서 버전을 제공해야 합니다. 디바이스를 등록할 때 디바이스 X.509 인증서의 해시인 인증서 지문을 업로드합니다. 디바이스가 연결되면 인증서를 제시하고 IoT 허브는 알고 있는 해시에 대해 인증서의 유효성을 검사할 수 있습니다. 자세한 내용은 X.509 인증서로 ID 인증을 참조하세요.
X.509 CA 서명 - 이 옵션은 프로덕션 시나리오에 권장됩니다.
디바이스에 CA 서명 X.509 인증서가 있는 경우 디바이스를 등록하기 전에 서명 체인의 루트 또는 중간 CA(인증 기관) 인증서를 IoT Hub에 업로드합니다. 디바이스에는 신뢰 인증서 체인에 확인된 X.509 CA가 포함된 X.509 인증서가 있습니다. 디바이스가 연결되면 전체 인증서 체인을 제공하고 IoT 허브는 X.509 CA를 알고 있으므로 이에 대한 유효성을 검사할 수 있습니다. 여러 디바이스가 동일한 확인된 X.509 CA에 대해 인증할 수 있습니다. 자세한 내용은 X.509 인증서로 ID 인증을 참조하세요.
디바이스 추가
IoT Hub에서 디바이스 ID를 만듭니다.
Azure Portal에서 IoT Hub로 이동합니다.
디바이스 관리>디바이스를 선택합니다.
IoT 허브에 디바이스를 추가하려면 디바이스 추가를 선택합니다.
디바이스 만들기에서 새 디바이스 ID에 대한 정보를 제공합니다.
매개 변수 종속 매개 변수 값 디바이스 ID 새 디바이스의 이름을 제공합니다. 인증 유형 대칭 키, X.509 자체 서명 또는 X.509 CA 서명을 선택합니다. 키 자동 생성 대칭 키 인증의 경우 IoT Hub가 디바이스에 대한 키를 생성하도록 하려면 이 확인란을 선택합니다. 또는 이 상자를 선택 취소하고 디바이스에 대한 기본 및 보조 키를 제공합니다. 기본 지문 및 보조 지문 X.509 자체 서명 인증의 경우 디바이스의 기본 및 보조 인증서의 지문 해시를 제공합니다. Important
고객 지원 및 문제 해결을 위해 수집한 로그에 디바이스 ID를 표시할 수 있으므로 이름을 지정하는 동안 중요한 정보를 피해야 합니다.
저장을 선택합니다.
디바이스 연결 문자열 검색
샘플 및 테스트 시나리오의 경우 가장 일반적인 연결 방법은 대칭 키 인증을 사용하고 디바이스 연결 문자열로 연결하는 것입니다. 디바이스 연결 문자열에는 IoT 허브 이름, 디바이스 이름, 디바이스 인증 정보가 포함됩니다.
특히 X.509 인증과 같은 디바이스 연결을 위한 다른 방법에 대한 자세한 내용은 Azure IoT Hub 디바이스 SDK를 참조하세요.
디바이스 연결 문자열을 검색하려면 다음 단계를 따릅니다.
Azure Portal은 대칭 키 인증을 사용하는 디바이스에 대해서만 디바이스 연결 문자열을 제공합니다.
Azure Portal에서 IoT Hub로 이동합니다.
디바이스 관리>디바이스를 선택합니다.
디바이스 창의 목록에서 디바이스를 선택합니다.
기본 연결 문자열.의 값을 복사합니다.
기본적으로 키와 연결 문자열은 중요한 정보이므로 마스킹됩니다. 눈 모양 아이콘을 클릭하면 표시됩니다. 복사 단추를 사용하여 복사하도록 표시할 필요는 없습니다.
대칭 키 인증을 사용하는 디바이스에는 다음 패턴의 디바이스 연결 문자열이 있습니다.
HostName=<IOT_HUB_NAME>;DeviceId=<DEVICE_NAME>;SharedAccessKey=<PRIMARY_OR_SECONDARY_KEY>
자체 서명이든 CA 서명이든 X.509 인증을 사용하는 디바이스는 일반적으로 인증을 위해 디바이스 연결 문자열을 사용하지 않습니다. 그렇게 하면 연결 문자열은 다음 패턴을 따릅니다.
HostName=<IOT_HUB_NAME>;DeviceId=<DEVICE_NAME>;x509=true
디바이스 사용하지 않도록 설정 또는 삭제
디바이스를 IoT 허브의 ID 레지스트리에 유지하되 연결하지 못하게 하려면 해당 상태를 '사용 안 함'으로 변경합니다.
Azure Portal에서 IoT Hub로 이동합니다.
디바이스 관리>디바이스를 선택합니다.
디바이스 창의 목록에서 디바이스를 선택합니다.
디바이스 세부 정보 페이지에서 디바이스 등록을 사용하지 않도록 설정하거나 삭제할 수 있습니다.
디바이스 연결을 방지하려면 IoT Hub 연결 사용 매개 변수를 사용 안 함으로 설정합니다.
IoT 허브의 ID 레지스트리에서 디바이스를 완전히 제거하려면 삭제를 선택합니다.
디바이스 ID 관리를 위한 기타 도구
다음을 포함한 다른 도구나 인터페이스를 사용하여 IoT Hub ID 레지스트리를 관리할 수 있습니다.
PowerShell 명령: 디바이스 ID를 관리하는 방법을 알아보려면 Az.IotHub 명령 집합을 참조하세요.
Visual Studio Code: Visual Studio Code용 Azure IoT Hub 확장에는 ID 레지스트리 기능이 포함되어 있습니다.
REST API: 디바이스 ID를 관리하는 방법을 알아보려면 IoT Hub 서비스 API를 참조하세요.