Stöd för Azure IoT Hub Device Provisioning Service (DPS) för virtuella nätverk

Den här artikeln beskriver anslutningsmönstret för virtuella nätverk (VNET) för etablering av IoT-enheter med IoT-hubbar med DPS. Det här mönstret ger privat anslutning mellan enheterna, DPS och IoT Hub i ett kundägt virtuellt Azure-nätverk.

I de flesta scenarier där DPS har konfigurerats med ett VNET konfigureras även din IoT Hub i samma virtuella nätverk. Mer specifik information om VNET-stöd och konfiguration för IoT Hubs finns i stöd för virtuella IoT Hub-nätverk.

Introduktion

Som standard mappas DPS-värdnamn till en offentlig slutpunkt med en offentligt dirigerbar IP-adress via Internet. Den här offentliga slutpunkten är synlig för alla kunder. IoT-enheter via breda nätverk och lokala nätverk kan försöka komma åt den offentliga slutpunkten.

Av flera skäl kan kunder vilja begränsa anslutningen till Azure-resurser, till exempel DPS. Följande orsaker är:

  • Förhindra exponering av anslutningar via det offentliga Internet. Exponeringen kan minskas genom att fler säkerhetslager introduceras via isolering på nätverksnivå för dina IoT Hub- och DPS-resurser

  • Aktivera en privat anslutningsupplevelse från dina lokala nätverkstillgångar och se till att dina data och trafik överförs direkt till Azures stamnätverk.

  • Förhindra exfiltreringsattacker från känsliga lokala nätverk.

  • Följ etablerade Azure-omfattande anslutningsmönster med hjälp av privata slutpunkter.

Vanliga metoder för att begränsa anslutningen är DPS IP-filterregler och virtuellt nätverk (VNET) med privata slutpunkter. Målet med den här artikeln är att beskriva VNET-metoden för DPS med hjälp av privata slutpunkter.

Enheter som arbetar i lokala nätverk kan använda vpn(Virtual Private Network) eller expressroute privat peering för att ansluta till ett virtuellt nätverk i Azure och få åtkomst till DPS-resurser via privata slutpunkter.

En privat slutpunkt är en privat IP-adress som allokeras i ett kundägt VNET som en Azure-resurs är tillgänglig för. Genom att ha en privat slutpunkt för dps-resursen kan du tillåta enheter som arbetar i ditt virtuella nätverk att begära etablering av DPS-resursen utan att tillåta trafik till den offentliga slutpunkten. Varje DPS-resurs kan ha stöd för flera privata slutpunkter, som var och en kan finnas i ett virtuellt nätverk i en annan region.

Förutsättningar

Kontrollera att följande krav uppfylls innan du fortsätter:

Begränsningar för privata slutpunkter

Observera följande aktuella begränsningar för DPS när du använder privata slutpunkter:

  • Privata slutpunkter fungerar inte när DPS-resursen och den länkade IoT-hubben finns i olika moln. Till exempel Azure Government och globala Azure.

  • Privata slutpunkter i DPS använder Azure Private Link, som endast stöds i offentliga regioner. Mer information finns i Tillgänglighet för Azure Private Link.

  • För närvarande fungerar inte anpassade allokeringsprinciper med Azure Functions for DPS när Azure-funktionen är låst till ett virtuellt nätverk och privata slutpunkter.

  • Aktuellt DPS VNET-stöd gäller endast för data som kommer in i DPS. Datautgående, som är trafiken från DPS till IoT Hub, använder en intern tjänst-till-tjänst-mekanism i stället för ett dedikerat VNET. Stöd för fullständig VNET-baserad utgående låsning mellan DPS och IoT Hub är för närvarande inte tillgängligt.

  • Den minsta svarstidsallokeringsprincipen används för att tilldela en enhet till IoT-hubben med den lägsta svarstiden. Den här allokeringsprincipen är inte tillförlitlig i en virtuell nätverksmiljö.

  • Att aktivera en eller flera privata slutpunkter innebär vanligtvis att offentlig åtkomst till DPS-instansen inaktiveras. När offentlig åtkomst har inaktiverats kan du inte längre använda Azure-portalen för att hantera registreringar. I stället kan du hantera registreringar med hjälp av Api:er för Azure CLI, PowerShell eller tjänsten från datorer i de virtuella nätverk/privata slutpunkter som konfigurerats på DPS-instansen.

  • När du använder privata slutpunkter rekommenderar vi att du distribuerar DPS i en av de regioner som stöder Tillgänglighetszoner. Annars kan DPS-instanser med privata slutpunkter aktiverade se minskad tillgänglighet i händelse av avbrott.

Kommentar

Överväganden för datahemvist:

DPS tillhandahåller en global enhetsslutpunkt (global.azure-devices-provisioning.net). Men när du använder den globala slutpunkten kan dina data omdirigeras utanför den region där DPS-instansen ursprungligen skapades. Använd privata slutpunkter för att säkerställa datahemvist i den inledande DPS-regionen.

Konfigurera en privat slutpunkt

Följ dessa steg för att konfigurera en privat slutpunkt:

  1. Öppna DPS-resursen i Azure-portalen och välj fliken Nätverk. Välj Privata slutpunktsanslutningar och + Privat slutpunkt.

    Screenshot that shows adding a new private endpoint for DPS.

  2. På sidan Skapa en privat slutpunkt Grundläggande anger du informationen som anges i följande tabell.

    Screenshot that shows the private endpoints basics page.

    Fält Värde
    Abonnemang Välj önskad Azure-prenumeration som ska innehålla den privata slutpunkten.
    Resursgrupp Välj eller skapa en resursgrupp som ska innehålla den privata slutpunkten
    Namn Ange ett namn för din privata slutpunkt
    Region Den valda regionen måste vara samma som den region som innehåller det virtuella nätverket, men den behöver inte vara samma som DPS-resursen.

    Välj Nästa: Resurs för att konfigurera resursen som den privata slutpunkten pekar på.

  3. På sidan Skapa en privat slutpunktsresurs anger du informationen som anges i följande tabell.

    Screenshot that shows the private endpoint resource page.

    Fält Värde
    Abonnemang Välj den Azure-prenumeration som innehåller DPS-resursen som din privata slutpunkt pekar på.
    Resurstyp Välj Microsoft.Devices/ProvisioningServices.
    Resurs Välj den DPS-resurs som den privata slutpunkten mappar till.
    Underresurs för mål Välj iotDps.

    Dricks

    Information om Anslut till en Azure-resurs efter resurs-ID eller aliasinställning finns i avsnittet Begär en privat slutpunkt i den här artikeln.

    Välj Nästa: Konfiguration för att konfigurera det virtuella nätverket för den privata slutpunkten.

  4. På sidan Skapa en privat slutpunktskonfiguration väljer du ditt virtuella nätverk och undernät för att skapa den privata slutpunkten i.

    Välj Nästa: Taggar och ange eventuella taggar för resursen.

    Screenshot that shows the private endpoint configuration page.

  5. Välj Granska + skapa och sedan Skapa för att skapa din privata slutpunktsresurs.

Använda privata slutpunkter med enheter

Om du vill använda privata slutpunkter med enhetsetableringskod måste din etableringskod använda den specifika tjänstslutpunkten för DPS-instansen enligt översiktssidan för DPS-instansen i Azure-portalen. Tjänstslutpunkten har följande formulär.

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

De flesta exempelkoder som visas i vår dokumentation och SDK:er använder den globala enhetsslutpunkten (global.azure-devices-provisioning.net) och ID-omfånget för att lösa en viss DPS-instans. Använd tjänstslutpunkten i stället för den globala enhetsslutpunkten när du ansluter till en DPS-instans med hjälp av privata slutpunkter för att etablera dina enheter.

Exempel på etablering av enhetsklient (pro_dev_client_sample) i Azure IoT C SDK är till exempel utformat för att använda den globala enhetsslutpunkten som global etablerings-URI (global_prov_uri) i 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");

Om du vill använda exemplet med en privat slutpunkt ändras den markerade koden ovan för att använda tjänstslutpunkten för DPS-resursen. Om tjänstslutpunkten till exempel var mydps.azure-devices-provisioning.netser koden ut så här.

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");
    }

Begära en privat slutpunkt

Du kan begära en privat slutpunkt till en DPS-instans via resurs-ID. För att kunna göra den här begäran behöver du resursägaren för att kunna ange resurs-ID:t för dig.

  1. Resurs-ID:t finns på fliken egenskaper för DPS-resursen enligt nedan.

    Screenshot that shows the DPS Properties tab.

    Varning

    Tänk på att resurs-ID:t innehåller prenumerations-ID:t.

  2. När du har resurs-ID följer du stegen ovan i Konfigurera en privat slutpunkt till steg 3 på sidan Skapa en privat slutpunktsresurs . Välj Anslut till en Azure-resurs efter resurs-ID eller alias och ange informationen i följande tabell.

    Fält Värde
    Resurs-ID eller alias Ange resurs-ID för DPS-resursen.
    Underresurs för mål Ange iotDps
    Begärandemeddelande Ange ett meddelande om begäran för DPS-resursägaren.
    Till exempel
    Please approve this new private endpoint
    for IoT devices in site 23 to access this DPS instance

    Välj Nästa: Konfiguration för att konfigurera det virtuella nätverket för den privata slutpunkten.

  3. På sidan Skapa en privat slutpunktskonfiguration väljer du det virtuella nätverket och undernätet för att skapa den privata slutpunkten i.

    Välj Nästa: Taggar och ange eventuella taggar för resursen.

  4. Välj Granska + skapa och sedan Skapa för att skapa din privata slutpunktsbegäran.

  5. DPS-ägaren ser den privata slutpunktsbegäran i listan Privata slutpunktsanslutningar på fliken DPS-nätverk. På den sidan kan ägaren godkänna eller avvisa den privata slutpunktsbegäran.

    Screenshot that shows the private endpoint request approval.

Prissättning för privata slutpunkter

Prisinformation finns i Priser för Azure Private Link.

Nästa steg

Använd länkarna nedan för att lära dig mer om DPS-säkerhetsfunktioner: