IoT Central용 프라이빗 엔드포인트 만들기 및 구성

Azure Virtual Network에서 프라이빗 엔드포인트를 사용하여 디바이스를 IoT Central 애플리케이션에 연결할 수 있습니다.

프라이빗 엔드포인트는 가상 네트워크 주소 공간의 개인 IP 주소를 사용하여 디바이스를 IoT Central 애플리케이션에 비공개로 연결합니다. 가상 네트워크의 디바이스와 IoT 플랫폼 간의 네트워크 트래픽이 Microsoft 백본 네트워크에서 가상 네트워크와 프라이빗 링크를 통과하며 공용 인터넷에서의 노출을 제거합니다. 이 문서에서는 IoT Central 애플리케이션용 프라이빗 엔드포인트를 만드는 방법을 보여 줍니다.

필수 조건

  • 활성화된 Azure 구독. Azure 구독이 없는 경우 시작하기 전에 체험 계정을 만듭니다.
  • IoT Central 애플리케이션. 자세한 내용은 IoT Central 애플리케이션 만들기를 참조하세요.
  • Azure 구독에 가입된 가상 네트워크. 자세한 내용은 가상 네트워크 만들기를 참조하세요. 이 가이드의 단계를 완료하기 위해 Bastion 호스트 또는 가상 머신이 필요하지는 않습니다.

프라이빗 엔드포인트 만들기

IoT Central 애플리케이션용 프라이빗 엔드포인트를 만드는 방법에는 여러 가지가 있습니다.

기존 IoT Central 애플리케이션에서 프라이빗 엔드포인트를 만들려면 다음을 수행합니다.

  1. Azure Portal에서 애플리케이션으로 이동한 다음, 네트워킹을 선택합니다.

  2. 프라이빗 엔드포인트 연결 탭을 선택한 다음, + 프라이빗 엔드포인트를 선택합니다.

  3. 기본 사항 탭에서 이름을 입력하고 프라이빗 엔드포인트의 지역을 선택합니다. 그런 다음, 다음: 리소스를 선택합니다.

  4. 리소스 탭이 자동으로 채워집니다. 다음: Virtual Network를 선택합니다.

  5. Virtual Network 탭의 가상 네트워크 아래에서 프라이빗 엔드포인트를 배포할 서브넷을 선택합니다.

  6. 동일한 탭의 개인 IP 구성 섹션에서 동적으로 IP 주소 할당을 선택합니다.

  7. 다음: DNS를 선택합니다.

  8. DNS 탭에서 프라이빗 DNS 영역과 통합에 대해 를 선택합니다. 프라이빗 DNS는 가상 네트워크의 개인 IP 주소에 필요한 모든 엔드포인트를 확인합니다.

    Screenshot from Azure portal that shows private DNS integration.

    참고 항목

    IoT Central의 자동 크기 조정 기능으로 인해 가능한 경우 프라이빗 DNS 통합 옵션을 사용해야 합니다. 어떤 이유로 이 옵션을 사용할 수 없는 경우 사용자 지정 DNS 서버 사용을 참조하세요.

  9. 완료되면 다음: 태그를 선택합니다.

  10. 태그 탭에서 필요한 태그를 구성한 후 다음: 검토 + 만들기를 선택합니다.

  11. 구성 세부 정보를 검토한 다음, 만들기를 선택하여 프라이빗 엔드포인트 리소스를 만듭니다.

Screenshot from the Azure portal that shows the summary for creating a private endpoint.

프라이빗 엔드포인트 만들기 확인

프라이빗 엔드포인트 만들기가 완료되면 Azure Portal에서 액세스할 수 있습니다.

애플리케이션에 대해 생성된 모든 프라이빗 엔드포인트를 보려면 다음을 수행합니다.

  1. Azure Portal에서 IoT Central 애플리케이션으로 이동한 다음, 네트워킹을 선택합니다.

  2. 프라이빗 엔드포인트 연결 탭을 선택합니다. 이 표에는 애플리케이션에 대해 생성된 모든 프라이빗 엔드포인트가 표시됩니다.

사용자 지정 DNS 서버 사용

경우에 따라 가상 네트워크의 프라이빗 DNS 영역과 통합하지 못할 수 있습니다. 예를 들어 고유한 DNS 서버를 사용하거나 가상 머신의 호스트 파일을 사용하여 DNS 레코드를 만들 수 있습니다. 이 섹션에서는 DNS 영역에 액세스하는 방법을 설명합니다.

  1. chocolatey를 설치합니다.

  2. ARMClient를 설치합니다.

    choco install armclient
    
  3. ARMClient에 로그인합니다.

    armclient login 
    
  4. 다음 명령을 사용하여 IoT Central 애플리케이션용 프라이빗 DNS 영역을 가져옵니다. 자리 표시자를 IoT Central 애플리케이션에 대한 세부 정보로 바꿉니다.

    armclient GET /subscriptions/<subscriptionId>/resourceGroups/<resourceGroupName>/providers/Microsoft.IoTCentral/IoTApps/<AppName>/privateLinkResources?api-version=2021-11-01-preview
    
  5. 응답을 확인합니다. 필요한 DNS 영역은 응답 페이로드의 requiredZoneNames 배열에 있습니다.

    {  
      "value": [  
        {  
          "id": "/subscriptions/<subscriptionId>/resourceGroups/<resourceGroupName>/providers/Microsoft.IoTCentral/IoTApps/<AppName>/privateLinkResources/iotApp",  
          "name": "ioTApp",  
          "type": "Microsoft.IoTCentral/IoTApps/privateLinkResources",  
          "location": "<the region of your application>",  
          "properties": {  
          "groupId": "iotApp",  
          "requiredMembers":[  
            "<IoTCentral Name>",  
            "<DPS Name>",  
            "<IoTHub1 Name>",  
            "<IoTHub2 Name>",  
            "<EH1 Name>",  
            "<EH2 Name>"],  
          "requiredZoneNames": [  
            "privatelink.azureiotcentral.com",  
            "privatelink.azure-devices.net",  
            "privatelink.servicebus.windows.net",  
            "privatelink.azure-devices-provisioning.net"],  
          "provisioningState": "Succeeded"}  
        }  
      ]  
    }
    
  6. Azure Portal에서 프라이빗 엔드포인트로 이동하여 DNS 구성을 선택합니다. 이 페이지에서 DNS 이름에 대한 IP 주소 매핑에 필요한 정보를 찾을 수 있습니다.

Screenshot from the Azure portal that shows the private DNS configuration.

Warning

이 정보를 통해 필요한 레코드를 사용하여 사용자 지정 DNS 서버를 채울 수 있습니다. 조금이라도 가능한 경우 가상 네트워크의 프라이빗 DNS 영역과 통합해야 하며 고유한 사용자 지정 DNS 서버를 구성하지 않아야 합니다. IoT Central 애플리케이션용 프라이빗 엔드포인트는 다른 Azure PaaS 서비스와 다릅니다. IoT Central 자동 크기 조정과 같은 일부 상황에서 IoT Central은 프라이빗 엔드포인트를 통해 액세스할 수 있는 IoT Hub 수를 스케일 아웃합니다. 고유한 사용자 지정 DNS 서버를 채우도록 선택할 경우 IoT Central이 자동 크기 조정될 때마다 DNS 레코드를 업데이트하고 나중에 IoT Hub 수가 스케일 인될 때 레코드를 제거하는 것은 사용자의 책임입니다.

공용 액세스 제한

디바이스에 대한 공용 액세스를 IoT Central로 제한하려면 공용 엔드포인트의 액세스를 끕니다. 공용 액세스를 끄면 디바이스가 공용 네트워크에서 IoT Central에 연결할 수 없으며 프라이빗 엔드포인트를 사용해야 합니다.

  1. Azure Portal에서 IoT Central 애플리케이션으로 이동한 다음, 네트워킹을 선택합니다.

  2. 공용 액세스 탭에서 공용 네트워크 액세스에 대해 사용 안 함을 선택합니다.

  3. 필요에 따라 IoT Central 애플리케이션의 공용 엔드포인트에 연결할 수 있는 IP 주소/범위 목록을 정의할 수 있습니다.

  4. 저장을 선택합니다.

IoT Central 애플리케이션의 퍼블릭 엔드포인트에 연결할 수 있는 IP 주소/범위 목록을 정의하려는 경우 디바이스가 IoT Central 애플리케이션에 연결하는 데 사용하는 프록시의 IP 주소를 포함해야 합니다.

프라이빗 엔드포인트에 연결

IoT Central 애플리케이션에 대한 공용 네트워크 액세스를 사용하지 않도록 설정하면 디바이스가 DPS(Device Provisioning Service) 전역 엔드포인트에 연결할 수 없습니다. 이 문제는 DPS용 FQDN만 가상 네트워크에 직접 IP 주소를 가지고 있기 때문에 발생합니다. 이제 전역 엔드포인트에 연결할 수 없습니다.

IoT Central 애플리케이션용 프라이빗 엔드포인트를 구성하면 직접 DPS 엔드포인트를 반영하도록 IoT Central 서비스 엔드포인트가 업데이트됩니다.

직접 DPS 엔드포인트를 사용하도록 디바이스 코드를 업데이트합니다.

Screenshot from IoT Central application that shows the direct DPS endpoint.

모범 사례

  • 프라이빗 링크 하위 도메인 URL을 사용하여 디바이스를 IoT Central에 연결하지 마세요. 프라이빗 엔드포인트를 만든 후에는 항상 IoT Central 애플리케이션에 표시되는 DPS URL을 사용합니다.

  • DNS 관리를 위해 Azure에서 제공하는 프라이빗 DNS 영역 사용. IoT Central이 리소스 크기를 자동으로 조정함에 따라 DNS 구성을 지속적으로 업데이트하여 이를 반영해야 하므로 자체 DNS 서버는 사용하지 마세요.

  • 동일한 IoT Central 리소스에 대해 여러 프라이빗 엔드포인트를 만드는 경우 DNS 영역이 FQDN을 덮어쓸 수 있으므로 다시 추가해야 합니다.

제한 사항

  • 현재 프라이빗 연결은 IoT Central 애플리케이션의 기본 IoT 허브 및 DPS에 대한 디바이스 연결에 대해서만 사용하도록 설정됩니다. IoT Central 웹 UI 및 API는 공용 엔드포인트를 통해 계속 작동합니다.

  • 프라이빗 엔드포인트는 가상 네트워크와 동일한 지역에 있어야 합니다.

  • 공용 네트워크 액세스를 사용하지 않도록 설정하는 경우:

    • IoT Central 시뮬레이션된 디바이스는 가상 네트워크에 연결되지 않으므로 작동하지 않습니다.

    • 전역 DPS 엔드포인트(global.device-provisioning.net)에 액세스할 수 없습니다. 직접 DPS 인스턴스에 연결하도록 디바이스 펌웨어를 업데이트합니다. IoT Central 애플리케이션의 디바이스 연결 그룹 페이지에서 직접 DPS URL을 찾을 수 있습니다.

  • 프라이빗 엔드포인트를 구성한 후에는 IoT Central 애플리케이션의 이름을 바꿀 수 없습니다.

  • 프라이빗 엔드포인트 또는 IoT Central 애플리케이션을 다른 리소스 그룹 또는 구독으로 이동할 수 없습니다.

  • 지원은 IPv4로 제한됩니다. IPv6는 지원되지 않습니다.

문제 해결

프라이빗 엔드포인트에 연결하는 데 문제가 있는 경우 다음 문제 해결 참고 자료를 사용합니다.

연결 상태 확인

프라이빗 엔드포인트의 연결 상태가 승인됨으로 설정되어 있는지 확인합니다.

  1. Azure Portal에서 애플리케이션으로 이동한 다음, 네트워킹을 선택합니다.
  2. 프라이빗 엔드포인트 연결 탭을 선택합니다. 프라이빗 엔드포인트의 연결 상태가 승인됨인지 확인합니다.

가상 네트워크 내에서 검사 실행

다음 검사를 사용하여 동일한 가상 네트워크 내에서 연결 문제를 조사합니다. 프라이빗 엔드포인트를 만든 동일한 가상 네트워크에 가상 머신을 배포합니다. 가상 머신에 로그인하여 다음 테스트를 실행합니다.

이름 확인이 제대로 작동하는지 확인하려면 프라이빗 엔드포인트 DNS 구성의 모든 FQDN에 대해 반복하고 nslookup, Test-NetConnection 또는 기타 유사한 도구를 통해 테스트를 실행하여 각 DNS가 해당 IP 주소와 일치하는지 확인합니다.

또한 다음 명령을 실행하여 각 FQDN의 DNS 이름이 해당 IP 주소와 일치하는지 확인합니다.

#replace the <...> placeholders with the correct values 
nslookup iotc-….azure-devices.net 

결과는 다음 출력과 같습니다.

#Results in the following output: 
Server:127.0.0.53 
Address:127.0.0.53#53 

Non-authoritative answer: xyz.azure-devices.net
canonical name = xyz.privatelink.azure-devices.net
Name:xyz.privatelink.azure-devices.net
Address: 10.1.1.12

해당 IP 주소와 일치하지 않는 FQDN을 찾으면 사용자 지정 DNS 서버를 수정합니다. 사용자 지정 DNS 서버를 사용하지 않는 경우 지원 티켓을 만듭니다.

여러 프라이빗 엔드포인트가 있는지 확인

단일 IoT Central 애플리케이션에 대해 여러 프라이빗 엔드포인트를 만들거나 삭제하는 경우 DNS 구성이 덮어써질 수 있습니다.

  • Azure Portal에서 프라이빗 엔드포인트 리소스로 이동합니다.
  • DNS 섹션에서 필요한 모든 리소스(IoT Hubs, Event Hubs, DPS 및 IoT Central FQDN)에 대한 항목이 있는지 확인합니다.
  • IP(및 이 DNS 영역을 사용하는 다른 프라이빗 엔드포인트의 IP)가 DNS의 A 레코드에 반영되어 있는지 확인합니다.
  • 이미 삭제된 이전 프라이빗 엔드포인트에서 IP에 대한 A 레코드를 제거합니다.

기타 문제 해결 팁

이러한 모든 검사를 시도한 후에도 여전히 문제가 발생하는 경우 프라이빗 엔드포인트 문제 해결 가이드를 시도해 보세요.

모든 검사에 성공했지만 디바이스가 여전히 IoT Central에 대한 연결을 설정할 수 없는 경우 일반적으로 방화벽 및 네트워킹을 담당하는 회사 보안 팀에 문의해야 합니다. 실패의 잠재적 이유는 다음과 같습니다.

  • Azure 가상 네트워크의 잘못된 구성
  • 방화벽 어플라이언스의 잘못된 구성
  • Azure 가상 네트워크에 있는 사용자 정의 경로의 잘못된 구성
  • 디바이스와 IoT Central 리소스 간에 잘못 구성된 프록시

다음 단계

이제 애플리케이션에 대한 프라이빗 엔드포인트를 만드는 방법을 배웠으므로 다음 단계를 진행하는 것이 좋습니다.