Delen via


Ondersteuning voor Azure IoT Hub Device Provisioning Service (DPS) voor virtuele netwerken

In dit artikel wordt het patroon voor virtuele netwerkconnectiviteit geïntroduceerd voor het inrichten van IoT-apparaten met IoT-hubs met behulp van DPS. Dit patroon biedt privéconnectiviteit tussen de apparaten, DPS en de IoT-hub in een virtueel Azure-netwerk dat eigendom is van de klant.

In de meeste scenario's waarin DPS is geconfigureerd met een virtueel netwerk, wordt uw IoT-hub ook geconfigureerd in hetzelfde virtuele netwerk. Zie IoT Hub-ondersteuning voor virtuele netwerken met Azure Private Link voor meer informatie over ondersteuning en configuratie van virtuele netwerken voor IoT-hubs.

Introductie

DPS-hostnamen worden standaard toegewezen aan een openbaar eindpunt met een openbaar routeerbaar IP-adres via internet. Dit openbare eindpunt is zichtbaar voor alle klanten. IoT-apparaten via wide area networks en on-premises netwerken kunnen proberen toegang te krijgen tot het openbare eindpunt.

Om verschillende redenen willen klanten mogelijk de connectiviteit met Azure-resources beperken, zoals DPS. Deze redenen zijn onder andere:

  • Blootstelling aan verbindingen via het openbare internet voorkomen. Blootstelling kan worden verminderd door meer beveiligingslagen te introduceren via isolatie op netwerkniveau voor uw IoT-hub en DPS-resources

  • Het inschakelen van een privéverbindingservaring vanuit uw on-premises netwerkassets, zodat uw gegevens en verkeer rechtstreeks naar het Backbone-netwerk van Azure worden verzonden.

  • Exfiltratieaanvallen van gevoelige on-premises netwerken voorkomen.

  • Het volgen van vastgestelde Azure-wide connectiviteitspatronen met behulp van privé-eindpunten.

Veelvoorkomende benaderingen voor het beperken van connectiviteit zijn DPS IP-filterregels en virtuele netwerken met privé-eindpunten. Het doel van dit artikel is het beschrijven van de benadering van virtuele netwerken voor DPS met behulp van privé-eindpunten.

Apparaten die in on-premises netwerken werken, kunnen VPN (Virtual Private Network) of ExpressRoute-privépeering gebruiken om verbinding te maken met een virtueel netwerk in Azure en toegang te krijgen tot DPS-resources via privé-eindpunten.

Een privé-eindpunt is een privé-IP-adres dat is toegewezen in een virtueel netwerk dat eigendom is van de klant, waarmee een Azure-resource toegankelijk is. Door een privé-eindpunt voor uw DPS-resource te gebruiken, kunnen apparaten binnen uw virtuele netwerk provisioning aanvragen bij uw DPS-resource zonder verkeer naar het openbare eindpunt toe te laten. Elke DPS-resource kan ondersteuning bieden voor meerdere privé-eindpunten, die elk zich in een virtueel netwerk in een andere regio kunnen bevinden.

Vereiste voorwaarden

Voordat u doorgaat, moet u ervoor zorgen dat aan de volgende vereisten wordt voldaan:

Privé-eindpuntbeperkingen

Let op de volgende huidige beperkingen voor DPS bij het gebruik van privé-eindpunten:

  • Privé-eindpunten werken niet wanneer de DPS-resource en de gekoppelde IoT-hub zich in verschillende clouds bevinden. Bijvoorbeeld Azure Government en global Azure.

  • Privé-eindpunten in DPS maken gebruik van Azure Private Link, die alleen worden ondersteund in openbare regio's. Zie de beschikbaarheid van Azure Private Link voor meer informatie.

  • Op dit moment werkt aangepast toewijzingsbeleid met Azure Functions voor DPS niet wanneer de Azure-functie is vergrendeld voor een virtueel netwerk en privé-eindpunten.

  • De huidige ondersteuning voor virtuele DPS-netwerken is alleen voor de binnenkomst van gegevens in DPS. Data-uitstroom, het verkeer van DPS naar IoT Hub, maakt gebruik van een interne service-naar-service mechanisme in plaats van een specifiek virtueel netwerk. Ondersteuning voor volledige virtuele netwerkgebaseerde uitgaande blokkade tussen DPS en IoT Hub is momenteel niet beschikbaar.

  • Het laagste toewijzingsbeleid voor latentie wordt gebruikt om een apparaat toe te wijzen aan de IoT-hub met de laagste latentie. Dit toewijzingsbeleid is niet betrouwbaar in een virtuele netwerkomgeving.

  • Het inschakelen van een of meer privé-eindpunten omvat meestal het uitschakelen van openbare toegang tot uw DPS-exemplaar. Zodra openbare toegang is uitgeschakeld, kunt u Azure Portal niet meer gebruiken om inschrijvingen te beheren. In plaats daarvan kunt u inschrijvingen beheren met behulp van de Azure CLI, PowerShell of service-API's van machines in een of meer virtuele netwerken/privé-eindpunten die zijn geconfigureerd op het DPS-exemplaar.

  • Wanneer u privé-eindpunten gebruikt, raden we u aan DPS te implementeren in een van de regio's die beschikbaarheidszones ondersteunen. Anders kunnen DPS-exemplaren waarvoor privé-eindpunten zijn ingeschakeld, een verminderde beschikbaarheid zien tijdens storingen.

Opmerking

Overwegingen voor gegevensopslaglocatie:

DPS biedt een globaal apparaateindpunt (global.azure-devices-provisioning.net). Wanneer u echter het globale eindpunt gebruikt, worden uw gegevens mogelijk omgeleid buiten de regio waar de DPS-instantie in eerste instantie is gemaakt. Gebruik privé-eindpunten om de gegevenslocatie binnen de eerste DPS-regio te garanderen.

Een privé-eindpunt instellen

Voer de volgende stappen uit om een privé-eindpunt in te stellen:

  1. Navigeer in Azure Portal naar uw DPS-resource.

  2. Selecteer in het servicemenu onder Instellingen het tabblad Netwerken .

  3. Selecteer in het werkvenster het tabblad Persoonlijke toegang en selecteer vervolgens + Een privé-eindpunt maken.

    Schermopname van het toevoegen van een nieuw privé-eindpunt voor een DPS-exemplaar in Azure Portal.

  4. Voer op het tabblad Basisbeginselen van de pagina Een privé-eindpunt maken de informatie in die wordt vermeld in de volgende tabel.

    Schermopname van het tabblad Basisbeginselen van de pagina Een privé-eindpunt maken.

    Veld Waarde
    Abonnement Kies het gewenste Azure-abonnement dat het privé-eindpunt moet bevatten.
    Resourcegroep Kies of maak een resourcegroep die het privé-eindpunt bevat.
    Naam Voer een naam in voor uw privé-eindpunt.
    Netwerkinterfacenaam Voer desgewenst een naam in voor de netwerkinterface van uw privé-eindpunt.
    Regio Kies de regio voor het privé-eindpunt. De gekozen regio moet hetzelfde zijn als de regio die het virtuele netwerk bevat, maar hoeft niet hetzelfde te zijn als de DPS-resource.

    Selecteer Volgende: Resource om de resource te configureren waarnaar het privé-eindpunt verwijst.

  5. Voer op het tabblad Resource van de pagina Een privé-eindpunt maken de informatie in die wordt vermeld in de volgende tabel.

    Schermopname van het tabblad Resource van de pagina Een privé-eindpunt maken.

    Veld Waarde
    Abonnement Als dit nog niet is gekozen, kiest u het Azure-abonnement met de DPS-resource waarnaar uw privé-eindpunt verwijst.
    Resourcetype Als dit nog niet is gekozen, kiest u Microsoft.Devices/ProvisioningServices.
    Hulpbron Als dit nog niet is gekozen, selecteert u de DPS-resource waaraan het privé-eindpunt is toegewezen.
    Doelsubbron Selecteer iotDps.

    Hint

    Informatie over de instelling Verbinding maken met een Azure-resource op basis van resource-id of aliasinstelling vindt u in de sectie Een privé-eindpunt aanvragen in dit artikel.

    Selecteer Volgende: Virtueel netwerk om het virtuele netwerk voor het privé-eindpunt te configureren.

  6. Kies op het tabblad Virtueel netwerk van de pagina Een privé-eindpunt maken uw virtuele netwerk en subnet waarin u het privé-eindpunt wilt maken.

    Schermopname van het tabblad Virtueel netwerk van de pagina Een privé-eindpunt maken.

    Selecteer Volgende: DNS om eventuele privé-DNS-integratieopties te kiezen die nodig zijn voor uw privé-eindpunt.

  7. Kies op het tabblad DNS van de pagina Een privé-eindpunt maken de opties voor privé-DNS-integratie die nodig zijn voor uw privé-eindpunt.

    Schermopname van het tabblad DNS van de pagina Een privé-eindpunt maken.

    Selecteer Volgende: Tags en eventueel eventuele tags voor uw resource opgeven.

  8. Selecteer Volgende: Beoordelen en maken en selecteer vervolgens Maken om uw privé-eindpuntresource te maken.

Privé-eindpunten gebruiken met apparaten

Als u privé-eindpunten wilt gebruiken met apparaatinrichtingscode, moet uw inrichtingscode het specifieke service-eindpunt voor uw DPS-exemplaar gebruiken, zoals wordt weergegeven op de overzichtspagina van uw DPS-exemplaar in Azure Portal. Het service-eindpunt heeft het volgende formulier.

<Your DPS Tenant Name>.azure-devices-provisioning.net

De meeste voorbeeldcode die wordt gedemonstreerd in onze documentatie en SDK's, gebruiken het globale apparaateindpunt (global.azure-devices-provisioning.net) en het id-bereik om een bepaald DPS-exemplaar op te lossen. Gebruik het service-eindpunt in plaats van het globale apparaateindpunt wanneer u verbinding maakt met een DPS-exemplaar met behulp van privé-eindpunten om uw apparaten in te richten.

Het voorbeeld van de inrichtingsapparaatclient (pro_dev_client_sample) in de Azure IoT C SDK is bijvoorbeeld ontworpen voor het gebruik van het globale apparaateindpunt als de globale inrichtings-URI (global_prov_uri) in prov_dev_client_sample.c

MU_DEFINE_ENUM_STRINGS_WITHOUT_INVALID(PROV_DEVICE_RESULT, PROV_DEVICE_RESULT_VALUE);
MU_DEFINE_ENUM_STRINGS_WITHOUT_INVALID(PROV_DEVICE_REG_STATUS, PROV_DEVICE_REG_STATUS_VALUES);

static const char* global_prov_uri = "global.azure-devices-provisioning.net";
static const char* id_scope = "[ID Scope]";
}

PROV_DEVICE_RESULT prov_device_result = PROV_DEVICE_RESULT_ERROR;
PROV_DEVICE_HANDLE prov_device_handle;
if ((prov_device_handle = Prov_Device_Create(global_prov_uri, id_scope, prov_transport)) == NULL)
{
    (void)printf("failed calling Prov_Device_Create\r\n");

Als u het voorbeeld wilt gebruiken met een privé-eindpunt, wordt de gemarkeerde code in het vorige voorbeeld gewijzigd om het service-eindpunt voor uw DPS-resource te gebruiken. Als uw service-eindpunt bijvoorbeeld is mydps.azure-devices-provisioning.net, ziet de code er als volgt uit.

static const char* global_prov_uri = "global.azure-devices-provisioning.net";
static const char* service_uri = "mydps.azure-devices-provisioning.net";
static const char* id_scope = "[ID Scope]";
    PROV_DEVICE_RESULT prov_device_result = PROV_DEVICE_RESULT_ERROR;
    PROV_DEVICE_HANDLE prov_device_handle;
    if ((prov_device_handle = Prov_Device_Create(service_uri, id_scope, prov_transport)) == NULL)
    {
        (void)printf("failed calling Prov_Device_Create\r\n");
    }

Een privé-eindpunt aanvragen

U kunt een privé-eindpunt aanvragen voor een DPS-exemplaar met resource ID. Als u deze aanvraag wilt indienen, hebt u de resource-eigenaar nodig om u de resource-id te verstrekken.

  1. De resource-id wordt opgegeven op de pagina Eigenschappen voor de DPS-resource in Azure Portal, zoals wordt weergegeven in de volgende schermopname.

    Schermopname van de pagina Eigenschappen van een DPS-exemplaar in Azure Portal, waarin de resource-id voor het DPS-exemplaar wordt gemarkeerd.

    Waarschuwing

    De resource-id bevat de abonnements-id.

  2. Zodra u de resource-id hebt, volgt u de stappen in Een privé-eindpunt instellen op stap 3 op het tabblad Resource van de pagina Een privé-eindpunt maken . Kies Verbinden met een Azure-resource op resource ID of alias en voer de informatie in de onderstaande tabel in.

    Veld Waarde
    Resource-ID of alias Voer de resource-id in voor de DPS-resource.
    Doelsubbron Voer iotDps in
    Bericht aanvragen Voer een aanvraag in voor de eigenaar van de DPS-resource.
    Bijvoorbeeld
    Please approve this new private endpoint
    for IoT devices in site 23 to access this DPS instance

    Selecteer Volgende: Virtueel netwerk om het virtuele netwerk voor het privé-eindpunt te configureren.

  3. Kies op het tabblad Virtueel netwerk van de pagina Een privé-eindpunt maken uw virtuele netwerk en subnet waarin u het privé-eindpunt wilt maken.

    Schermopname van het tabblad Virtueel netwerk van de pagina Een privé-eindpunt maken.

    Selecteer Volgende: DNS om eventuele privé-DNS-integratieopties te kiezen die nodig zijn voor uw privé-eindpuntaanvraag.

  4. Kies op het tabblad DNS van de pagina Een privé-eindpunt maken de opties voor privé-DNS-integratie die nodig zijn voor uw privé-eindpuntaanvraag.

    Schermopname van het tabblad DNS van de pagina Een privé-eindpunt maken.

    Selecteer Volgende: Tags en eventueel eventuele tags voor uw resource opgeven.

  5. Selecteer Volgende: Beoordelen en maken en selecteer vervolgens Maken om uw privé-eindpuntaanvraag te maken.

  6. De DPS-eigenaar ziet de aanvraag voor het privé-eindpunt in de lijst met privé-eindpuntverbindingen op de pagina Netwerken van het DPS-exemplaar in Azure Portal. Op die pagina kan de eigenaar de aanvraag voor het privé-eindpunt goedkeuren of afwijzen .

    Schermopname van de pagina Netwerken van het DPS-exemplaar in Azure Portal, waarin de aanvraag voor het privé-eindpunt wordt gemarkeerd.

Prijzen voor privé-eindpunten

Zie prijzen van Azure Private Link voor meer informatie over prijzen.

Volgende stappen

Meer informatie over DPS-beveiligingsfuncties: