IoT 허브를 연결하고 관리하는 방법

Azure IoT Hub DPS(Device Provisioning Service)는 하나 이상의 IoT 허브에 디바이스를 프로비저닝할 수 있습니다. DPS가 디바이스를 IoT 허브에 프로비저닝하려면 먼저 DPS 인스턴스에 연결해야 합니다. 연결되면 할당 정책에서 IoT 허브를 사용할 수 있습니다. 할당 정책은 DPS를 통해 디바이스를 IoT 허브에 할당하는 방법을 결정합니다. 이 문서에서는 DPS 인스턴스에서 IoT 허브를 연결하고 관리하는 방법에 대한 지침을 제공합니다.

연결된 IoT 허브 및 할당 정책

DPS는 연결된 IoT 허브에만 디바이스를 프로비저닝할 수 있습니다. IoT Hub를 DPS 인스턴스에 연결하면 서비스에서 IoT Hub의 디바이스 레지스트리에 대한 읽기/쓰기 권한을 부여합니다. 이러한 권한이 있으면 DPS는 디바이스 ID를 등록하고 디바이스 쌍에서 초기 구성을 설정할 수 있습니다. 연결된 IoT 허브는 모든 Azure 지역에 있을 수 있습니다. 다른 구독의 허브를 DPS 인스턴스에 연결할 수 있습니다.

IoT 허브는 DPS에 연결되면 할당에 참여할 수 있습니다. 할당 참여 여부와 참여 방식은 디바이스가 프로비저닝하는 등록의 설정과 연결된 IoT 허브 자체의 설정에 따라 다릅니다.

다음 설정은 DPS가 연결된 IoT 허브를 사용하는 방법을 제어합니다.

  • 연결 문자열: DPS가 연결된 IoT 허브에 연결하는 데 사용하는 IoT Hub 연결 문자열을 설정합니다. 연결 문자열은 IoT 허브의 공유 액세스 정책 중 하나를 기반으로 합니다. DPS는 IoT 허브에 대한 RegistryWriteServiceConnect 권한이 필요합니다. 연결 문자열은 이러한 권한이 있는 공유 액세스 정책에 사용되어야 합니다. IoT Hub 공유 액세스 정책에 대한 자세한 내용은 IoT Hub 액세스 제어 및 권한을 참조하세요.

  • 할당 가중치: DPS가 IoT 허브 세트에서 디바이스 할당을 해시할 때 IoT 허브가 선택될 가능성을 결정합니다. 유효한 값은 1~1000입니다. 기본값은 1(또는 null)입니다. 값이 높을수록 IoT 허브가 선택될 확률이 높아집니다.

  • 할당 적용 정책: IoT 허브가 할당 정책에 참여하는지 여부를 설정합니다. 기본값은 (true)입니다. 아니요(false)로 설정하면 디바이스가 IoT 허브에 할당되지 않습니다. IoT 허브는 여전히 등록 시 선택할 수 있지만 할당에는 참여하지 않습니다. 이 설정을 사용하여 IoT 허브가 할당에 참여하지 못하도록 일시적으로 또는 영구적으로 제거할 수 있습니다. 예를 들어 허용된 디바이스 수에 근접할 때 이렇게 할 수 있습니다.

DPS 할당 정책 및 연결된 IoT 허브가 이러한 정책에 참여하는 방법에 대한 자세한 내용은 할당 정책 관리를 참조하세요.

연결된 IoT 허브 추가

IoT 허브를 DPS 인스턴스에 연결하면 할당에 참여할 수 있게 됩니다. 구독 내부 또는 외부에 있는 IoT 허브를 추가할 수 있습니다. IoT 허브를 연결하면 기존 등록의 할당에 사용할 수 있게 될 수도 있고 그렇지 않을 수도 있습니다.

  • 할당 정책을 적용하도록 IoT 허브를 명시적으로 설정하지 않는 등록의 경우 새로 연결된 IoT 허브가 즉시 할당에 참여하기 시작합니다.

  • 할당 정책을 적용하도록 IoT 허브를 명시적으로 설정하는 등록의 경우 새 IoT 허브를 등록 설정에 수동으로 또는 프로그래밍 방식으로 추가해야만 할당에 참여합니다.

제한 사항

Azure Portal에 있는 DPS 인스턴스의 왼쪽 메뉴에서 또는 등록을 만들거나 업데이트할 때 등록에서 IoT 허브를 연결할 수 있습니다. 두 경우 모두 IoT 허브는 등록뿐만 아니라 DPS 인스턴스로 범위가 지정됩니다.

