Windows에서 TPM을 사용하여 대규모로 IoT Edge 디바이스 만들기 및 프로비전

적용 대상:예 아이콘 IoT Edge 1.1

중요

IoT Edge 1.1 지원 종료일은 2022년 12월 13일이었습니다. 이 제품, 서비스, 기술 또는 API가 지원되는 방법에 대한 정보는 Microsoft 제품 수명 주기를 확인하세요. 최신 버전의 IoT Edge 업데이트에 대한 자세한 내용은 IoT Edge 업데이트를 참조하세요.

이 문서에서는 TPM(신뢰할 수 있는 플랫폼 모듈)을 사용하여 Azure IoT Edge for Windows 디바이스를 자동으로 프로비전하기 위한 지침을 제공합니다. Azure IoT Hub 디바이스 프로비저닝 서비스를 사용하여 IoT Edge 디바이스를 자동으로 프로비전할 수 있습니다. 자동 프로비전 프로세스에 익숙하지 않은 경우 계속하기 전에 프로비전 개요를 검토합니다.

참고

Windows 컨테이너를 사용하는 Azure IoT Edge는 Azure IoT Edge 버전 1.2부터 지원되지 않습니다.

Window 디바이스에서 IoT Edge를 실행하는 새로운 방법을 사용하려면 Azure IoT Edge for Linux on Windows를 참조하세요.

Azure IoT Edge for Linux on Windows를 사용하려면 해당 방법 가이드의 단계를 수행할 수 있습니다.

이 문서에서는 두 가지 방법론을 간략하게 설명합니다. 솔루션의 아키텍처에 따라 기본 설정을 선택합니다.

  • 물리적 TPM 하드웨어를 사용하여 Windows 디바이스를 자동으로 프로비전합니다.
  • 시뮬레이션된 TPM을 실행하는 Windows 디바이스를 자동으로 프로비전합니다. 이 방법론은 테스트 시나리오로만 권장됩니다. 시뮬레이션된 TPM은 실제 TPM과 동일한 보안을 제공하지 않습니다.

지침은 방법론에 따라 다르므로 올바른 탭에 있는지 확인하여 계속 진행하세요.

작업은 다음과 같습니다.

  • 디바이스의 프로비전 정보를 검색합니다.
  • 디바이스에 대한 개별 등록을 만듭니다.
  • IoT Edge 런타임을 설치하고 IoT Hub에 디바이스를 연결합니다.

필수 구성 요소

필수 구성 요소는 물리적 TPM 및 가상 TPM 솔루션에 대해 동일합니다.

클라우드 리소스

  • 활성 IoT 허브
  • Azure의 IoT Hub Device Provisioning Service의 새 인스턴스로 IoT 허브에 연결되어 있습니다.

디바이스 요구 사항

Windows 개발 컴퓨터. 이 문서에서는 Windows 10을 사용합니다.

참고

디바이스 프로비전 서비스에서 TPM 증명을 사용하는 경우 TPM 2.0이 필요합니다.

TPM을 사용하는 경우 그룹이 아닌 개별 디바이스 프로비저닝 서비스 등록만 만들 수 있습니다.

TPM 설정

이 섹션에서는 TPM의 등록 ID 및 인증 키를 검색하는 데 사용할 수 있는 도구를 빌드합니다.

  1. Windows 개발 환경 설정의 단계에 따라 C용 Azure IoT 디바이스 SDK를 설치하고 빌드합니다.

  2. 관리자 권한 PowerShell 세션에서 다음 명령을 실행하여 TPM에 대한 디바이스 프로비저닝 정보를 검색하는 SDK 도구를 빌드합니다.

    cd azure-iot-sdk-c\cmake
    cmake -Duse_prov_client:BOOL=ON ..
    cd provisioning_client\tools\tpm_device_provision
    make
    .\tpm_device_provision
    
  3. 출력 창에 디바이스의 등록 ID인증 키가 표시됩니다. 이러한 값을 복사하여 나중에 디바이스 프로비저닝 서비스에서 디바이스에 대한 개별 등록을 만들 때 사용합니다.

SDK 도구를 사용하여 정보를 검색하지 않으려면 프로비전 정보를 가져올 수 있는 다른 방법을 확인해야 합니다. 각 TPM 칩에 고유한 인증 키는 연결된 TPM 칩 제조업체에서 가져옵니다. TPM 디바이스에 대한 고유한 등록 ID를 파생시킬 수 있습니다. 예를 들어 인증 키의 SHA-256 해시를 만들 수 있습니다.

등록 ID와 인증 키가 있으면 계속할 준비가 된 것입니다.

디바이스 프로비전 서비스 등록 만들기

TPM의 프로비전 정보를 사용하여 디바이스 프로비전 서비스에서 개별 등록을 만듭니다.

디바이스 프로비전 서비스에서 등록을 만들 때 초기 디바이스 트윈 상태를 선언할 수 있습니다. 디바이스 트윈에서 지역, 환경, 위치 또는 디바이스 유형 같은 솔루션에 필요한 모든 메트릭을 기준으로 디바이스 그룹에 태그를 설정할 수 있습니다. 이러한 태그는 자동 배포를 만드는 데 사용됩니다.

이 문서의 단계는 Azure Portal용이지만 Azure CLI를 사용하여 개별 등록을 만들 수도 있습니다. 자세한 내용은 az iot dps enrollment를 참조하세요. CLI 명령의 일부로 에지 사용 플래그를 사용하여 IoT Edge 장치에 대한 등록을 지정합니다.

  1. Azure Portal에서 IoT Hub 디바이스 프로비전 서비스의 인스턴스로 이동합니다.

  2. 설정에서 등록 관리를 선택합니다.

  3. 등록을 구성하려면 개별 등록 추가를 선택한 다음, 다음 단계를 완료합니다.

    1. 메커니즘의 경우 TPM을 선택합니다.

    2. VM 또는 실제 디바이스에서 복사한 인증 키등록 ID를 제공합니다.

    3. 원하는 경우 디바이스의 ID를 제공합니다. 디바이스 ID를 제공하지 않으면 등록 ID가 사용됩니다.

    4. VM 또는 실제 디바이스가 IoT Edge 디바이스임을 선언하려면 True를 선택합니다.

    5. 디바이스를 연결하려는 연결된 IoT Hub를 선택하거나 새 IoT Hub에 연결을 선택합니다. 여러 허브를 선택할 수 있으며, 선택한 할당 정책에 따라 허브 중 하나에 디바이스가 할당됩니다.

    6. 원하는 경우 초기 디바이스 트윈 상태에 태그 값을 추가합니다. 태그를 사용하여 모듈 배포에 대한 디바이스 그룹을 대상으로 할 수 있습니다. 자세한 내용은 대규모로 IoT Edge 모듈 배포를 참조하세요.

    7. 저장을 선택합니다.

이제 이 디바이스에 대한 등록이 존재하므로 IoT Edge 런타임은 설치 중에 디바이스를 자동으로 프로비저닝할 수 있습니다.

IoT Edge 설치

이 섹션에서는 IoT Edge용 Windows VM 또는 물리적 디바이스를 준비합니다. 그런 다음, IoT Edge를 설치합니다.

Azure IoT Edge는 OCI 호환 컨테이너 런타임을 사용합니다. Moby 기반 엔진인 Moby는 설치 스크립트에 포함되어 있으므로 엔진을 설치하기 위한 추가 단계가 없습니다.

IoT Edge 런타임을 설치하려면 다음을 수행합니다.

  1. PowerShell을 관리자 권한으로 실행합니다.

    PowerShell(x86)이 아닌 AMD64 PowerShell 세션을 사용합니다. 사용 중인 세션 형식을 잘 모르는 경우 다음 명령을 실행합니다.

    (Get-Process -Id $PID).StartInfo.EnvironmentVariables["PROCESSOR_ARCHITECTURE"]
    
  2. 다음 작업을 수행하는 Deploy-IoTEdge 명령을 실행합니다.

    • Windows 머신이 지원되는 버전에 해당하는지 확인
    • 컨테이너 기능 설정
    • moby 엔진과 IoT Edge 런타임 다운로드
    . {Invoke-WebRequest -useb https://aka.ms/iotedge-win} | Invoke-Expression; `
    Deploy-IoTEdge
    
  3. 메시지가 표시되면 디바이스를 다시 시작합니다.

디바이스에 IoT Edge를 설치하는 경우 추가 매개 변수를 사용하여 다음과 같이 프로세스를 수정할 수 있습니다.

  • 트래픽이 프록시 서버를 통과하도록 설정
  • 오프라인 설치 시 설치 프로그램이 로컬 디렉터리 가리키기

추가 매개 변수에 대한 자세한 내용은 Windows 컨테이너를 포함한 IoT Edge용 PowerShell 스크립트를 참조하세요.

클라우드 ID를 사용한 디바이스 프로비저닝

런타임이 디바이스에 설치되면 디바이스 프로비저닝 서비스 및 IoT Hub에 연결하는 데 사용하는 정보를 사용하여 디바이스를 구성합니다.

  1. 이전 섹션에서 수집한 디바이스 프로비저닝 서비스 ID 범위 및 디바이스 등록 ID를 확인합니다.

  2. 관리자 모드에서 PowerShell 창을 엽니다. IoT Edge를 설치하는 경우 PowerShell(x86)이 아니라 PowerShell의 AMD64 세션을 사용해야 합니다.

  3. Initialize-IoTEdge 명령은 컴퓨터에서 IoT Edge 런타임을 구성합니다. 이 명령은 Windows 컨테이너를 통한 수동 프로비저닝으로 기본 설정됩니다. 수동 프로비전 대신 디바이스 프로비저닝 서비스를 사용하려면 -Dps 플래그를 사용합니다.

    paste_scope_id_herepaste_registration_id_here의 자리 표시자 값을 이전에 수집한 데이터로 바꿉니다.

    . {Invoke-WebRequest -useb https://aka.ms/iotedge-win} | Invoke-Expression; `
    Initialize-IoTEdge -Dps -ScopeId paste_scope_id_here -RegistrationId paste_registration_id_here
    

성공적인 설치 확인

런타임이 성공적으로 시작되면 IoT 허브로 이동하여 디바이스에 대한 IoT Edge 모듈 배포를 시작합니다. 디바이스에서 다음 명령을 사용하여 런타임이 성공적으로 설치되고 시작되는지 확인합니다.

  1. IoT Edge 서비스의 상태를 확인합니다.

    Get-Service iotedge
    
  2. 최근 5분 간의 서비스 로그를 검사합니다.

    . {Invoke-WebRequest -useb aka.ms/iotedge-win} | Invoke-Expression; Get-IoTEdgeLog
    
  3. 실행 중인 모듈을 나열합니다.

    iotedge list
    

다음 단계

디바이스 프로비전 서비스 등록 프로세스를 사용하면 새 디바이스를 프로비전할 때 디바이스 ID 및 디바이스 트윈 태그를 동시에 설정할 수 있습니다. 자동 디바이스 관리를 사용하여 개별 디바이스 또는 디바이스 그룹을 대상으로 하려면 이러한 값을 사용할 수 있습니다.

Azure Portal 또는 Azure CLI를 사용하여 대규모로 IoT Edge 모듈을 배포하고 모니터링하는 방법을 알아봅니다.