IP フィルターの使用

セキュリティは、Azure IoT Hub をベースとするすべての IoT ソリューションの重要な側面です。 場合によっては、セキュリティ構成の一部として、デバイスが接続できる IP アドレスを明示的に指定する必要があります。 IP フィルター機能を使用すると、特定の IPv4 アドレスからのトラフィックを拒否または許可するための規則を構成できます。

使用する場合

IP フィルターを使用して、指定された範囲の IP アドレスからのトラフィックのみを受信し、それ以外をすべて拒否します。 たとえば、IoT ハブを Azure Express Route と共に使用して、IoT ハブとオンプレミス インフラストラクチャとの間にプライベート接続を作成する場合が該当します。

既定の設定

IoT ハブの [IP フィルター設定] ページに移動するには、[ネットワーク]>[パブリック アクセス][Selected IP Ranges](選択された IP 範囲) の順に選択します。

Screenshot showing how to set default IP filter settings.

既定では、ポータルの IoT ハブの [IP フィルター] は空白になっています。 この既定の設定は、ハブではすべての IP アドレスからの接続がブロックされることを意味します。 この既定の設定は、0.0.0.0/0 の IP アドレス範囲をブロックする規則と同じです。

IP フィルター規則の追加または編集

IP フィルター規則を追加するには、[IP フィルター規則の追加] を選びます。 コンピューターの IP アドレスを簡単に追加するには、[クライアント IP アドレスを追加する] を選びます。

Screenshot showing how to add an IP filter rule to an IoT hub.

[IP フィルター規則の追加] を選択したら、フィールドに入力します。 クライアント IP アドレスを追加することを選択した場合、これらのフィールドは事前に入力されます。

Screenshot that shows what to do after adding an IP filter rule.

  • IP フィルター規則の名前を指定します。 この名前は、一意であり、長さが最大 128 文字の、大文字と小文字を区別しない英数字の文字列である必要があります。 ASCII 7 ビットの英数字と特殊文字 - : . + % _ # * ? ! ( ) , = @ ; ' のみを使用できます。

  • 1 つの IPv4 アドレスか、または CIDR 表記法で記述した IP アドレス ブロックを指定します。 たとえば、CIDR 表記 192.168.100.0/22 は、192.168.100.0 ~ 192.168.103.255 までの 1,024 個の IPv4 アドレスを表します。

フィールドに入力したら、 [保存] を選択して規則を保存します。 更新が進行中であることを通知するアラートが表示されます。

Screenshot that shows notification about saving an IP filter rule.

IP フィルター規則が最大値の 100 個に達すると、 [追加] オプションは無効になります。

既存の規則を編集するには、変更するデータを選択して変更を加え、 [保存] を選択して編集内容を保存します。

IP フィルター規則の削除

IP フィルター規則を削除するには、その行のごみ箱アイコンを選択し、次に [保存] を選択します。 規則が削除されて、変更が保存されます。

Screenshot showing how to delete an IoT Hub IP filter rule.

イベント ハブと互換性のある組み込みのエンドポイントに IP フィルター規則を適用する

イベント ハブと互換性のある組み込みのエンドポイントに IP フィルター規則を適用するには、[IP フィルターを組み込みのエンドポイントに適用しますか?] の横のボックスをオンにし、[保存] を選びます。

Screenshot showing the toggle for the built-in endpoint.

Note

このオプションは、無料 (F1) の IoT ハブでは使用できません。 組み込みのエンドポイントに IP フィルター規則を適用するには、有料の IoT ハブを使用してください。

このオプションを有効にすると、IP フィルター規則が組み込みのエンドポイントにレプリケートされるため、それにアクセスできるのは、信頼された IP 範囲のみになります。

このオプションを無効にすると、すべての IP アドレスからこの組み込みのエンドポイントにアクセスできます。 このビヘイビアーは、Azure Stream Analytics のような ソースIP アドレスが時間と共に変化するサービスを使用してエンドポイントから読み取る場合には便利です。

フィルター規則の適用方法

IP フィルター規則は、IoT Hub サービス レベルで適用されます。 したがって、IP フィルター規則は、サポートされているプロトコルを使用するデバイスおよびバックエンド アプリからのすべての接続に適用されます。 また、イベント ハブと互換性のある組み込みのエンドポイント (IoT Hub 接続文字列経由ではない) をこれらの規則にバインドするかどうかも選択できます。

明示的に許可されていない IP アドレスからの接続試行では、未認証の 401 状態コードと説明が返されます。 IP 規則に関する記述は応答メッセージに含まれません。 IP アドレスを拒否すると、Azure Stream Analytics、Azure Virtual Machines、Azure portal のデバイス エクスプローラーなど、他の Azure サービスが IoT Hub と対話できなくなる可能性があります。

注意

IP フィルターを有効にした状態で、Azure Stream Analytics (ASA) を使用して IoT ハブからメッセージを読み取る場合は、[組み込みのエンドポイントに IP フィルターを適用する] オプションを無効にしてから、IoT ハブのイベント ハブと互換性のある名前とエンドポイントを使用して、ASA にイベント ハブのストリーム入力を手動で追加します。

順序

IP フィルター規則は "許可" 規則であり、順序付けなしで適用されます。 追加された IP アドレスだけが IoT Hub への接続を許可されます。

たとえば、範囲 192.168.100.0/22 内のアドレスを許可し、それ以外をすべて拒否する場合、必要なのは、アドレス範囲 192.168.100.0/22 を使用してグリッドに 1 つの規則を追加することだけです。

Azure portal

IP フィルター規則は、Azure portal を通じて IoT Hub を使用する場合にも適用されます。 IoT Hub サービスへの API 呼び出しは、ブラウザーを使用して、他の Azure サービスと一貫性のある資格情報で直接行われるためです。 IP フィルターが有効になっているときに Azure portal を使用して IoT Hub にアクセスするには、お使いのコンピューターの IP アドレスを許可リストに追加します。

Azure CLI を使用した IP フィルターの取得および更新

Azure CLI を使用して、IoT Hub の IP フィルターを取得および更新できます。

IoT Hub の現在の IP フィルターを取得するには、以下を実行します。

az resource show -n <iothubName> -g <resourceGroupName> --resource-type Microsoft.Devices/IotHubs

これにより、既存の IP フィルターが properties.networkRuleSets キーの下にリストされている JSON オブジェクトが返されます。

{
...
    "properties": {
        "networkRuleSets": {
            "defaultAction": "Deny",
            "applyToBuiltInEventHubEndpoint": true,
            "ipRules": [{
                    "filterName": "TrustedFactories",
                    "action": "Allow",
                    "ipMask": "1.2.3.4/5"
                },
                {
                    "filterName": "TrustedDevices",
                    "action": "Allow",
                    "ipMask": "1.1.1.1/1"
                }
            ]
        }
    }
}

IoT Hub の新しい IP フィルターを追加するには、以下を実行します。

az resource update -n <iothubName> -g <resourceGroupName> --resource-type Microsoft.Devices/IotHubs --add properties.networkRuleSets.ipRules "{\"action\":\"Allow\",\"filterName\":\"TrustedIP\",\"ipMask\":\"192.168.0.1\"}"

IoT Hub の既存の IP フィルターを削除するには、以下を実行します。

az resource update -n <iothubName> -g <resourceGroupName> --resource-type Microsoft.Devices/IotHubs --add properties.networkRuleSets.ipRules <ipFilterIndexToRemove>

ここで、<ipFilterIndexToRemove> は、IoT Hub の properties.networkRuleSets.ipRules 内の IP フィルターの順序に対応している必要があります。

Azure PowerShell を使用した IP フィルターの取得および更新

注意

Azure を操作するには、Azure Az PowerShell モジュールを使用することをお勧めします。 作業を開始するには、Azure PowerShell のインストールに関する記事を参照してください。 Az PowerShell モジュールに移行する方法については、「AzureRM から Az への Azure PowerShell の移行」を参照してください。

Azure PowerShell を使用して、IoT Hub の IP フィルターを取得および設定できます。

# Get your IoT Hub resource using its name and its resource group name
$iothubResource = Get-AzResource -ResourceGroupName <resourceGroupNmae> -ResourceName <iotHubName> -ExpandProperties

# Access existing IP filter rules
$iothubResource.Properties.networkRuleSets.ipRules |% { Write-host $_ }

# Construct a new IP filter
$filter = @{'filterName'='TrustedIP'; 'action'='Allow'; 'ipMask'='192.168.0.1'}

# Add your new IP filter rule
$iothubResource.Properties.networkRuleSets.ipRules += $filter

# Remove an existing IP filter rule using its name, e.g., 'GoodIP'
$iothubResource.Properties.networkRuleSets.ipRules = @($iothubResource.Properties.networkRuleSets.ipRules | Where 'filterName' -ne 'GoodIP')

# Update your IoT Hub resource with your updated IP filters
$iothubResource | Set-AzResource -Force

REST を使用した IP フィルター規則の更新

Azure リソース プロバイダーの REST エンドポイントを使用することでも、IoT Hub の IP フィルターを取得および変更できます。 createorupdate メソッドproperties.networkRuleSets を参照してください。

次のステップ

IoT Hub の機能を詳しく調べるには、次のリンクを使用してください。