Azure Portal에서 DPS 인스턴스에 IoT 허브를 연결하려면 다음을 수행합니다.

  1. DPS 인스턴스의 왼쪽 메뉴에서 연결된 IoT 허브를 선택합니다.

  2. 페이지 맨 위에서 + 추가를 선택합니다.

  3. IoT 허브에 대한 연결 추가 페이지에서 IoT 허브가 포함된 구독을 선택한 다음, IoT 허브 목록에서 IoT 허브의 이름을 선택합니다.

  4. IoT 허브를 선택한 후에는 DPS가 IoT 허브에 연결하는 데 사용할 액세스 정책을 선택합니다. 액세스 정책 목록에는 RegistryWriteServiceConnect 권한이 모두 정의되어 있는 선택한 IoT Hub에 정의된 모든 공유 액세스 정책이 표시됩니다. 기본값은 iothubowner 정책입니다. 사용하려는 정책을 선택하세요.

  5. 저장을 선택합니다.

등록을 만들거나 업데이트할 때, 등록에서 새 IoT 허브 연결 단추를 사용할 수 있습니다. 위와 동일한 페이지와 선택 항목이 표시됩니다. 연결된 허브를 저장한 후에는 DPS 인스턴스에서 사용할 수 있으며 등록에서 선택할 수 있습니다.

참고 항목

Azure Portal에서 연결된 IoT 허브를 추가할 때 할당 가중치할당 적용 정책 설정을 지정할 수 없습니다. 대신 IoT 허브가 연결된 후 이러한 설정을 업데이트할 수 있습니다. 자세한 내용은 연결된 IoT 허브 업데이트를 참조하세요.

az iot dps linked-hub create Azure CLI 명령을 사용하여 IoT 허브를 DPS 인스턴스에 연결합니다.

예를 들어 다음 명령은 iothubowner 공유 액세스 정책에 대한 연결 문자열을 사용하여 MyExampleHub라는 IoT 허브를 연결합니다. 이 명령은 할당 가중치할당 적용 정책 설정을 기본값으로 두지만, 원한다면 이러한 설정의 값을 지정할 수 있습니다.

az iot dps linked-hub create --dps-name MyExampleDps --resource-group MyResourceGroup --connection-string "HostName=MyExampleHub.azure-devices.net;SharedAccessKeyName=iothubowner;SharedAccessKey=XNBhoasdfhqRlgGnasdfhivtshcwh4bJwe7c0RIGuWsirW0=" --location westus

또한 DPS는 DPS 리소스 만들기 또는 업데이트 REST API, Resource Manager 템플릿DPS 관리 SDK를 사용하여 IoT Hub를 연결할 수 있습니다.

연결된 IoT 허브 업데이트

연결된 IoT 허브의 설정을 업데이트하여 할당 가중치, 할당 정책의 적용 가능 여부 및 DPS가 IoT 허브에 연결하는 데 사용하는 연결 문자열을 변경할 수 있습니다. IoT 허브에 대한 설정을 업데이트하면 IoT 허브가 등록에 지정되었거나 기본적으로 사용되는지 여부에 관계없이 변경 내용이 즉시 적용됩니다.

Azure Portal을 사용하여 연결된 IoT 허브 업데이트

Azure Portal에서 할당 가중치할당 적용 정책 설정을 업데이트할 수 있습니다.

Azure Portal을 사용하여 연결된 IoT 허브에 대한 설정을 업데이트하려면 다음을 수행합니다.

  1. DPS 인스턴스의 왼쪽 메뉴에서 연결된 IoT 허브를 선택한 다음, 목록에서 IoT 허브를 선택합니다.

  2. 연결된 IoT 허브 세부 정보 페이지에서 다음을 수행합니다.

    Screenshot that shows the linked IoT hub details page. .

    • 할당 가중치 슬라이더 또는 텍스트 상자를 사용하여 1~1000 사이의 가중치를 선택합니다. 기본값은 1개입니다.

    • 할당 적용 정책 스위치를 설정하여 연결된 IoT 허브를 할당에 포함할지 여부를 지정합니다.

  3. 설정을 저장합니다.

참고 항목

DPS가 IoT 허브에 연결하는 데 사용하는 연결 문자열은 Azure Portal에서 업데이트할 수 없습니다. 대신 Azure CLI를 사용하여 연결 문자열을 업데이트하거나, DPS 인스턴스에서 연결된 IoT 허브를 삭제하고 다시 연결할 수 있습니다. 자세한 내용은 연결된 IoT 허브에 대한 키 업데이트를 참조하세요.

Azure CLI를 사용하여 연결된 IoT 허브 업데이트

