使用 IP 篩選器
安全性是任何以 Azure IoT 中樞為基礎之 IoT 解決方案的重要一環。 有時候您需要在執行安全性設定的程序中明確地指定可連線的裝置 IP 位址。 「IP 篩選器」功能可讓您設定規則,以拒絕或接受來自特定 IPv4 位址的流量。
使用時機
使用 DPS 篩選,僅接收來自指定 IP 位址範圍的流量,並拒絕其他所有流量。 例如,您搭配 Azure Express Route 使用 IoT 中樞來建立 IoT 中樞與內部部署基礎結構之間的私人連線。
預設設定
若要移至 IoT 中樞的 [IP 篩選器設定] 頁面,請選取 [安全性設定]>[網路]>[公用存取],然後選擇 [選取的 IP 範圍]:
根據預設,IoT 中樞之入口網站中的 IP 篩選器方格是空的。 這個預設設定表示您的中樞會封鎖來自所有 IP 位址的連線。 這個預設設定等同於封鎖 0.0.0.0/0
IP 位址範圍的規則。
新增或編輯 IP 篩選器規則
若要新增 IP 篩選器規則,選取 [新增 IP 篩選器規則]。 若要快速新增電腦的 IP 位址,選取 [新增您的用戶端 IP 位址]。
選取 [新增 IP 篩選器規則] 之後,請填寫欄位。 如果您已選取新增用戶端 IP 位址,則會預先填入這些欄位。
提供 IP 篩選器規則的名稱。 此名稱必須是唯一的、不區分大小寫的英數字元字串,長度上限為 128 個字元。 所能接受的字元只有 ASCII 7 位元英數字元以及下列特殊字元:
- : . + % _ # * ? ! ( ) , = @ ; '
。提供單一 IPv4 位址或以 CIDR 標記法表示的 IP 位址區塊。 例如,在 CIDR 表示法中,192.168.100.0/22 表示從 192.168.100.0 到 192.168.103.255 的 1024 個 IPv4 位址。
填寫欄位之後,請選取 [儲存] 以儲存規則。 您會看到通知您正在進行更新的警示。
當您達到 100 個 IP 篩選器規則的上限後,[新增] 選項便會停用。
若要編輯現有的規則,請選取您要變更的資料,進行變更,然後選取 [儲存] 以儲存您的編輯。
刪除 IP 篩選器規則
若要刪除 IP 篩選器規則,請選取該資料列上的垃圾桶圖示,然後選取 [儲存]。 此規則會被移除,並儲存變更。
將 IP 篩選器規則套用至內建事件中樞相容端點
若要將 IP 篩選器規則套用至內建事件中樞相容端點,勾選 [將 IP 篩選器套用至內建端點?] 旁的方塊,然後選取 [儲存]。
注意
此選項無法用於免費 (F1) IoT 中樞。 若要將 IP 篩選規則套用至內建端點,請使用付費 IoT 中樞。
啟用此選項後,您的 IP 篩選規則就會複寫至內建端點,因此只有受信任的 IP 範圍可加以存取。
如果停用此選項,所有 IP 位址都可以存取內建端點。 如果您想要使用具有來源 IP 位址 (可能會隨著時間變更) 的服務從端點讀取,例如 Azure 串流分析,這個行為會很有用。
篩選器規則的套用方式
IP 篩選器規則會套用在 IoT 中樞服務層級。 因此,IP 篩選器規則會套用至來自裝置和後端應用程式的所有連接 (使用任何受支援的通訊協定)。 此外,您也可以選擇是否要將內建事件中樞相容端點 (而非透過 IoT 中樞連接字串) 繫結至這些規則。
嘗試建立連線的 IP 位址若未明確獲得允許,將會收到未授權 401 狀態碼和描述。 回應訊息不會提及 IP 規則。 拒絕 IP 位址可防止其他 Azure 服務 (例如 Azure 串流分析、Azure 虛擬機器,或 Azure 入口網站中的裝置總管) 與 IoT 中樞互動。
注意
如果您想要使用 Azure 串流分析 (ASA) 從啟用 IP 篩選的 IoT 中樞讀取訊息,請停用 [將 IP 篩選套用至內建端點] 選項,然後在 ASA 中使用 IoT 中樞與事件中樞相容的名稱和端點來手動新增事件中樞串流輸入。
Azure 入口網站
透過 Azure 入口網站使用 IoT 中樞時,也會套用 IP 篩選規則。 這是因為對 IoT 中樞服務的 API 呼叫會直接使用您的瀏覽器與認證來進行,這與其他 Azure 服務一致。 若要在 IP 篩選啟用時使用 Azure 入口網站存取 IoT 中樞,請將您電腦的 IP 位址新增至允許清單。
排序
IP 篩選規則是允許規則,不需要排序即可套用。 只有您新增的 IP 位址才能連線至 IoT 中樞。
例如,如果您想要接受 192.168.100.0/22
範圍中的位址,並拒絕其他所有位址,您只需使用位址範圍 192.168.100.0/22
在格線中新增一個規則即可。
使用 Azure CLI 擷取和更新 IP 篩選條件
您可以透過 Azure CLI 擷取和更新 IoT 中樞的 IP 篩選器。
若要擷取 IoT 中樞目前的 IP 篩選條件,請執行:
az resource show -n <iothubName> -g <resourceGroupName> --resource-type Microsoft.Devices/IotHubs
這會傳回 JSON 物件,其中現有的 IP 篩選器會列在 properties.networkRuleSets
索引鍵下:
{
...
"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 中樞新增 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 中樞中的現有 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 Az PowerShell 模組來與 Azure 互動。 若要開始使用,請參閱安裝 Azure PowerShell (部分機器翻譯)。 若要了解如何移轉至 Az PowerShell 模組,請參閱將 Azure PowerShell 從 AzureRM 移轉至 Az。
您可以透過 Azure PowerShell 擷取和設定 IoT 中樞的 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 中樞的功能,請參閱︰