프라이빗 엔드포인트를 사용하여 표준 논리 앱과 Azure 가상 네트워크 간의 트래픽 보호

적용 대상: Azure Logic Apps(표준)

표준 논리 앱과 Azure 가상 네트워크의 워크플로 사이에서 비공개로 안전하게 통신하려면 인바운드 트래픽용 프라이빗 엔드포인트를 설정하고 아웃바운드 트래픽용 가상 네트워크 통합을 사용하면 됩니다.

프라이빗 엔드포인트는 Azure Private Link가 제공하는, 서비스에 비공개로 안전하게 연결하는 네트워크 인터페이스입니다. 서비스는 Azure Logic Apps, Azure Storage, Azure Cosmos DB, SQL 또는 자체 Private Link 서비스와 같은 Azure 서비스일 수 있습니다. 프라이빗 엔드포인트는 가상 네트워크의 개인 IP 주소를 사용하여 효과적으로 가상 네트워크에 서비스를 제공합니다.

이 문서에서는 인바운드 트래픽용 프라이빗 엔드포인트와 아웃바운드 트래픽용 가상 네트워크 통합을 통해 액세스를 설정하는 방법을 보여 줍니다.

자세한 내용은 다음 설명서를 검토하세요.

필수 조건

위임 없이 서브넷을 포함하는 신규 또는 기존 Azure 가상 네트워크가 있어야 합니다. 서브넷은 가상 네트워크에서 개인 IP 주소를 배포 및 할당하는 데 사용됩니다.

자세한 내용은 다음 설명서를 검토하세요.

프라이빗 엔드포인트를 통해 인바운드 트래픽 설정

워크플로에 대한 인바운드 트래픽을 보호하려면 다음과 같은 상위 수준 단계를 완료합니다.

  1. 요청 트리거 또는 HTTP + 웹후크 트리거와 같은 인바운드 요청을 수신하고 처리할 수 있는 기본 제공 트리거를 통해 워크플로를 시작합니다. 이 트리거는 호출 가능한 엔드포인트를 통해 워크플로를 설정합니다.

  2. 논리 앱 리소스에 대한 프라이빗 엔드포인트를 가상 네트워크에 추가합니다.

  3. 테스트 호출을 통해 엔드포인트에 대한 액세스를 확인합니다. 이 엔드포인트를 설정한 후 논리 앱 워크플로를 호출하려면 가상 네트워크에 연결되어 있어야 합니다.

프라이빗 엔드포인트를 통한 인바운드 트래픽에 대한 고려 사항

  • 가상 네트워크 외부에서 액세스하는 경우 모니터링 보기는 트리거와 작업의 입력 및 출력에 액세스할 수 없습니다.

  • 관리되는 API 웹후크 트리거(푸시 트리거)와 동작은 퍼블릭 클라우드에서 실행되고 프라이빗 네트워크를 호출할 수 없으므로 작동하지 않습니다. 호출을 받으려면 퍼블릭 엔드포인트가 필요합니다. 예를 들어 이러한 트리거에는 Dataverse 트리거 및 Event Grid 트리거가 포함됩니다.

  • Office 365 Outlook 트리거를 사용하는 경우 워크플로는 한 시간 간격으로만 트리거됩니다.

  • Visual Studio Code 또는 Azure CLI로부터의 배포는 가상 네트워크 내부에서만 작동합니다. 배포 센터를 사용하여 논리 앱을 GitHub 리포지토리에 연결할 수 있습니다. 이후 Azure 인프라를 사용하여 코드를 빌드하고 배포할 수 있습니다.

    GitHub 통합이 작동하려면 논리 앱에서 WEBSITE_RUN_FROM_PACKAGE 설정을 제거하거나 값을 0으로 설정합니다.

  • Private Link를 사용하도록 설정해도 App Service 인프라를 통과하는 아웃바운드 트래픽에는 영향을 미치지 않습니다.

프라이빗 엔드포인트를 통한 인바운드 트래픽에 대한 사전 요구 사항

최상위 사전 요구 사항에서의 가상 네트워크 설정과 함께 요청을 수신할 수 있는 기본 제공 트리거로 시작되는 신규 또는 기존 표 논리 앱 워크플로가 있어야 합니다.

예를 들어 요청 트리거는 워크플로를 포함하여 다른 호출자의 인바운드 요청을 수신하고 처리할 수 있는 엔드포인트를 워크플로에 만듭니다. 이 엔드포인트는 워크플로를 호출하고 트리거하는 데 사용할 수 있는 URL을 제공합니다. 이 예제에서는 요청 트리거를 계속 진행합니다.

자세한 내용은 Azure Logic Apps를 사용하여 인바운드 HTTP 요청 수신 및 응답을 검토하세요.

워크플로 만들기

  1. 아직 없는 경우 단일 테넌트 기반 논리 앱과 빈 워크플로를 만듭니다.

  2. 디자이너가 열리면 워크플로에서 첫 번째 단계로 요청 트리거를 추가합니다.

  3. 시나리오 요구 사항에 따라 워크플로에서 실행하려는 다른 작업을 추가합니다.

  4. 완료되면 워크플로를 저장합니다.

자세한 내용은 Azure Logic Apps에서 단일 테넌트 논리 앱 워크플로 만들기를 검토하세요.

엔드포인트 URL 복사

  1. 워크플로 메뉴에서 개요를 선택합니다.

  2. 개요 페이지에서 나중에 사용하도록 워크플로 URL을 복사하고 저장합니다.

    워크플로를 트리거하려면 이 URL을 호출하거나 요청을 보냅니다.

  3. URL을 호출하거나 요청을 보내 URL이 작동하는지 확인합니다. 도구(예: Postman)를 사용하여 요청을 보낼 수 있습니다.

프라이빗 엔드포인트 연결 설정

  1. 논리 앱 메뉴의 설정에서 네트워킹을 선택합니다.

  2. 네트워킹 페이지의 인바운드 트래픽 카드에서 프라이빗 엔드포인트를 선택합니다.

  3. 프라이빗 엔드포인트 연결에서 추가를 선택합니다.

  4. 프라이빗 엔드포인트 추가 창이 열리면 엔드포인트에 대해 요청된 정보를 제공합니다.

    자세한 내용은 프라이빗 엔드포인트 속성을 검토하세요.

  5. Azure가 프라이빗 엔드포인트를 성공적으로 프로비전한 후에는 워크플로 URL 호출을 다시 시도합니다.

    이번에는 예상대로 403 Forbidden 오류가 발생합니다. 프라이빗 엔드포인트가 설정되어 제대로 작동함을 의미합니다.

  6. 연결이 제대로 작동하는지 확인하려면 프라이빗 엔드포인트가 있는 동일한 가상 네트워크에 가상 머신을 만들고 논리 앱 워크플로 호출을 시도합니다.

가상 네트워크 통합을 사용하여 아웃바운드 트래픽 설정

논리 앱에서 아웃바운드 트래픽을 보호하려면 논리 앱을 가상 네트워크와 통합할 수 있습니다. 먼저, 예제 워크플로를 만들어 테스트합니다. 그런 다음, 가상 네트워크 통합을 설정할 수 있습니다.

가상 네트워크 통합을 통한 아웃바운드 트래픽 고려 사항

  • 가상 네트워크 통합 설정은 아웃바운드 트래픽에만 영향을 줍니다. App Service 공유 엔드포인트를 계속 사용하는 인바운드 트래픽을 보호하려면 프라이빗 엔드포인트를 통해 인바운드 트래픽 설정을 검토하세요.

  • 할당 후에는 서브넷 크기를 변경할 수 없으므로, 앱이 도달할 수 있는 규모를 수용할 만큼 충분히 큰 서브넷을 사용합니다. 서브넷 용량 문제를 방지하려면 주소가 64개인 /26 서브넷을 사용합니다. Azure Portal에서 가상 네트워크 통합용 서브넷을 만드는 경우 최소 서브넷 크기로 /27을 사용해야 합니다.

  • Azure Logic Apps 런타임이 작동하려면 백 엔드 스토리지에 중단 없이 연결해야 합니다. 백 엔드 스토리지가 프라이빗 엔드포인트를 통해 가상 네트워크에 노출될 경우 다음 포트가 열려 있는지 확인합니다.

    원본 포트 대상 포트 원본 대상 프로토콜 목적
    * 443 표준 논리 앱과 통합된 서브넷 스토리지 계정 TCP 스토리지 계정
    * 445 표준 논리 앱과 통합된 서브넷 스토리지 계정 TCP SMB(서버 메시지 블록) 파일 공유
  • Azure 호스팅 관리 커넥터가 작동하려면 관리 API 서비스에 중단 없이 연결해야 합니다. 가상 네트워크 통합을 사용할 때는 방화벽 또는 네트워크 보안 정책으로 이러한 연결이 차단되지 않도록 해야 합니다. 가상 네트워크에서 NSG(네트워크 보안 그룹), UDR(사용자 정의 라우팅 테이블) 또는 방화벽을 사용하는 경우, 가상 네트워크가 해당 지역의 모든 관리형 커넥터 IP 주소에 대한 아웃바운드 연결을 허용하는지 확인합니다. 그렇지 않으면 Azure 관리형 커넥터가 작동하지 않습니다.

자세한 내용은 다음 설명서를 검토하세요.

워크플로 만들기 및 테스트

  1. 아직 없는 경우 Azure Portal에서 단일 테넌트 기반 논리 앱과 빈 워크플로를 만듭니다.

  2. 디자이너가 열리면 워크플로에서 첫 번째 단계로 요청 트리거를 추가합니다.

  3. 인터넷을 통해 사용할 수 없고 10.0.1.3 등의 개인 IP 주소로 실행되는 내부 서비스를 호출하는 HTTP 동작을 추가합니다.

  4. 완료되면 워크플로를 저장합니다.

  5. 디자이너에서 워크플로를 수동으로 실행합니다.

    워크플로가 클라우드에서 실행되고 내부 서비스에 액세스할 수 없기 때문에 의도적으로 예상되는 HTTP 동작이 실패합니다.

가상 네트워크 통합 설정

  1. Azure Portal의 논리 앱 리소스 메뉴에 있는 설정에서 네트워킹을 선택합니다.

  2. 네트워킹 창의 아웃바운드 트래픽 카드에서 VNet 통합을 선택합니다.

  3. VNet 통합 창에서 Vnet 추가를 선택합니다.

  4. VNet 통합 추가 창에서 내부 서비스에 연결하는 구독과 가상 네트워크를 선택합니다.

    가상 네트워크 통합을 추가하면 VNet 통합 창에서 모두 라우팅 설정이 기본적으로 사용하도록 설정됩니다. 이 설정은 가상 네트워크를 통해 모든 아웃바운드 트래픽을 라우팅합니다. 이 설정이 사용하도록 설정되면 WEBSITE_VNET_ROUTE_ALL 앱 설정이 무시됩니다.

  5. 가상 네트워크에서 사용자 고유의 DNS(도메인 이름 서버)를 사용하는 경우, 논리 앱 리소스의 WEBSITE_DNS_SERVER 앱 설정을 DNS의 IP 주소로 설정합니다. 보조 DNS가 있는 경우 WEBSITE_DNS_ALT_SERVER라는 다른 앱 설정을 추가하고 DNS의 IP에도 값을 설정합니다.

  6. Azure에서 가상 네트워크 통합을 성공적으로 프로비전하면 워크플로를 다시 실행해 봅니다.

    이제 HTTP 동작이 성공적으로 실행됩니다.

다음 단계