Menggunakan filter koneksi IP Azure IoT DPS

Keamanan adalah aspek penting dari solusi IoT apa pun. Terkadang Anda perlu secara eksplisit menentukan alamat IP dari perangkat mana yang dapat terhubung sebagai bagian dari konfigurasi keamanan Anda. Fitur filter IP untuk Azure IoT Hub Device Provisioning Service (DPS) memungkinkan Anda mengonfigurasi aturan untuk menolak atau menerima lalu lintas dari alamat IPv4 tertentu.

Waktu menggunakan

Ada dua kasus penggunaan tertentu di mana pemblokiran koneksi ke titik akhir DPS dari alamat IP tertentu bermanfaat:

  • DPS Anda hanya menerima lalu lintas dari rentang alamat IP tertentu dan menolak yang lain. Misalnya, Anda menggunakan DPS dengan Azure Express Route untuk membuat koneksi privat antara instans DPS dan perangkat Anda.

  • Anda perlu menolak lalu lintas dari alamat IP yang telah diidentifikasi sebagai mencurigakan oleh administrator DPS.

Batasan aturan filter IP

Perhatikan batasan berikut jika pemfilteran IP diaktifkan:

  • Anda mungkin tidak dapat menggunakan portal Azure untuk mengelola pendaftaran. Jika ini terjadi, Anda dapat menambahkan alamat IP satu atau beberapa komputer ke ipFilterRules dan mengelola pendaftaran di instans DPS dari komputer tersebut dengan Azure CLI, PowerShell, atau API layanan.

    Skenario ini kemungkinan besar terjadi ketika Anda ingin menggunakan pemfilteran IP untuk mengizinkan akses hanya ke alamat IP yang dipilih. Dalam hal ini, Anda mengonfigurasi aturan untuk mengaktifkan alamat atau rentang alamat tertentu dan aturan default yang memblokir semua alamat lain (0.0.0.0/0). Aturan default ini akan memblokir portal Azure melakukan operasi seperti mengelola pendaftaran pada instans DPS. Untuk informasi selengkapnya, lihat Evaluasi aturan filter IP nanti di artikel ini.

Cara penerapan aturan filter

Aturan filter IP diterapkan pada tingkat instans DPS. Oleh karena itu, aturan filter IP berlaku untuk semua koneksi dari perangkat dan aplikasi back-end yang menggunakan protokol yang didukung.

Upaya koneksi apa pun dari alamat IP yang cocok dengan penolakan aturan IP di instans DPS Anda menerima kode dan deskripsi status 401 yang tidak sah. Pesan tanggapan tidak menyebutkan aturan IP.

Penting

Penolakan alamat IP dapat mencegah Azure Services lain berinteraksi dengan instans DPS.

Pengaturan default

Secara default, pemfilteran IP dinonaktifkan dan Akses jaringan publik diatur ke Semua jaringan. Pengaturan default ini berarti bahwa DPS Anda menerima koneksi dari alamat IP apa pun, atau sesuai dengan aturan yang menerima rentang alamat IP 0.0.0.0/0.

IoT DPS default IP filter settings.

Menambahkan aturan filter IP

