다음을 통해 공유


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

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

Important

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)이 아닌 PowerShell의 AMD64 세션을 사용합니다. 사용 중인 세션 유형이 확실하지 않은 경우 다음 명령을 실행합니다.

    (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 설치
  • 릴리스 후보 버전 설치
  • 최신 버전이 아닌 버전 설치

설치하는 동안 세 개의 파일이 다운로드됩니다.

  • 설치 지침이 포함된 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 Edge 파일과 동일한 IoT 디바이스의 폴더에 저장합니다.

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

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

    . 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 모듈 배포로 계속 진행하여 모듈을 디바이스에 배포하는 방법을 알아봅니다.