Azure CLI를 사용하여 할당 가중치, 할당 적용 정책연결 문자열 설정을 업데이트할 수 있습니다.

az iot dps linked-hub update 명령을 사용하여 할당 가중치 또는 할당 적용 정책 설정을 업데이트합니다. 예를 들어 다음 명령은 IoT 허브의 할당 가중치 및 할당 적용 정책을 설정합니다.

az iot dps linked-hub update --dps-name MyExampleDps --resource-group MyResourceGroup --linked-hub MyExampleHub --allocation-weight 2 --apply-allocation-policy true

az iot dps update 명령을 사용하여 연결된 IoT 허브에 대한 연결 문자열을 업데이트합니다. 사용하려는 IoT 허브 공유 액세스 정책에 대한 연결 문자열과 함께 --set 매개 변수를 사용할 수 있습니다. 자세한 내용은 연결된 IoT 허브에 대한 키 업데이트를 참조하세요.

또한 DPS는 DPS 리소스 만들기 또는 업데이트 REST API, Resource Manager 템플릿DPS 관리 SDK를 사용하여 연결된 IoT Hub를 업데이트할 수 있습니다.

연결된 IoT 허브 삭제

DPS 인스턴스에서 연결된 IoT 허브를 삭제하면 향후 등록에서 더 이상 사용할 수 없습니다. 그러나 기존 등록의 할당에서 제거될 수도 있고 제거되지 않을 수도 있습니다.

  • 할당 정책을 적용하도록 IoT 허브를 명시적으로 설정하지 않는 등록의 경우 연결된 IoT 허브를 삭제하면 더 이상 할당에 사용할 수 없습니다.

  • 할당 정책을 적용하도록 IoT 허브를 명시적으로 설정하는 등록의 경우 등록 설정에서 IoT 허브를 수동으로 또는 프로그래밍 방식으로 제거해야만 할당 참여에서 제거됩니다. 이렇게 하지 않으면 디바이스가 등록을 통해 프로비저닝하려고 시도할 때 오류가 발생할 수 있습니다.

Azure Portal을 사용하여 연결된 IoT 허브 삭제

Azure Portal을 사용하여 DPS 인스턴스에서 연결된 IoT 허브를 삭제하려면 다음을 수행합니다.

  1. DPS 인스턴스의 왼쪽 메뉴에서 연결된 IoT 허브를 선택합니다.

  2. IoT 허브 목록에서 삭제하려는 IoT 허브 옆에 있는 확인란을 선택합니다. 그런 다음, 페이지 맨 위에서 삭제를 선택하고 메시지가 표시되면 선택 사항을 확인합니다.

Azure CLI를 사용하여 연결된 IoT 허브 삭제

az iot dps linked-hub delete 명령을 사용하여 DPS 인스턴스에서 연결된 IoT 허브를 제거합니다. 예를 들어 다음 명령은 MyExampleHub라는 IoT 허브를 제거합니다.

az iot dps linked-hub delete --dps-name MyExampleDps --resource-group MyResourceGroup --linked-hub MyExampleHub

또한 DPS는 DPS 리소스 만들기 또는 업데이트 REST API, Resource Manager 템플릿DPS 관리 SDK를 사용하여 DPS 인스턴스에서 연결된 IoT Hub를 삭제할 수 있습니다.

연결된 IoT 허브에 대한 키 업데이트

DPS에 연결된 IoT 허브의 대칭 키를 회전하거나 업데이트해야 할 수 있습니다. 이 경우 연결된 IoT 허브에 대한 DPS의 연결 문자열 설정도 업데이트해야 합니다. IoT 허브에 대한 프로비저닝은 중간에 IoT 허브에서 키를 업데이트하고 해당 키를 기반으로 하는 새 연결 문자열로 DPS 인스턴스를 업데이트하는 동안 실패합니다. 따라서 연결된 허브의 연결 문자열을 직접 업데이트할 수 있도록 Azure CLI를 사용하여 키를 업데이트하는 것이 좋습니다. Azure Portal을 사용하면 DPS 인스턴스에서 IoT 허브를 삭제한 다음, 연결 문자열을 업데이트하기 위해 다시 연결해야 합니다.

Azure Portal을 사용하여 키 업데이트

Azure Portal을 사용하는 경우 연결된 IoT 허브에 대한 연결 문자열 설정을 업데이트할 수 없습니다. 대신 DPS 인스턴스에서 연결된 IoT 허브를 삭제한 후 다시 추가해야 합니다.

