Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
W tym artykule przedstawiono wzorzec łączności sieci wirtualnej (VNET) dla aprowizacji urządzeń IoT za pomocą centrów IoT, wykorzystując usługę DPS. Ten wzorzec zapewnia prywatną łączność między urządzeniami, usługą DPS i centrum IoT w sieci wirtualnej platformy Azure należącej do klienta.
W większości scenariuszy, w których usługa DPS jest skonfigurowana przy użyciu sieci wirtualnej, usługa IoT Hub jest również skonfigurowana w tej samej sieci wirtualnej. Aby uzyskać bardziej szczegółowe informacje na temat obsługi i konfiguracji sieci wirtualnej dla usługi IoT Hubs, zobacz Obsługa sieci wirtualnej usługi IoT Hub.
Wprowadzenie
Domyślnie nazwy hostów usługi DPS są mapowane na publiczny punkt końcowy z publicznie trasowalnym adresem IP w Internecie. Ten publiczny punkt końcowy jest widoczny dla wszystkich klientów. Urządzenia IoT za pośrednictwem sieci rozległych i sieci lokalnych mogą próbować uzyskać dostęp do publicznego punktu końcowego.
Z kilku powodów klienci mogą chcieć ograniczyć łączność z zasobami platformy Azure, takimi jak DPS. Oto następujące przyczyny:
Zapobiegaj narażeniu połączenia przez publiczny Internet. Narażenie można zmniejszyć przez wprowadzenie większej liczby warstw zabezpieczeń za pośrednictwem izolacji na poziomie sieci dla zasobów centrum IoT i usługi DPS
Umożliwienie prywatnego połączenia z zasobów sieci lokalnej zapewnia, że dane i ruch są przesyłane bezpośrednio do sieci szkieletowej Azure.
Zapobieganie atakom eksfiltracji z poufnych sieci lokalnych.
Korzystanie ze sprawdzonych wzorców łączności platformy Azure przy użyciu prywatnych punktów końcowych.
Typowe podejścia do ograniczania łączności obejmują reguły filtrowania adresów IP usługi DPS i sieć wirtualną (VNET) z prywatnymi punktami końcowymi. Celem tego artykułu jest opisanie podejścia do sieci wirtualnej dla usługi DPS przy użyciu prywatnych punktów końcowych.
Urządzenia działające w sieciach lokalnych mogą używać wirtualnej sieci prywatnej (VPN) lub prywatnego peeringu usługi ExpressRoute, aby połączyć się z siecią wirtualną na platformie Azure i uzyskiwać dostęp do zasobów usługi DPS za pośrednictwem prywatnych punktów końcowych.
Prywatny punkt końcowy to prywatny adres IP przydzielony w sieci wirtualnej należącej do klienta, za pomocą której jest dostępny zasób platformy Azure. Mając prywatny punkt końcowy dla zasobu DPS, można umożliwić urządzeniom działającym w sieci wirtualnej zażądać aprowizacji przez zasób DPS bez zezwalania na ruch do publicznego punktu końcowego. Każdy zasób usługi DPS może obsługiwać wiele prywatnych punktów końcowych, z których każdy może znajdować się w sieci wirtualnej w innym regionie.
Wymagania wstępne
Przed kontynuowaniem upewnij się, że spełnione są następujące wymagania wstępne:
Zasób usługi DPS został już utworzony i połączony z centrami IoT. Aby uzyskać wskazówki dotyczące konfigurowania nowego zasobu usługi DPS, zobacz Konfigurowanie usługi IoT Hub Device Provisioning przy użyciu witryny Azure Portal
Skonfigurowałeś sieć wirtualną platformy Azure z podsiecią, w której został utworzony prywatny punkt końcowy. Aby uzyskać więcej informacji, zobacz Tworzenie sieci wirtualnej przy użyciu interfejsu wiersza polecenia platformy Azure.
W przypadku urządzeń działających wewnątrz sieci lokalnych, skonfiguruj prywatną sieć wirtualną (VPN) lub prywatną komunikację równorzędną ExpressRoute z siecią wirtualną w Azure VNET.
Ograniczenia prywatnych punktów końcowych
Podczas korzystania z prywatnych punktów końcowych należy pamiętać o następujących bieżących ograniczeniach usługi DPS:
Prywatne punkty końcowe nie działają, gdy zasób usługi DPS i połączone centrum IoT znajdują się w różnych chmurach. Na przykład platforma Azure Government i globalna platforma Azure.
Prywatne punkty końcowe w usłudze DPS używają usługi Azure Private Link, które są obsługiwane tylko w regionach publicznych. Aby uzyskać więcej informacji, zobacz Dostępność usługi Azure Private Link.
Obecnie niestandardowe zasady alokacji w usłudze Azure Functions dla usługi DPS nie działają, gdy funkcja platformy Azure jest zablokowana w sieci wirtualnej i prywatnych punktach końcowych.
Bieżąca obsługa VNET usługi DPS dotyczy tylko danych wejściowych do usługi DPS. Ruch wychodzący danych, który jest ruchem z usługi DPS do usługi IoT Hub, używa wewnętrznego mechanizmu między usługami, a nie dedykowanej sieci wirtualnej. Obsługa pełnej blokady ruchu wychodzącego opartego na VNET między usługami DPS i IoT Hub nie jest obecnie dostępna.
Do przypisania urządzenia do centrum IoT z najniższym opóźnieniem są używane zasady alokacji najmniejszego opóźnienia. Te zasady alokacji nie są niezawodne w środowisku sieci wirtualnej.
Włączanie jednego lub więcej prywatnych punktów końcowych zwykle polega na wyłączeniu publicznego dostępu do instancji usługi DPS. Po wyłączeniu dostępu publicznego nie można już zarządzać rejestracjami za pomocą witryny Azure Portal. Zamiast tego można zarządzać rejestracjami przy użyciu komendy Azure CLI, programu PowerShell lub interfejsów API usługi z maszyn znajdujących się wewnątrz jednej lub więcej sieci wirtualnych/prywatnych punktów końcowych skonfigurowanych w wystąpieniu usługi DPS.
W przypadku korzystania z prywatnych punktów końcowych zalecamy wdrożenie usługi DPS w jednym z regionów obsługujących strefy dostępności. W innym przypadku instancje DPS z włączonymi prywatnymi punktami końcowymi mogą mieć zmniejszoną dostępność w sytuacji awarii.
Uwaga
Kwestie dotyczące lokalizacji danych:
Usługa DPS udostępnia globalny punkt końcowy urządzenia (global.azure-devices-provisioning.net
). Jednak w przypadku korzystania z globalnego punktu końcowego dane mogą być przekierowywane poza regionem, w którym początkowo utworzono wystąpienie usługi DPS. Aby zapewnić miejsce przechowywania danych w początkowym regionie usługi DPS, użyj prywatnych punktów końcowych.
Konfigurowanie prywatnego punktu końcowego
Aby skonfigurować prywatny punkt końcowy, wykonaj następujące kroki:
W portalu Azure otwórz zasób usługi DPS i wybierz kartę Sieć. Wybierz połączenia prywatnego punktu końcowego i + Prywatny punkt końcowy.
Na stronie Tworzenie prywatnego punktu końcowego Podstawowe informacje wprowadź informacje wymienione w poniższej tabeli.
(No changes needed) Wartość Subskrypcja Wybierz żądaną subskrypcję platformy Azure, która będzie zawierać prywatny punkt końcowy. grupa zasobów Wybieranie lub tworzenie grupy zasobów zawierającej prywatny punkt końcowy nazwa Wprowadź nazwę prywatnego punktu końcowego Region Wybrany region musi być taki sam jak region zawierający VNET, ale nie musi być taki sam jak region, w którym znajduje się zasób usługi DPS. Wybierz Dalej: zasób, aby skonfigurować zasób, do którego wskazuje prywatny punkt końcowy.
Na stronie Tworzenie prywatnego punktu końcowego wprowadź informacje wymienione w poniższej tabeli.
(No changes needed) Wartość Subskrypcja Wybierz subskrypcję platformy Azure zawierającą zasób usługi DPS, do którego wskazuje prywatny punkt końcowy. Typ zasobu Wybierz pozycję Microsoft.Devices/ProvisioningServices. Zasób Wybierz zasób DPS, do którego jest mapowany prywatny punkt końcowy. Docelowy zasób podrzędny Wybierz iotDps. Wskazówka
Informacje na temat ustawienia Łączenie z zasobem platformy Azure według identyfikatora zasobu lub aliasu można znaleźć w sekcji Żądanie prywatnego punktu końcowego w niniejszym artykule.
Wybierz pozycję Dalej: Konfiguracja , aby skonfigurować sieć wirtualną dla prywatnego punktu końcowego.
Na stronie Tworzenie konfiguracji prywatnego punktu końcowego wybierz sieć wirtualną i podsieć, aby utworzyć prywatny punkt końcowy.
Wybierz pozycję Dalej: Tagi i opcjonalnie podaj tagi dla zasobu.
Wybierz Przejrzyj i utwórz, a następnie Utwórz, aby utworzyć zasób prywatnego punktu końcowego.
Używanie prywatnych punktów końcowych z urządzeniami
Aby używać prywatnych punktów końcowych z kodem aprowizacji urządzeń, kod aprowizacji musi używać określonego punktu końcowego usługi dla wystąpienia DPS, jak to zostało pokazane na stronie przeglądu wystąpienia DPS w portalu Azure. Punkt końcowy usługi ma następujący formularz.
<Your DPS Tenant Name>.azure-devices-provisioning.net
Większość przykładowego kodu pokazanego w naszej dokumentacji i zestawach SDK używa globalnego punktu końcowego urządzenia (global.azure-devices-provisioning.net
) i zakresu identyfikatorów , aby rozwiązać określone wystąpienie usługi DPS. Użyj punktu końcowego usługi zamiast globalnego punktu końcowego urządzenia podczas nawiązywania połączenia z wystąpieniem usługi DPS przy użyciu prywatnych punktów końcowych, aby aprowizować urządzenia.
Na przykład, przykładowy klient aprowizacji urządzeń (pro_dev_client_sample) w Azure IoT C SDK jest zaprojektowany do używania Global Device Endpoint jako globalny URI aprowizacji (global_prov_uri
) w 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");
Aby skorzystać z przykładu z prywatnym punktem końcowym, konieczna będzie zmiana wyróżnionego kodu powyżej, aby użyć punktu końcowego usługi DPS. Jeśli na przykład punkt końcowy usługi to mydps.azure-devices-provisioning.net
, kod będzie wyglądać następująco.
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");
}
Żądanie prywatnego punktu końcowego
Można wystąpić o prywatny punkt końcowy do wystąpienia usługi DPS, korzystając z identyfikatora zasobu. Aby złożyć to żądanie, właściciel zasobu musi podać identyfikator zasobu.
Identyfikator zasobu jest udostępniany na karcie właściwości zasobu usługi DPS, jak pokazano poniżej.
Ostrożność
Identyfikator zasobu zawiera identyfikator subskrypcji.
Po uzyskaniu identyfikatora zasobu wykonaj kroki opisane w instrukcji Konfigurowanie prywatnego punktu końcowego aby wykonać krok 3 na stronie Tworzenie prywatnego punktu końcowego. Wybierz Połącz z zasobem Azure poprzez identyfikator lub alias zasobu, następnie wprowadź informacje w poniższej tabeli.
(No changes needed) Wartość Identyfikator zasobu lub alias Wprowadź identyfikator dla zasobu usługi DPS. Docelowy zasób podrzędny Wprowadź iotDps Komunikat żądania Wprowadź komunikat żądania dla właściciela zasobu usługi DPS.
Na przykładPlease approve this new private endpoint
for IoT devices in site 23 to access this DPS instance
Wybierz pozycję Dalej: Konfiguracja , aby skonfigurować sieć wirtualną dla prywatnego punktu końcowego.
Na stronie Tworzenie konfiguracji prywatnego punktu końcowego wybierz sieć wirtualną i podsieć, aby utworzyć prywatny punkt końcowy.
Wybierz pozycję Dalej: Tagi i opcjonalnie podaj tagi dla zasobu.
Wybierz pozycję Przejrzyj i utwórz, a następnie Utwórz, aby utworzyć żądanie prywatnego punktu końcowego.
Właściciel usługi DPS widzi żądanie prywatnego punktu końcowego na liście Połączenia prywatnego punktu końcowego na karcie Sieci usługi DPS. Na tej stronie właściciel może zatwierdzić lub odrzucić żądanie prywatnego punktu końcowego.
Cennik prywatnych punktów końcowych
Aby uzyskać szczegółowe informacje o cenach, zobacz Cennik usługi Azure Private Link.
Następne kroki
Dowiedz się więcej o funkcjach zabezpieczeń usługi DPS: