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

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

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

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

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

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

필수 조건

  • 솔루션을 테스트하기 위해 HTTP 요청을 보낼 수 있는 도구를 설치하거나 사용합니다. 예를 들면 다음과 같습니다.

    주의

    자격 증명, 비밀, 액세스 토큰, API 키 및 기타 유사한 정보와 같은 중요한 데이터가 있는 시나리오의 경우 필요한 보안 기능으로 데이터를 보호하고, 오프라인 또는 로컬로 작동하며, 데이터를 클라우드에 동기화하지 않고, 온라인 계정에 로그인할 필요가 없는 도구를 사용해야 합니다. 이렇게 하면 중요한 데이터가 대중에게 노출되는 위험을 줄일 수 있습니다.

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

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

  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을 복사하고 저장합니다.

  3. URL을 테스트하고 워크플로를 트리거하려면 HTTP 요청 도구와 해당 지침을 사용하여 URL에 HTTP 요청을 보냅니다.

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

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

  2. 네트워킹 페이지의 인바운드 트래픽 구성 섹션에서 프라이빗 엔드포인트 옆에 있는 링크를 선택합니다.

  3. 프라이빗 엔드포인트 연결 페이지에서 추가>Express 또는 고급을 선택합니다.

    고급 옵션에 대한 자세한 내용은 프라이빗 엔드포인트 만들기를 참조하세요.

  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. 네트워킹 페이지의 아웃바운드 트래픽 구성 섹션에서 가상 네트워크 통합 옆에 있는 링크를 선택합니다.

  3. Virtual Network 통합 페이지에서 가상 네트워크 통합 추가를 선택합니다.

  4. 가상 네트워크 통합 추가 창에서 구독, 내부 서비스에 연결하는 가상 네트워크, 논리 앱을 추가할 서브넷을 선택합니다. 완료되면 연결을 선택합니다.

    Virtual Network 통합 페이지에는 기본적으로 모든 아웃바운드 트래픽을 가상 네트워크를 통해 라우팅하는 아웃바운드 인터넷 트래픽 설정이 선택되어 있습니다. 이 시나리오에서는 WEBSITE_VNET_ROUTE_ALL이라는 앱 설정이 무시됩니다.

    이 앱 설정을 찾으려면 논리 앱 리소스 메뉴의 설정에서 환경 변수를 선택합니다.

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

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

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

다음 단계