Azure Portal에서 연결된 IoT 허브의 대칭 키를 업데이트하려면 다음을 수행합니다.

  1. Azure Portal의 DPS 인스턴스 왼쪽에 있는 메뉴에서 키를 업데이트할 IoT 허브를 선택합니다.

  2. 연결된 IoT 허브 세부 정보 페이지에서 할당 가중치할당 적용 정책의 값을 적어 둡니다. 나중에 IoT 허브를 DPS 인스턴스에 다시 연결할 때 필요합니다. 그런 다음, 리소스 관리를 선택하여 IoT 허브로 이동합니다.

  3. IoT 허브의 왼쪽 메뉴에 있는 보안 설정에서 공유 액세스 정책을 선택합니다.

  4. 공유 액세스 정책공유 액세스 정책 관리에서 DPS 인스턴스가 연결된 IoT 허브에 연결하는 데 사용하는 정책을 선택합니다.

  5. 페이지 맨 위에서 기본 키 다시 생성, 보조 키 다시 생성 또는 키 교환을 선택하고, 메시지가 표시되면 선택 사항을 확인합니다.

  6. DPS 인스턴스로 돌아갑니다.

  7. IoT 허브 삭제의 단계에 따라 DPS 인스턴스에서 IoT 허브를 삭제합니다.

  8. IoT 허브 연결의 단계에 따라 정책에 새 연결 문자열을 사용하여 IoT 허브를 DPS 인스턴스에 다시 연결합니다.

  9. 할당 가중치와 할당 적용 정책 설정을 복원해야 하는 경우 2단계에서 저장한 값을 사용하여 연결된 IoT 허브 업데이트의 단계를 수행합니다.

Azure CLI를 사용하여 키 업데이트

Azure CLS를 사용하여 연결된 IoT 허브의 대칭 키를 업데이트하려면 다음을 수행합니다.

  1. az iot hub policy renew-key 명령을 사용하여 IoT 허브의 공유 액세스 정책에 대한 대칭 키를 교환하거나 다시 생성합니다. 예를 들어 다음 명령은 IoT 허브의 iothubowner 공유 액세스 정책에 대한 기본 키를 갱신합니다.

    az iot hub policy renew-key --hub-name MyExampleHub --name owner --rk primary
    
  2. az iot hub connection-string show 명령을 사용하여 공유 액세스 정책에 대한 새 연결 문자열을 가져옵니다. 예를 들어 다음 명령은 이전 명령에서 기본 키가 다시 생성된 iothubowner 공유 액세스 정책에 대한 기본 연결 문자열을 가져옵니다.

    az iot hub connection-string show --hub-name MyExampleHub --policy-name owner --key-type primary
    
  3. az iot dps linked-hub list 명령을 사용하여 DPS 인스턴스의 연결된 IoT 허브 컬렉션에서 IoT 허브의 위치를 찾습니다. 예를 들어 다음 명령은 이전 명령에서 기본 키가 다시 생성된 owner 공유 액세스 정책에 대한 기본 연결 문자열을 가져옵니다.

    az iot dps linked-hub list --dos-name MyExampleDps
    

    출력에는 연결 문자열을 업데이트하려는 연결된 IoT 허브의 위치가 DPS 인스턴스에서 유지 관리하는 연결된 IoT 허브 테이블에 표시됩니다. 이 예제에서는 목록의 첫 번째 IoT 허브인 MyExampleHub입니다.

    [
    {
        "allocationWeight": null,
        "applyAllocationPolicy": null,
        "connectionString": "HostName=MyExampleHub.azure-devices.net;SharedAccessKeyName=iothubowner;SharedAccessKey=****",
        "location": "centralus",
        "name": "MyExampleHub.azure-devices.net"
    },
    {
        "allocationWeight": null,
        "applyAllocationPolicy": null,
        "connectionString": "HostName=MyExampleHub-2.azure-devices.net;SharedAccessKeyName=iothubowner;SharedAccessKey=****",
        "location": "centralus",
        "name": "NyExampleHub-2.azure-devices.net"
    }
    ]
    
  4. az iot dps update 명령을 사용하여 연결된 IoT 허브에 대한 연결 문자열을 업데이트합니다. --set 매개 변수와 properties.iotHubs[] 테이블의 연결된 IoT 허브 위치를 사용하여 대상 IoT 허브를 지정합니다. 예를 들어 다음 명령은 이전 명령에서 처음으로 반환된 MyExampleHub에 대한 연결 문자열을 업데이트합니다.

    az iot dps update --name MyExampleDps --set properties.iotHubs[0].connectionString="HostName=MyExampleHub-2.azure-devices.net;SharedAccessKeyName=iothubowner;SharedAccessKey=NewTokenValue"
    

다음 단계