Dukungan Azure IoT Device Provisioning Service (DPS) untuk jaringan virtual

Artikel ini memperkenalkan pola konektivitas jaringan virtual (VNET) untuk provisi perangkat IoT dengan hub IoT menggunakan DPS. Pola ini menyediakan konektivitas privat antara perangkat, DPS, dan hub IoT di dalam Azure VNET milik pelanggan.

Dalam sebagian besar skenario di mana DPS dikonfigurasi dengan VNET, IoT Hub Anda juga dikonfigurasi di VNET yang sama. Untuk mengetahui informasi yang lebih spesifik tentang dukungan dan konfigurasi VNET untuk IoT Hub, lihat Dukungan jaringan virtual IoT Hub.

Pendahuluan

Secara default, nama host DPS memetakan titik akhir publik dengan alamat IP yang dapat dirutekan secara publik melalui internet. Titik akhir publik ini terlihat oleh semua pelanggan. Perangkat IoT melalui jaringan area luas dan jaringan lokal dapat mencoba mengakses titik akhir publik.

Untuk beberapa alasan, pelanggan mungkin ingin membatasi konektivitas ke sumber daya Azure, seperti DPS. Alasan ini meliputi:

  • Mencegah paparan koneksi melalui Internet publik. Paparan dapat dikurangi dengan memperkenalkan lebih banyak lapisan keamanan melalui isolasi tingkat jaringan untuk hub IoT dan sumber daya DPS Anda

  • Mengaktifkan pengalaman konektivitas privat dari aset jaringan lokal Anda yang memastikan bahwa data dan lalu lintas Anda dikirimkan langsung ke jaringan backbone Azure.

  • Mencegah serangan eksfiltrasi dari jaringan lokal yang sensitif.

  • Mengikuti pola konektivitas seluruh Azure yang ditetapkan menggunakan titik akhir privat.

Pendekatan umum untuk membatasi konektivitas termasuk aturan filter DPS IP dan Jaringan virtual (VNET) dengan titik akhir privat. Tujuan artikel ini adalah untuk menjelaskan pendekatan VNET untuk DPS menggunakan titik akhir privat.

Perangkat yang beroperasi di jaringan lokal dapat menggunakan Jaringan Privat Virtual (VPN) atau peering privat ExpressRoute untuk tersambung ke VNET di Azure dan mengakses sumber daya DPS melalui titik akhir privat.

Titik akhir privat adalah alamat IP privat yang dialokasikan di dalam VNET milik pelanggan tempat sumber daya Azure dapat diakses. Dengan memiliki titik akhir privat untuk sumber daya DPS, Anda dapat mengizinkan perangkat yang beroperasi di dalam VNET untuk meminta provisi oleh sumber daya DPS Anda tanpa mengizinkan lalu lintas ke titik akhir publik. Setiap sumber daya DPS dapat mendukung beberapa titik akhir privat, yang masing-masing mungkin terletak di VNET di wilayah yang berbeda.

Prasyarat

Sebelum melanjutkan, pastikan prasyarat berikut terpenuhi:

Batasan titik akhir privat

Perhatikan batasan saat ini berikut untuk DPS saat menggunakan titik akhir privat:

  • Titik akhir privat tidak berfungsi saat sumber daya DPS dan hub IoT yang ditautkan berada di cloud yang berbeda. Misalnya, Azure Government dan Azure global.

  • Titik akhir privat di DPS menggunakan Azure Private Link, yang hanya didukung di wilayah publik. Untuk informasi selengkapnya, lihat Ketersediaan Azure Private Link.

  • Saat ini, kebijakan alokasi kustom dengan Azure Functions untuk DPS tidak berfungsi saat fungsi Azure dikunci ke VNET dan titik akhir privat.

  • Dukungan DPS VNET saat ini hanya untuk ingress data ke dalam DPS. Egress data, yang merupakan lalu lintas dari DPS ke IoT Hub, menggunakan mekanisme layanan ke layanan internal daripada VNET khusus. Dukungan untuk penguncian keluar berbasis VNET penuh antara DPS dan IoT Hub saat ini tidak tersedia.

  • Kebijakan alokasi latensi terendah digunakan untuk menetapkan perangkat ke hub IoT dengan latensi terendah. Kebijakan alokasi ini tidak dapat diandalkan dalam lingkungan jaringan virtual.

  • Mengaktifkan satu atau beberapa titik akhir privat biasanya melibatkan penonaktifan akses publik ke instans DPS Anda. Setelah akses publik dinonaktifkan, Anda tidak dapat lagi menggunakan portal Azure untuk mengelola pendaftaran. Sebagai gantinya, Anda dapat mengelola pendaftaran menggunakan Azure CLI, PowerShell, atau API layanan dari komputer di dalam titik akhir privat VNET/yang dikonfigurasi pada instans DPS.

  • Saat menggunakan titik akhir privat, sebaiknya sebarkan DPS di salah satu wilayah yang mendukung Zona Ketersediaan. Jika tidak, instans DPS dengan titik akhir privat yang diaktifkan dapat melihat berkurangnya ketersediaan jika terjadi pemadaman.

Catatan

Pertimbangan residensi data:

DPS menyediakan titik akhir perangkat Global (global.azure-devices-provisioning.net). Namun, ketika Anda menggunakan titik akhir global, data Anda dapat dialihkan ke luar wilayah tempat instans DPS awalnya dibuat. Untuk memastikan residensi data di wilayah DPS awal, gunakan titik akhir privat.

Menyiapkan titik akhir privat

Untuk menyiapkan titik akhir privat, ikuti langkah-langkah berikut:

  1. Di portal Azure, buka sumber daya DPS Anda dan pilih tab Jaringan. Pilih Koneksi titik akhir privat dan + Titik akhir privat.

    Screenshot that shows adding a new private endpoint for DPS.

  2. Pada halaman Buat Dasar-Dasar titik akhir privat, masukkan informasi yang disebutkan dalam tabel berikut ini.

    Screenshot that shows the private endpoints basics page.

    Bidang Nilai
    Langganan Pilih langganan Azure yang diinginkan untuk memuat titik akhir privat.
    Grup sumber daya Memilih atau membuat grup sumber daya untuk memuat titik akhir privat
    Nama Masukkan nama apa pun untuk titik akhir privat Anda
    Wilayah Wilayah yang dipilih harus sama dengan wilayah yang berisi VNET, tetapi tidak harus sama dengan sumber daya DPS.

    Pilih Berikutnya : Sumber daya untuk mengonfigurasi sumber daya yang dimajukan oleh titik akhir privat.

  3. Pada halaman Buat Sumber Daya titik akhir privat, masukkan informasi yang disebutkan dalam tabel berikut ini.

    Screenshot that shows the private endpoint resource page.

    Bidang Nilai
    Langganan Pilih langganan Azure yang berisi sumber daya DPS yang dituju titik akhir privat Anda.
    Jenis Sumber Daya Pilih Microsoft.Devices/ProvisioningServices.
    Sumber daya Pilih sumber daya DPS tempat titik akhir privat dipetakan.
    Sub-sumber daya target Pilih iotDps.

    Tip

    Informasi tentang pengaturan Sambungkan ke sumber daya Azure menurut ID sumber daya atau alias disediakan di bagian Minta titik akhir privat di artikel ini.

    Pilih Berikutnya : Konfigurasi untuk mengonfigurasi VNET untuk titik akhir privat.

  4. Di halaman Konfigurasi Buat titik akhir privat, pilih jaringan virtual dan subnet Anda untuk membuat titik akhir privat.

    Pilih Berikutnya : Tag, dan secara opsional berikan tag apa pun untuk sumber daya Anda.

    Screenshot that shows the private endpoint configuration page.

  5. Pilih Tinjau + buat lalu Buat untuk membuat sumber daya titik akhir privat Anda.

Menggunakan titik akhir privat dengan perangkat

Untuk menggunakan titik akhir privat dengan kode provisi perangkat, kode provisi Anda harus menggunakan titik akhir Layanan tertentu untuk instans DPS Anda seperti yang ditunjukkan pada halaman gambaran umum instans DPS Anda di portal Azure. Titik akhir layanan memiliki formulir berikut.

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

Sebagian besar kode sampel yang ditunjukkan dalam dokumentasi dan SDK kami, menggunakan Titik akhir perangkat global (global.azure-devices-provisioning.net) dan Cakupan ID untuk menyelesaikan instans DPS tertentu. Gunakan titik akhir layanan sebagai pengganti titik akhir perangkat global saat menyambungkan ke instans DPS menggunakan titik akhir privat untuk menyediakan perangkat Anda.

Misalnya, sampel klien perangkat provisi (pro_dev_client_sample) di Azure IoT C SDK dirancang untuk menggunakan Titik akhir perangkat global sebagai URI provisi global (global_prov_uri) di 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");

Untuk menggunakan sampel dengan titik akhir privat, kode yang disorot di atas akan diubah untuk menggunakan titik akhir layanan untuk sumber daya DPS Anda. Misalnya, jika titik akhir layanan Anda adalah mydps.azure-devices-provisioning.net, kode akan terlihat sebagai berikut.

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

Meminta titik akhir privat

Anda dapat meminta titik akhir privat ke instans DPS berdasarkan ID sumber daya. Untuk membuat permintaan ini, Anda memerlukan pemilik sumber daya untuk menyediakan ID sumber daya kepada Anda.

  1. ID sumber daya disediakan pada tab properti untuk sumber daya DPS seperti yang ditunjukkan di bawah.

    Screenshot that shows the DPS Properties tab.

    Perhatian

    Ketahuilah bahwa ID sumber daya berisi ID langganan.

  2. Setelah Anda memiliki ID sumber daya, ikuti langkah-langkah di atas dalam Menyiapkan titik akhir privat untuk langkah 3 di halaman Sumber daya Membuat titik akhir privat. Pilih Koneksi ke sumber daya Azure menurut ID sumber daya atau alias dan masukkan informasi dalam tabel berikut.

    Bidang Nilai
    ID sumber daya atau alias Masukkan ID sumber daya untuk sumber daya DPS.
    Sub-sumber daya target Masukkan iotDps
    Pesan permintaan Masukkan pesan permintaan untuk pemilik sumber daya DPS.
    Misalnya:
    Please approve this new private endpoint
    for IoT devices in site 23 to access this DPS instance

    Pilih Berikutnya : Konfigurasi untuk mengonfigurasi VNET untuk titik akhir privat.

  3. Di halaman Konfigurasi Buat titik akhir privat, pilih jaringan virtual dan subnet untuk membuat titik akhir privat.

    Pilih Berikutnya : Tag, dan secara opsional berikan tag apa pun untuk sumber daya Anda.

  4. Pilih Tinjau + buat lalu Buat untuk membuat permintaan titik akhir privat Anda.

  5. Pemilik DPS melihat permintaan titik akhir privat di daftar Koneksi titik akhir privat pada tab jaringan DPS. Pada halaman tersebut, pemilik dapat Menyetujui atau Menolak permintaan titik akhir privat.

    Screenshot that shows the private endpoint request approval.

Harga titik akhir privat

Untuk detail harga, lihat Harga Azure Private Link.

Langkah berikutnya

Gunakan tautan di bawah untuk mempelajari lebih lanjut tentang fitur keamanan DPS: