다음을 통해 공유


Azure IoT DPS IP 연결 필터 사용

보안은 모든 IoT 솔루션의 중요한 측면입니다. 보안 구성의 일부로 디바이스가 연결할 수 있는 IP 주소를 명시적으로 지정해야 하는 경우가 있습니다. Azure IoT Hub DPS(Device Provisioning Service)에 대한 IP 필터 기능을 사용하면 특정 IPv4 주소의 트래픽을 거부하거나 수락하는 규칙을 구성할 수 있습니다.

사용 시기

특정 IP 주소에서 DPS 엔드포인트에 대한 연결을 차단하는 데 유용한 두 가지 특정 사용 사례가 있습니다.

  • DPS는 지정된 IP 주소 범위에서만 트래픽을 수신하고 다른 모든 것은 거부해야 합니다. 예를 들어 Azure Express Route 에서 DPS를 사용하여 DPS 인스턴스와 디바이스 간에 프라이빗 연결을 만듭니다.

  • DPS 관리자가 의심스러운 것으로 식별되는 IP 주소의 트래픽을 거부해야 합니다.

IP 필터 규칙 제한 사항

IP 필터링을 사용하는 경우 다음 제한 사항에 유의하십시오.

  • Azure Portal을 사용하여 등록을 관리하지 못할 수 있습니다. 이 시나리오가 발생하는 경우 하나 이상의 컴퓨터의 IP 주소를 ipFilterRules에 추가하고, Azure CLI, PowerShell 또는 서비스 API를 사용하여 해당 컴퓨터에서 DPS 인스턴스의 등록을 관리할 수 있습니다.

    이 시나리오는 IP 필터링을 사용하여 선택한 IP 주소에만 액세스를 허용하려는 경우에 발생할 가능성이 가장 높습니다. 이 경우 특정 주소 또는 주소 범위를 사용하도록 규칙을 구성하고 다른 모든 주소(0.0.0.0/0)를 차단하는 기본 규칙을 구성합니다. 이 기본 규칙은 Azure Portal이 DPS 인스턴스에서 등록 관리와 같은 작업을 수행하지 못하도록 차단합니다. 자세한 내용은 이 문서의 IP 필터 규칙 평가를 참조하세요.

필터 규칙이 적용되는 방식

IP 필터 규칙은 DPS 인스턴스 수준에서 적용됩니다. 따라서 IP 필터 규칙은 지원되는 프로토콜을 사용하는 장치 및 백 엔드 앱의 모든 연결에 적용됩니다.

DPS 인스턴스의 거부 IP 규칙과 일치하는 IP 주소의 연결 시도는 무단 401 상태 코드 및 설명을 받습니다. 응답 메시지는 IP 규칙을 언급하지 않습니다.

중요합니다

IP 주소를 거부하면 다른 Azure 서비스가 DPS 인스턴스와 상호 작용하지 못할 수 있습니다.

기본 설정

기본적으로 IP 필터링은 사용하지 않도록 설정되고 공용 네트워크 액세스모든 네트워크로 설정됩니다. 이 기본 설정은 DPS가 모든 IP 주소의 연결을 허용하거나 0.0.0.0/0 IP 주소 범위를 허용하는 규칙을 준수함을 의미합니다.

Azure Portal의 IoT DPS 기본 IP 필터 설정을 보여 주는 스크린샷

IP 필터 규칙 추가

IP 필터 규칙을 추가하려면 다음을 수행합니다.

  1. Azure Portal로 이동합니다.

  2. 포털 메뉴 또는 포털 페이지에서 모든 리소스를 선택합니다.

  3. Device Provisioning Service 인스턴스를 선택합니다.

  4. 서비스 메뉴의 설정에서 네트워킹을 선택합니다.

  5. 작업 창의 공용 네트워크 액세스에서 선택한 IP 범위를 선택합니다.

  6. + IP 필터 규칙 추가를 선택합니다.

    Azure Portal의 IoT DPS 인스턴스에 IP 필터 규칙을 추가하는 방법을 보여 주는 스크린샷

  7. 다음 필드를 입력합니다.

    분야 설명
    이름 대/소문자를 구분하지 않는 고유한 영숫자 문자열로, 최대 128자 길이의 영숫자 문자열입니다. ASCII 7비트 영숫자 더하기 {'-', ':', '/', '\', '.', '+', '%', '_', '#', '*', '?', '!', '(', ')', ',', '=', '@', ';', '''} 만 허용됩니다.
    주소 범위 CIDR(클래스리스 Inter-Domain 라우팅) 표기법의 단일 IPv4 주소 또는 IP 주소 블록입니다. 예를 들어 CIDR 표기법에서 192.168.100.0/22는 192.168.100.0에서 192.168.103.255까지의 1024 IPv4 주소를 나타냅니다.
    조치 허용 또는 차단을 선택합니다.

    Azure Portal에서 IoT DPS 인스턴스에 대한 IP 필터 규칙을 정의하고 저장하는 방법을 보여 주는 스크린샷

  8. 저장을 선택합니다. 업데이트가 진행 중임을 알리는 경고가 표시되어야 합니다.

    Azure Portal에서 IP 필터 규칙을 저장하는 동안 표시되는 알림을 보여 주는 스크린샷.

    비고

    + IP 필터 규칙 추가 는 최대 100개의 IP 필터 규칙에 도달하면 비활성화됩니다.

IP 필터 규칙 편집

기존 규칙을 편집하려면:

  1. 변경할 IP 필터 규칙 데이터를 선택합니다.

    Azure Portal에서 IoT DPS 인스턴스에 대한 IP 필터 규칙을 편집하는 방법을 보여 주는 스크린샷

  2. 변경합니다.

  3. 저장을 선택합니다.

IP 필터 규칙 삭제

IP 필터 규칙을 삭제하려면:

  1. 삭제하려는 IP 규칙의 행에서 삭제 아이콘을 선택합니다.

    Azure Portal에서 IoT DPS 인스턴스에 대한 IP 필터 규칙을 삭제하는 방법을 보여 주는 스크린샷

  2. 저장을 선택합니다.

IP 필터 규칙 평가

IP 필터 규칙은 순서대로 적용됩니다. IP 주소와 일치하는 첫 번째 규칙에 따라 수락 또는 거부 작업이 결정됩니다.

예를 들어 192.168.100.0/22 범위의 주소를 수락하고 다른 모든 주소를 거부하려는 경우 그리드의 첫 번째 규칙은 주소 범위 192.168.100.0/22를 수락해야 합니다. 다음 규칙은 0.0.0.0/0 범위를 사용하여 모든 주소를 거부해야 합니다.

IP 필터 규칙의 순서를 변경하려면 다음을 수행합니다.

  1. 이동하려는 규칙을 선택합니다.

  2. 규칙을 원하는 위치로 끌어다 놓습니다.

  3. 저장을 선택합니다.

Azure Resource Manager 템플릿을 사용하여 IP 필터 규칙 업데이트

DPS IP 필터를 업데이트하는 방법에는 두 가지가 있습니다.

  1. IoT Hub 리소스 REST API 메서드를 호출합니다. REST를 사용하여 IP 필터 규칙을 업데이트하는 방법을 알아보려면 IpFilterRule정의 섹션을 참조 하세요.

  2. Azure Resource Manager 템플릿을 사용합니다. Resource Manager 템플릿을 사용하는 방법에 대한 자세한 내용은 ARM 템플릿이란?을 참조하세요. 다음 예제에서는 Azure Resource Manager 템플릿을 사용하여 DPS IP 필터 규칙을 만들고, 편집하고, 삭제하는 방법을 보여 줍니다.

    비고

    Azure CLI 및 Azure PowerShell은 현재 DPS IP 필터 규칙 업데이트를 지원하지 않습니다.

IP 필터 규칙 추가

다음 템플릿 예제에서는 모든 트래픽을 허용하는 "AllowAll"이라는 새 IP 필터 규칙을 만듭니다.

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

요구 사항에 따라 템플릿의 IP 필터 규칙 특성을 업데이트합니다.

특성 설명
필터 이름 IP 필터 규칙의 이름을 제공합니다. 이 값은 대/소문자를 구분하지 않는 고유한 영숫자 문자열이어야 하며 최대 128자 길이여야 합니다. ASCII 7비트 영숫자 더하기 {'-', ':', '/', '\', '.', '+', '%', '_', '#', '*', '?', '!', '(', ')', ',', '=', '@', ';', '''} 만 허용됩니다.
조치 허용되는 값은 IP 필터 규칙에 대한 작업으로 Accept 또는 Reject 입니다.
ip마스크 단일 IPv4 주소 또는 IP 주소 블록을 CIDR 표기법으로 제공합니다. 예를 들어 CIDR 표기법에서 192.168.100.0/22는 192.168.100.0에서 192.168.103.255까지의 1024 IPv4 주소를 나타냅니다.

IP 필터 규칙 업데이트

다음 템플릿 예제에서는 앞에서 설명한 "AllowAll"이라는 IP 필터 규칙을 업데이트하여 모든 트래픽을 거부합니다.

{ 
    "$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 필터 규칙 삭제

다음 템플릿 예제에서는 DPS 인스턴스에 대한 모든 IP 필터 규칙을 삭제합니다.

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

다음 단계

DPS 관리에 대한 자세한 내용은 다음을 참조하십시오.