IP フィルターの使用

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

使用する場合

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

既定の設定

お使いの IoT ハブの IP フィルター設定ページに移動するには、[セキュリティの設定]>[ネットワーク]>[パブリック アクセス] を選んでから、[選択された IP 範囲] を選びます。

既定の IP フィルター設定を設定する方法を示すスクリーンショット。

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

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

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

IoT ハブに IP フィルター規則を追加する方法を示すスクリーンショット。

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

IP フィルター規則を追加した後の操作を示すスクリーンショット。

  • 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 アドレスを表します。

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

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

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

IP フィルター規則の削除

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

IP フィルター規則を使用してIoT Hubを示すスクリーンショット。

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

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

組み込みエンドポイントのトグルを示すスクリーンショット。

注意

このオプションは、無料 (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 にイベント ハブのストリーム入力を手動で追加します。

Azure portal

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

順序付け

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

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

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

Azure CLI を使って、IoT ハブの 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 ハブの 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 ハブの IP フィルターを取得および変更することもできます。 createorupdate メソッドproperties.networkRuleSets を参照してください。

次のステップ

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