Untuk menambahkan aturan filter IP:

  1. Buka portal Microsoft Azure.

  2. Di menu sebelah kiri atau di halaman portal, pilih Semua sumber daya.

  3. Pilih Device Provisioning Service Anda.

  4. Di menu Pengaturan di sisi kiri, pilih Jaringan.

  5. Di bagian Akses jaringan publik, pilih Rentang IP yang dipilih

  6. Pilih + Tambahkan Aturan Filter IP.

    Add an IP filter rule to an IoT DPS.

  7. Isi bidang berikut:

    Bidang KETERANGAN
    Nama String unik, peka huruf besar/kecil, alfanumerik dengan panjang maksimum 128 karakter. Hanya karakter alfanumerik ASCII 7-bit plus {'-', ':', '/', '\', '.', '+', '%', '_', '#', '*', '?', '!', '(', ')', ',', '=', '@', ';', '''} yang diterima.
    Rentang Alamat Satu alamat IPv4 atau blok alamat IP dalam notasi CIDR. Misalnya, dalam notasi CIDR, 192.168.100.0/22 mewakili alamat IPv4 1024 dari 192.168.100.0 hingga 192.168.103.255.
    Tindakan Pilih Izinkan atau Blokir.

    After selecting Add an IP Filter rule.

  8. Pilih Simpan. Anda akan melihat pemberitahuan yang meninformasikan bahwa pembaruan sedang berlangsung.

    Notification about saving an IP filter rule.

    Catatan

    + Tambahkan Aturan Filter IP dinonaktifkan saat Anda mencapai maksimum 100 aturan filter IP.

Mengedit aturan filter IP

Untuk mengedit aturan yang sudah ada:

  1. Pilih data aturan filter IP yang ingin diubah.

    Edit an IP filter rule.

  2. Buat perubahan.

  3. Pilih Simpan.

Menghapus aturan filter IP

Untuk menghapus aturan filter IP:

  1. Pilih ikon hapus pada baris aturan IP yang ingin dihapus.

    Delete an IoT DPS IP filter rule.

  2. Pilih Simpan.

Evaluasi aturan filter IP

Aturan filter IP diterapkan secara berurutan. Aturan pertama yang cocok dengan alamat IP menentukan tindakan terima atau tolak.

Misalnya, jika Anda ingin menerima alamat dalam rentang 192.168.100.0/22 dan menolak yang lainnya, aturan pertama dalam kisi harus menerima rentang alamat 192.168.100.0/22. Aturan berikutnya harus menolak semua alamat dengan menggunakan rentang 0.0.0.0/0.

Untuk mengubah urutan aturan filter IP:

  1. Pilih aturan yang ingin dipindahkan.

  2. Seret dan taruh aturan ke lokasi yang diinginkan.

  3. Pilih Simpan.

Memperbarui aturan filter IP menggunakan templat Azure Resource Manager

Ada dua cara untuk memperbarui filter IP DPS:

  1. Menghubungi metode IoT Hub Resource REST API. Untuk mempelajari cara memperbarui aturan filter IP menggunakan REST, lihat IpFilterRule di bagian Definisi pada Sumber daya IoT Hub - Metode perburuan.

  2. Menggunakan templat Azure Resource Manager. Untuk panduan tentang cara menggunakan templat Resource Manager, lihat Templat Azure Resource Manager. Contoh berikut menunjukkan cara membuat, mengedit, dan menghapus aturan filter IP DPS dengan templat Azure Resource Manager.

    Catatan

    Azure CLI dan Azure PowerShell saat ini tidak mendukung pembaruan aturan filter IP DPS.

Menambahkan aturan filter IP

Contoh templat berikut membuat aturan filter IP baru bernama "AllowAll" yang menerima semua lalu lintas.

{
    "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#", 
    "contentVersion": "1.0.0.0", 
    "parameters": {
        "iotDpsName": {
            "type": "string",
            "defaultValue": "[resourceGroup().name]",
            "minLength": 3,
            "metadata": {
                "description": "Specifies the name of the IoT DPS service."
            }
        }, 
        "location": {
            "type": "string",
            "defaultValue": "[resourceGroup().location]",
            "metadata": {
                "description": "Location for Iot DPS resource."
            }
        }        
    }, 
    "variables": {
        "iotDpsApiVersion": "2020-01-01"
    }, 
    "resources": [
        {
            "type": "Microsoft.Devices/provisioningServices",
            "apiVersion": "[variables('iotDpsApiVersion')]",
            "name": "[parameters('iotDpsName')]",
            "location": "[parameters('location')]",
            "sku": {
                "name": "S1",
                "tier": "Standard",
                "capacity": 1
            },
            "properties": {
                "IpFilterRules": [
                    {
                        "FilterName": "AllowAll",
                        "Action": "Accept",
                        "ipMask": "0.0.0.0/0"
                    }
                ]
            }            
        }
    ]
}

Perbarui atribut aturan filter IP templat sesuai dengan kebutuhan Anda.

Atribut Deskripsi
FilterName Berikan nama untuk aturan Filter IP. Nama harus berupa string alfanumerik yang unik, tidak peka huruf besar/kecil hingga 128 karakter panjangnya. Hanya karakter alfanumerik ASCII 7-bit plus {'-', ':', '/', '\', '.', '+', '%', '_', '#', '*', '?', '!', '(', ')', ',', '=', '@', ';', '''} yang diterima.
Tindakan Nilai yang diterima adalah Terima atau Tolak sebagai tindakan untuk aturan filter IP.
ipMask Berikan satu alamat IPv4 atau blok alamat IP dalam notasi CIDR. Misalnya, dalam notasi CIDR, 192.168.100.0/22 mewakili alamat IPv4 1024 dari 192.168.100.0 hingga 192.168.103.255.

Memperbarui aturan filter IP

Contoh templat berikut memperbarui aturan filter IP bernama "AllowAll", yang ditampilkan sebelumnya, untuk menolak semua lalu lintas.

{ 
    "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",  
    "contentVersion": "1.0.0.0",  
    "parameters": { 
        "iotDpsName": { 
            "type": "string", 
            "defaultValue": "[resourceGroup().name]", 
            "minLength": 3, 
            "metadata": { 
                "description": "Specifies the name of the IoT DPS service." 
            } 
        },  
        "location": { 
            "type": "string", 
            "defaultValue": "[resourceGroup().location]", 
            "metadata": { 
                "description": "Location for Iot DPS resource." 
            } 
        }        
    },  
    "variables": { 
        "iotDpsApiVersion": "2020-01-01" 
    },  
    "resources": [ 
        { 
            "type": "Microsoft.Devices/provisioningServices", 
            "apiVersion": "[variables('iotDpsApiVersion')]", 
            "name": "[parameters('iotDpsName')]", 
            "location": "[parameters('location')]", 
            "sku": { 
                "name": "S1", 
                "tier": "Standard", 
                "capacity": 1 
            }, 
            "properties": { 
                "IpFilterRules": [ 
                    { 
                        "FilterName": "AllowAll", 
                        "Action": "Reject", 
                        "ipMask": "0.0.0.0/0" 
                    } 
                ] 
            }             
        } 
    ] 
}

Menghapus aturan filter IP

Contoh templat berikut menghapus semua aturan filter IP untuk instans DPS.

{ 
    "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",  
    "contentVersion": "1.0.0.0",  
    "parameters": { 
        "iotDpsName": { 
            "type": "string", 
            "defaultValue": "[resourceGroup().name]", 
            "minLength": 3, 
            "metadata": { 
                "description": "Specifies the name of the IoT DPS service." 
            } 
        },  
        "location": { 
            "type": "string", 
            "defaultValue": "[resourceGroup().location]", 
            "metadata": { 
                "description": "Location for Iot DPS resource." 
            } 
        }        
    },  
    "variables": { 
        "iotDpsApiVersion": "2020-01-01" 
    },  
    "resources": [ 
        { 
            "type": "Microsoft.Devices/provisioningServices", 
            "apiVersion": "[variables('iotDpsApiVersion')]", 
            "name": "[parameters('iotDpsName')]", 
            "location": "[parameters('location')]", 
            "sku": { 
                "name": "S1", 
                "tier": "Standard", 
                "capacity": 1 
            }, 
            "properties": { 
            }             
        } 
    ] 
}

Langkah berikutnya

Untuk menjelajahi DPS pengelolaan lebih lanjut, lihat: