Share via


Azure IoT DPS IP bağlantı filtrelerini kullanma

Güvenlik tüm IoT çözümlerinde önemli bir konudur. 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 reddetmek veya kabul etmek için kurallar yapılandırmanıza olanak tanır.

ne zaman kullanılmalı

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

  • DPS'niz yalnızca belirtilen IP adresi aralığından gelen trafiği 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 birlikte kullanıyorsunuz.

  • DPS yöneticisinin şüpheli olarak tanımladığı 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 durumda, bir veya daha fazla makinenin IP adresini'ne 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 makalenin devamında yer alan IP filtresi kuralı değerlendirmesine bakın.

Filtre kuralları nasıl uygulanır?

IP filtresi kuralları DPS örneği düzeyinde uygulanır. Bu nedenle IP filtresi kuralları desteklenen bir protokol kullanılarak cihazlardan ve arka uç uygulamalarından gelen tüm bağlantılara uygulanır.

DPS örneğinizde IP reddetme kuralıyla eşleşen bir IP adresinden gelen tüm bağlantı girişimleri bir yetkisiz 401 durum kodu ve açıklaması alır. Yanıt iletisinde IP kuralı belirtilmez.

Önemli

IP adreslerinin reddedilmesi 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şimi Tü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.

IoT DPS default IP filter settings.

IP filtresi kuralı ekleme

IP filtresi kuralı eklemek için:

  1. Azure portalına gidin.

  2. Sol taraftaki menüden veya portal sayfasında Tüm kaynaklar'ı seçin.

  3. Cihaz Sağlama Hizmetinizi seçin.

  4. Sol taraftaki Ayarlar menüsünde Ağ'ı seçin.

  5. Genel ağ erişimi'nin altında Seçili IP aralıkları'ni seçin

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

    Add an IP filter rule to an IoT DPS.

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

    Alan Veri Akışı Açıklaması
    Dosya Adı 128 karakter uzunluğunda benzersiz, büyük/küçük harfe duyarlı olmayan, alfasayısal dize. Yalnızca ASCII 7-bit alfasayısal karakterler ile {'-', ':', '/', '\', '.', '+', '%', '_', '#', '*', '?', '!', '(', ')', ',', '=', '@', ';', '''} karakterleri kabul edilir.
    Adres Aralığı CIDR gösteriminde tek bir IPv4 adresi veya IP adresleri 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.

    After selecting Add an IP Filter rule.

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

    Notification about saving an IP filter rule.

    Dekont

    + 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.

    Edit an IP filter rule.

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

  3. Kaydet'i 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.

    Delete an IoT DPS IP filter rule.

  2. Kaydet'i 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. Kaydet'i 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 Iot Hub Kaynağı - Güncelleştirme yönteminin Tanımlar bölümüne bakın IpFilterRule.

  2. Azure Resource Manager şablonlarını kullanın. Resource Manager şablonlarını kullanma hakkında yönergeler için bkz . Azure Resource Manager şablonları. 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.

    Dekont

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

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

Öznitelik Tanım
FilterName IP Filtresi kuralı için bir ad girin. Benzersiz, büyük-küçük harfe duyarlı olmayan alfasayısal bir dize olmalı ve en fazla 128 karakterden oluşmalıdır. Yalnızca ASCII 7-bit alfasayısal karakterler ile {'-', ':', '/', '\', '.', '+', '%', '_', '#', '*', '?', '!', '(', ')', ',', '=', '@', ';', '''} karakterleri kabul edilir.
Eylem Kabul edilen değerler, IP filtresi kuralı için eylem olarak Kabul Et veya Reddet'tir.
ipMask 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 yönetimini daha fazla incelemek için bkz: