Azure IoT DPS IP bağlantı filtrelerini kullanma

Güvenlik, tüm IoT çözümlerinin önemli bir yönüdür. Bazen güvenlik yapılandırmanız kapsamında cihazların hangi IP adreslerinden bağlanabileceğini açıkça belirtmeniz gerekir. Azure IoT Hub Cihaz Sağlama Hizmeti'nin (DPS) IP filtresi özelliği, belirli IPv4 adreslerinden gelen trafiği reddetme veya kabul etme kurallarını yapılandırmanızı sağlar.

Ne zaman kullanılır?

Belirli IP adreslerinden DPS uç noktasına bağlantıları engellemenin yararlı olduğu iki özel kullanım örneği vardır:

  • DPS'niz yalnızca belirli bir IP adresi aralığından trafik almalı ve diğer her şeyi reddetmelidir. Örneğin, DPS örneğinizle cihazlarınız arasında özel bağlantılar oluşturmak için DPS'nizi Azure Express Route ile kullanıyorsunuz.

  • DPS yöneticisi tarafından şüpheli olarak tanımlanan IP adreslerinden gelen trafiği reddetmeniz gerekir.

IP filtresi kuralları sınırlamaları

IP filtreleme etkinse aşağıdaki sınırlamalara dikkat edin:

  • Kayıtları yönetmek için Azure portalını kullanamayabilirsiniz. Bu senaryo oluşursa, bir veya daha fazla makinenin IP adresini dps örneğine ipFilterRules ekleyebilir ve Azure CLI, PowerShell veya hizmet API'leri olan bu makinelerden DPS örneğindeki kayıtları yönetebilirsiniz.

    Bu senaryo, yalnızca seçili IP adreslerine erişime izin vermek için IP filtreleme kullanmak istediğinizde büyük olasılıkla gerçekleşir. Bu durumda, belirli adresleri veya adres aralıklarını etkinleştirmek için kuralları ve diğer tüm adresleri (0.0.0.0/0) engelleyen varsayılan bir kural yapılandıracaksınız. Bu varsayılan kural, Azure portalının DPS örneğinde kayıtları yönetme gibi işlemler gerçekleştirmesini engeller. Daha fazla bilgi için bu makaledeki IP filtresi kuralı değerlendirmesine bakın.

Filtre kuralları nasıl uygulanır?

IP filtresi kuralları DPS örnek düzeyinde uygulanır. Bu nedenle IP filtresi kuralları, desteklenen protokolleri kullanan cihazlardan ve arka uç uygulamalarından gelen tüm bağlantılar için geçerlidir.

DPS örneğinizdeki reddedilen bir IP kuralıyla eşleşen bir IP adresinden yapılan tüm bağlantı girişimleri yetkisiz bir 401 durum kodu ve açıklaması alır. Yanıt iletisi IP kuralından bahsetmiyor.

Önemli

IP adreslerini reddetmek, diğer Azure Hizmetlerinin DPS örneğiyle etkileşim kurmasını engelleyebilir.

Varsayılan ayar

Varsayılan olarak, IP filtreleme devre dışı bırakılır ve Genel ağ erişimiTüm ağlar olarak ayarlanır. Bu varsayılan ayar, DPS'nizin herhangi bir IP adresinden bağlantıları kabul ettiğini veya 0.0.0.0/0 IP adresi aralığını kabul eden bir kurala uyduğunu gösterir.

Azure portalında IoT DPS varsayılan IP filtresi ayarlarını gösteren ekran görüntüsü.

IP filtresi kuralı ekleme

IP filtresi kuralı eklemek için:

  1. Azure portala gidin.

  2. Portal menüsünden veya portal sayfasından Tüm kaynaklar'ı seçin.

  3. Cihaz Sağlama Hizmeti örneğinizi seçin.

  4. Hizmet menüsünde, Ayarlar altında 'ı seçin.

  5. Çalışma bölmesindeki Genel ağ erişimi'nin altında Seçili IP aralıkları'nı seçin

  6. + IP Filtresi Kuralı Ekle'yi seçin.

    Azure portalında IoT DPS örneğine IP filtresi kuralının nasıl ekleneceğini gösteren ekran görüntüsü.

  7. Aşağıdaki alanları doldurun:

    Alan Açıklama
    İsim 128 karakter uzunluğunda benzersiz, büyük/küçük harfe duyarlı olmayan, alfasayısal dize. Yalnızca ASCII 7 bit alfasayısal karakterler artı {'-', ':', '/', '\', '.', '+', '%', '_', '#', '*', '?', '!', '(', ')', ',', '=', '@', ';', '''} kabul edilir.
    Adres Aralığı Sınıfsız Inter-Domain Yönlendirme (CIDR) gösterimindeki tek bir IPv4 adresi veya bir IP adresi bloğu. Örneğin CIDR gösteriminde 192.168.100.0/22, 192.168.100.0 ile 192.168.103.255 arasındaki 1024 IPv4 adresini temsil eder.
    Eylem İzin Ver veya Engelle'yi seçin.

    Azure portalında IoT DPS örneği için IP filtresi kuralını tanımlamayı ve kaydetmeyi gösteren ekran görüntüsü.

  8. Kaydetseçeneğini seçin. Güncelleştirmenin devam ettiğini bildiren bir uyarı görmeniz gerekir.

    Azure portalında bir IP filtresi kuralı kaydedilirken görüntülenen bildirimi gösteren ekran görüntüsü.

    Uyarı

    + IP Filtresi Kuralı Ekle , en fazla 100 IP filtresi kuralına ulaştığınızda devre dışı bırakılır.

IP filtresi kuralını düzenleme

Mevcut bir kuralı düzenlemek için:

  1. Değiştirmek istediğiniz IP filtresi kuralı verilerini seçin.

    Azure portalında IoT DPS örneği için IP filtresi kuralını düzenlemeyi gösteren ekran görüntüsü.

  2. Değişikliği yapın.

  3. Kaydetseçeneğini seçin.

IP filtresi kuralını silme

IP filtresi kuralını silmek için:

  1. Silmek istediğiniz IP kuralının satırındaki sil simgesini seçin.

    Azure portalında Bir IoT DPS örneği için IP filtresi kuralının nasıl silindiğini gösteren ekran görüntüsü.

  2. Kaydetseçeneğini seçin.

IP filtresi kuralı değerlendirmesi

IP filtresi kuralları sırayla uygulanır. IP adresiyle eşleşen ilk kural kabul etme veya reddetme eylemini belirler.

Örneğin, 192.168.100.0/22 aralığındaki adresleri kabul etmek ve diğer her şeyi reddetmek istiyorsanız, kılavuzdaki ilk kural 192.168.100.0/22 adres aralığını kabul etmelidir. Sonraki kural, 0.0.0.0/0 aralığını kullanarak tüm adresleri reddetmelidir.

IP filtresi kurallarınızın sırasını değiştirmek için:

  1. Taşımak istediğiniz kuralı seçin.

  2. Kuralı sürükleyip istediğiniz konuma bırakın.

  3. Kaydetseçeneğini seçin.

Azure Resource Manager şablonlarını kullanarak IP filtresi kurallarını güncelleştirme

DPS IP filtrenizi güncelleştirmenin iki yolu vardır:

  1. IoT Hub Kaynağı REST API'sini çağırın. REST kullanarak IP filtresi kurallarınızı nasıl güncelleştireceğinizi öğrenmek için IpFilterRuleTanımlar bölümüne bakın.

  2. Azure Resource Manager şablonlarını kullanın. Resource Manager şablonlarını kullanma hakkında daha fazla bilgi için bkz. ARM şablonları nedir? Aşağıdaki örneklerde, Azure Resource Manager şablonlarıyla DPS IP filtresi kurallarının nasıl oluşturulacağı, düzenleneceği ve silineceği gösterilmektedir.

    Uyarı

    Azure CLI ve Azure PowerShell şu anda DPS IP filtresi kuralları güncelleştirmelerini desteklememektedir.

IP filtresi kuralı ekleme

Aşağıdaki şablon örneği, tüm trafiği kabul eden "AllowAll" adlı yeni bir IP filtresi kuralı oluşturur.

{
    "$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"
                    }
                ]
            }            
        }
    ]
}

Gereksinimlerinize göre şablonun IP filtresi kuralı özniteliklerini güncelleştirin.

Özellik Açıklama
FilterName IP Filtresi kuralı için bir ad belirtin. Bu değer en fazla 128 karakter uzunluğunda benzersiz, büyük/küçük harfe duyarlı olmayan, alfasayısal bir dize olmalıdır. Yalnızca ASCII 7 bit alfasayısal karakterler artı {'-', ':', '/', '\', '.', '+', '%', '_', '#', '*', '?', '!', '(', ')', ',', '=', '@', ';', '''} kabul edilir.
Eylem Kabul edilen değerler, IP filtresi kuralı için eylem olarak Kabul Et veya Reddet'tir .
ip Maskesi Tek IPv4 adresi veya CIDR gösteriminde bir IP adresleri bloğu belirtin. Örneğin CIDR gösteriminde 192.168.100.0/22, 192.168.100.0 ile 192.168.103.255 arasındaki 1024 IPv4 adresini temsil eder.

IP filtresi kuralını güncelleştirme

Aşağıdaki şablon örneği, daha önce gösterilen "AllowAll" adlı IP filtresi kuralını tüm trafiği reddedecek şekilde güncelleştirir.

{ 
    "$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" 
                    } 
                ] 
            }             
        } 
    ] 
}

IP filtresi kuralını silme

Aşağıdaki şablon örneği, DPS örneği için tüm IP filtresi kurallarını siler.

{ 
    "$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": { 
            }             
        } 
    ] 
}

Sonraki Adımlar

DpS'yi yönetme hakkında daha fazla bilgi edinmek için bkz: