대칭 키를 사용하여 Windows에서 IoT Edge 디바이스 만들기 및 프로비전

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

중요

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

이 문서에서는 Windows 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를 사용하려는 경우 해당 방법 가이드의 단계를 수행할 수 있습니다.

IoT 허브에 연결하는 모든 디바이스에는 클라우드-디바이스 또는 디바이스-클라우드 통신을 추적하는 데 사용되는 디바이스 ID가 있습니다. IoT 허브 호스트 이름, 디바이스 ID, 디바이스에서 IoT Hub 인증에 사용하는 정보를 포함하는 연결 정보로 디바이스를 구성합니다.

이 문서의 단계는 단일 디바이스를 IoT 허브에 연결하는 수동 프로비저닝이라는 프로세스를 안내합니다. 수동 프로비저닝을 위해 IoT Edge 디바이스를 인증하는 두 가지 옵션이 있습니다.

  • 대칭 키: IoT Hub에서 새 디바이스 ID를 만드는 경우 서비스에서 두 개의 키를 만듭니다. 디바이스에 키 중 하나를 저장하고 인증 시 IoT Hub 키를 제시합니다.

    이 인증 방식을 사용하면 빠르게 시작할 수 있지만 안전하지 않습니다.

  • X.509 자체 서명: 두 개의 x.509 ID 인증서를 만들어 디바이스에 저장합니다. IoT Hub에서 새 디바이스 ID를 만들 때 두 인증서의 지문을 모두 제공합니다. 디바이스는 IoT Hub에 인증 시 인증서 하나를 제시되고 IoT Hub는 인증서가 지문과 일치하는지 확인합니다.

    이 인증 방식은 더 안전하며 프로덕션 시나리오에 권장됩니다.

이 문서에서는 대칭 키를 인증 방법으로 사용하는 방법을 설명합니다. X.509 인증서를 사용하려면 X.509 인증서를 사용하여 Windows에서 IoT Edge 디바이스 만들기 및 프로비전을 참조하세요.

참고

설정할 디바이스가 많고 각 디바이스를 수동으로 프로비전하지 않으려면 다음 문서 중 하나를 사용하여 IoT Hub Device Provisioning Service를 통한 IoT Edge 작동 방식에 대해 알아보세요.

필수 구성 요소

이 문서에서는 IoT Edge 디바이스를 등록하고 디바이스에 IoT Edge를 설치하는 방법을 설명합니다. 이러한 작업에는 작업을 수행하는 데 사용되는 다양한 필수 구성 요소와 유틸리티가 있습니다. 계속하기 전에 모든 필수 구성 요소가 충족되었는지 확인합니다.

디바이스 관리 도구

디바이스를 등록하는 단계에서 Azure Portal, Visual Studio Code 또는 Azure CLI를 사용할 수 있습니다. 각 유틸리티에는 다음과 같이 고유한 필수 구성 요소가 있습니다.

Azure 구독의 무료 또는 표준 IoT Hub.

디바이스 요구 사항

Windows 디바이스.

Windows 컨테이너를 사용하는 IoT Edge에는 최신 Windows 장기 지원 빌드인 Windows 버전 1809/빌드 17763이 필요합니다. 지원되는 SKU 목록은 지원되는 시스템 목록을 검토해야 합니다.

컨테이너와 호스트 모두의 Windows 버전이 일치해야 합니다. 자세한 내용은 OS 불일치로 인해 모듈을 시작할 수 없음을 참조하세요.

디바이스 등록

기본 설정에 따라 Azure Portal, Visual Studio Code 또는 Azure CLI를 사용하여 디바이스를 등록할 수 있습니다.

Azure Portal의 IoT 허브에서 IoT Edge 디바이스는 에지가 사용 설정되지 않은 IoT 디바이스와 별도로 만들어지고 관리됩니다.

  1. Azure Portal에 로그인하고 IoT Hub로 이동합니다.

  2. 왼쪽 창의 메뉴에서 디바이스를 선택한 다음, 디바이스 추가를 선택합니다.

  3. 디바이스 만들기 페이지에서 다음 정보를 입력합니다.

    • 설명 디바이스 ID를 만듭니다. 나중에 사용하므로 이 디바이스 ID를 적어 둡니다.
    • IoT Edge 디바이스 확인란을 선택합니다.
    • 인증 유형으로 대칭 키를 선택합니다.
    • 인증 키를 자동으로 생성하고 허브에 새 디바이스를 연결하려면 기본 설정을 사용합니다.
  4. 저장을 선택합니다.

이제 디바이스가 IoT Hub에 등록되었으므로 IoT Edge 런타임의 설치 및 프로비전을 완료하는 데 사용하는 정보를 검색합니다.

등록된 디바이스 보기 및 프로비저닝 정보 검색

대칭 키 인증을 사용하는 디바이스에서 IoT Edge 런타임의 설치 및 프로비저닝을 수행하려면 연결 문자열이 필요합니다.

IoT 허브에 연결된 에지 사용 디바이스는 디바이스 페이지에 나열되어 있습니다. Iot Edge 디바이스 유형별로 목록을 필터링할 수 있습니다.

Azure Portal에서 디바이스를 보는 방법의 스크린샷, IoT Hub.

디바이스를 설정할 준비가 되면, 물리적 디바이스를 IoT Hub에 있는 해당 ID와 연결하는 연결 문자열이 필요합니다.

대칭 키를 사용하여 인증하는 디바이스에는 포털에 복사할 수 있는 연결 문자열이 있습니다.

  1. 포털의 디바이스 페이지에 있는 목록에서 IoT Edge 디바이스 ID를 선택합니다.
  2. 기본 연결 문자열 또는 보조 연결 문자열 중 하나의 값을 복사합니다.

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 Edge 런타임이 디바이스에 설치되었으므로 다음 단계를 수행할 수 있습니다. 이 단계에서는 클라우드 ID 및 인증 정보를 사용하여 디바이스를 설정합니다.

  1. IoT Edge 디바이스에서 관리자 권한으로 PowerShell을 실행합니다.

  2. Initialize-IoTEdge 명령을 사용하여 머신에 IoT Edge 런타임을 구성합니다. 이 명령은 Windows 컨테이너를 통한 수동 프로비저닝으로 기본 설정됩니다.

    . {Invoke-WebRequest -useb https://aka.ms/iotedge-win} | Invoke-Expression; `
    Initialize-IoTEdge -ManualConnectionString -ContainerOs Windows
    
    • 오프라인 설치 또는 특정 버전 설치 시에는 IoTEdgeSecurityDaemon.ps1 스크립트를 디바이스에 다운로드한 경우 스크립트의 로컬 복사본을 참조해야 합니다.

      . <path>/IoTEdgeSecurityDaemon.ps1
      Initialize-IoTEdge -ManualConnectionString -ContainerOs Windows
      
  3. 메시지가 표시되면 이전 섹션에서 검색한 디바이스 연결 문자열을 제공합니다. 디바이스 연결 문자열은 물리적 디바이스를 IoT Hub의 디바이스 ID와 연결하고 인증 정보를 제공합니다.

    디바이스 연결 문자열은 다음 형식을 사용하며 따옴표를 포함하지 않아야 합니다. HostName={IoT_hub_name}.azure-devices.net;DeviceId={device_name};SharedAccessKey={key}

디바이스를 수동으로 프로비저닝하는 경우 추가 매개 변수를 사용하여 다음과 같이 프로세스를 수정할 수 있습니다.

  • 트래픽이 프록시 서버를 통과하도록 설정
  • 특정 edgeAgent 컨테이너 이미지를 선언하고, 프라이빗 레지스트리에 있는 경우 자격 증명 제공

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

구성 성공 확인

IoT Edge 디바이스에서 런타임이 성공적으로 설치 및 구성되었는지 확인합니다.

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

Get-Service iotedge

서비스 로그를 검사합니다.

. {Invoke-WebRequest -useb aka.ms/iotedge-win} | Invoke-Expression; Get-IoTEdgeLog

실행 중인 모듈을 나열합니다.

iotedge list

오프라인 설치 또는 특정 버전 설치(선택 사항)

이 섹션의 단계는 표준 설치 단계에서 다루지 않는 시나리오를 위한 단계입니다. 다음을 포함할 수 있습니다.

  • 오프라인 상태에서 IoT Edge 설치
  • 릴리스 후보 버전 설치
  • 최신 버전이 아닌 버전 설치

설치 중에 다음 3개의 파일이 다운로드됩니다.

  • 설치 지침을 포함하는 PowerShell 스크립트
  • IoT Edge 보안 디먼(iotedged), Moby 컨테이너 엔진, Moby CLI를 포함하는 Microsoft Azure IoT Edge cab
  • Visual C++ 재배포 가능 패키지(VC 런타임) 설치 프로그램

설치하는 동안 디바이스가 오프라인 상태가 되거나 특정 버전의 IoT Edge를 설치하려는 경우 디바이스에 미리 해당 파일을 다운로드할 수 있습니다. 설치할 때 다운로드한 파일이 포함된 디렉터리의 설치 스크립트를 가리킵니다. 설치 관리자는 먼저 디렉터리를 확인한 다음, 디렉터리에 없는 구성 요소만 다운로드합니다. 파일을 오프라인에서 모두 사용할 수 있는 경우 인터넷 연결 없이 설치할 수 있습니다.

  1. 이전 버전 및 최신 IoT Edge 설치 파일은 Azure IoT Edge 릴리스를 참조하세요.

  2. 설치하려는 버전을 찾고 릴리스 정보의 자산 섹션에서 다음 파일을 IoT 디바이스로 다운로드합니다.

    • IoTEdgeSecurityDaemon.ps1
    • 1\.1 릴리스 채널의 Microsoft-Azure-IoTEdge-amd64.cab.

    각 릴리스의 기능을 지원하기 위해 기능이 변경되기 때문에 사용하는 .cab 파일과 동일한 릴리스의 PowerShell 스크립트를 사용하는 것이 중요합니다.

  3. 다운로드한 .cab 파일에 아키텍처 접미사가 있는 경우 파일 이름을 Microsoft-Azure-IoTEdge.cab로 바꿉니다.

  4. 필요에 따라 Visual C++ 재배포 가능 패키지의 설치 프로그램을 다운로드합니다. 예를 들어 PowerShell 스크립트는 vc_redist.x64.exe 버전을 사용합니다. 설치 프로그램을 IoT 디바이스에서 IoT Edge 파일이 있는 곳과 동일한 폴더에 저장합니다.

  5. 오프라인 구성 요소를 사용하여 설치하려면 PowerShell 스크립트의 로컬 복사본을 도트 소싱합니다.

  6. -OfflineInstallationPath 매개 변수를 사용하여 Deploy-IoTEdge 명령을 실행합니다. 파일 디렉터리에 대한 절대 경로를 제공합니다. 예제:

    . path_to_powershell_module_here\IoTEdgeSecurityDaemon.ps1
    Deploy-IoTEdge -OfflineInstallationPath path_to_file_directory_here
    

    배포 명령은 제공된 로컬 파일 디렉터리에 있는 모든 구성 요소를 사용합니다. .cab 파일 또는 Visual C++ 설치 프로그램이 없으면 배포 명령이 다운로드를 시도합니다.

IoT Edge 제거

Windows 디바이스에서 IoT Edge 설치를 제거하려는 경우 관리 PowerShell 창에서 Uninstall-IoTEdge 명령을 사용합니다. 이 명령은 기존 구성 및 Moby 엔진 데이터와 함께 IoT Edge 런타임을 제거합니다.

. {Invoke-WebRequest -useb aka.ms/iotedge-win} | Invoke-Expression; `
Uninstall-IoTEdge

제거 옵션에 대한 자세한 내용은 Get-Help Uninstall-IoTEdge -full 명령을 사용하세요.

다음 단계

디바이스에 모듈을 배포하는 방법을 알아보려면 IoT Edge 모듈 배포를 계속 진행하세요.