적용 대상: 개발자 | 기본 | 표준 | 표준 v2 | 프리미엄 | 프리미엄 v2
개인 네트워크의 클라이언트에서 Azure Private Link를 통해 인스턴스에 안전하게 액세스할 수 있도록 API Management 인스턴스에 대한 인바운드 프라이빗 엔드포인트를 구성할 수 있습니다.
프라이빗 엔드포인트는 호스트되는 Azure 가상 네트워크의 IP 주소를 사용합니다.
프라이빗 네트워크의 클라이언트와 API Management 간의 네트워크 트래픽은 가상 네트워크와 Microsoft 백본 네트워크의 Private Link를 통과하여 공용 인터넷의 노출을 제거합니다.
API Management 호스트 이름을 엔드포인트의 개인 IP 주소에 매핑하도록 사용자 지정 DNS 설정 또는 Azure DNS 프라이빗 영역을 구성합니다.
프라이빗 엔드포인트 및 Private Link를 사용하면 다음을 수행할 수 있습니다.
API Management 인스턴스에 대한 여러 Private Link 연결을 만듭니다.
프라이빗 엔드포인트를 사용하여 보안 연결에서 인바운드 트래픽을 보냅니다.
정책을 사용하여 프라이빗 엔드포인트에서 제공하는 트래픽을 구분합니다.
들어오는 트래픽을 프라이빗 엔드포인트로만 제한하여 데이터 반출을 방지합니다.
아웃바운드 가상 네트워크 통합과 표준 v2 인스턴스에 인바운드 프라이빗 엔드포인트를 결합하여 API Management 클라이언트 및 백 엔드 서비스의 엔드투엔드 네트워크 격리를 제공합니다.
중요한
- API Management 인스턴스에 대한 인바운드 트래픽에 한해 프라이빗 엔드포인트 연결을 구성할 수 있습니다.
- 프라이빗 엔드포인트를 구성한 후에 만 API Management 인스턴스에 대한 공용 네트워크 액세스를 사용하지 않도록 설정할 수 있습니다.
제한 사항
- API Management 인스턴스의 게이트웨이 엔드포인트 만 인바운드 Private Link 연결을 지원합니다.
- 각 API Management 인스턴스는 최대 100개의 Private Link 연결을 지원합니다.
- 자체 호스팅 게이트웨이 또는 작업 영역 게이트웨이에서는 연결이 지원되지 않습니다.
- 클래식 API Management 계층에서 프라이빗 엔드포인트는 내부 또는 외부 가상 네트워크에 삽입된 인스턴스에서 지원되지 않습니다.
일반적인 시나리오
인바운드 프라이빗 엔드포인트를 사용하여 API Management 게이트웨이에 직접 프라이빗 전용 액세스를 사용하도록 설정하여 중요한 데이터 또는 백 엔드의 노출을 제한합니다.
지원되는 구성은 다음과 같습니다.
방화벽을 통해 클라이언트 요청을 전달하고 요청을 API Management 게이트웨이로 비공개로 라우팅하는 규칙을 구성합니다.
외부 트래픽을 수신하도록 Azure Front Door(또는 Azure Application Gateway를 사용하는 Azure Front Door)를 구성한 다음, 트래픽을 API Management 게이트웨이로 비공개로 라우팅합니다. 예를 들어 Private Link를 사용하여 Azure API Management에 Azure Front Door Premium 연결을 참조하세요.
참고
현재 Azure Front Door에서 API Management Premium v2 인스턴스로 트래픽을 비공개로 라우팅하는 것은 지원되지 않습니다.
필수 조건
- 기존 API Management 인스턴스.
아직 하나를 만들지 않았다면 만드세요.
- 클래식 개발자 또는 프리미엄 계층에서 인스턴스를 사용하는 경우 인스턴스를 외부 또는 내부 가상 네트워크에 배포(삽입)하지 마세요.
- 구독 및 지역에서 API Management의 프라이빗 엔드포인트 유형 가용성.
- 프라이빗 엔드포인트를 호스트할 서브넷이 포함된 가상 네트워크입니다. 서브넷에는 다른 Azure 리소스가 포함될 수 있지만 다른 서비스에 위임할 수는 없습니다.
- (권장) 프라이빗 엔드포인트를 테스트하기 위한 가상 네트워크의 동일하거나 다른 서브넷에 있는 가상 머신
Azure Cloud Shell에서 Bash 환경을 사용합니다. 자세한 내용은 Azure Cloud Shell 시작을 참조하세요.
CLI 참조 명령을 로컬에서 실행하려면 Azure CLI를 설치합니다. Windows 또는 macOS에서 실행 중인 경우 Docker 컨테이너에서 Azure CLI를 실행하는 것이 좋습니다. 자세한 내용은 Docker 컨테이너에서 Azure CLI를 실행하는 방법을 참조하세요.
로컬 설치를 사용하는 경우 az login 명령을 사용하여 Azure CLI에 로그인합니다. 인증 프로세스를 완료하려면 터미널에 표시되는 단계를 수행합니다. 다른 로그인 옵션은 Azure CLI를 사용하여 Azure에 인증을 참조하세요.
메시지가 표시되면 처음 사용할 때 Azure CLI 확장을 설치합니다. 확장에 대한 자세한 내용은 Azure CLI로 확장 사용 및 관리를 참조하세요.
az version을 실행하여 설치된 버전과 종속 라이브러리를 찾습니다. 최신 버전으로 업그레이드하려면 az upgrade를 실행합니다.
프라이빗 엔드포인트 승인 방법
일반적으로 네트워크 관리자는 프라이빗 엔드포인트를 만듭니다. Azure RBAC(역할 기반 액세스 제어) 권한에 따라 만드는 프라이빗 엔드포인트는 트래픽을 API Management 인스턴스에 보내도록 자동으로 승인되거나 리소스 소유자가 수동으로 연결을 승인해야 합니다.
| 승인 방법 | 최소 RBAC 권한 |
|---|---|
| 자동 | Microsoft.Network/virtualNetworks/**Microsoft.Network/virtualNetworks/subnets/**Microsoft.Network/privateEndpoints/**Microsoft.Network/networkinterfaces/**Microsoft.Network/locations/availablePrivateEndpointTypes/readMicrosoft.ApiManagement/service/**Microsoft.ApiManagement/service/privateEndpointConnections/** |
| 수동 | Microsoft.Network/virtualNetworks/**Microsoft.Network/virtualNetworks/subnets/**Microsoft.Network/privateEndpoints/**Microsoft.Network/networkinterfaces/**Microsoft.Network/locations/availablePrivateEndpointTypes/read |
프라이빗 엔드포인트 구성 단계
다음 단계에 따라 API Management 인스턴스에 대한 프라이빗 엔드포인트를 만들고 구성합니다.
프라이빗 엔드포인트 만들기 - 포털
클래식 계층에서는 Azure Portal에서 API Management 인스턴스를 만들 때 프라이빗 엔드포인트를 만들거나 기존 인스턴스에 프라이빗 엔드포인트를 추가할 수 있습니다.
API Management 인스턴스를 만들 때 프라이빗 엔드포인트 만들기
API Management 서비스 만들기 마법사에서 네트워킹 탭을 선택합니다.
연결 유형에서 프라이빗 엔드포인트를 선택합니다.
을 선택하고을 추가합니다.
프라이빗 엔드포인트 만들기 페이지에서 다음 정보를 입력하거나 선택합니다.
설정 값 구독 구독을 선택합니다. 리소스 그룹 기존 리소스 그룹을 선택하거나 새 리소스 그룹을 만듭니다. 가상 네트워크와 동일한 지역에 있어야 합니다. 위치 프라이빗 엔드포인트에 대한 위치를 선택합니다. 가상 네트워크와 동일한 지역에 있어야 합니다. API Management 인스턴스가 호스트되는 지역과 다를 수 있습니다. 이름 myPrivateEndpoint와 같은 엔드포인트 이름을 입력합니다. 하위 리소스 게이트웨이를 선택합니다. 네트워킹에서 프라이빗 엔드포인트에 대한 가상 네트워크 및 서브넷을 입력하거나 선택합니다.
프라이빗 DNS 통합에서 프라이빗 DNS 영역과 통합을 선택합니다. 기본 DNS 영역은 privatelink.azure-api.net 표시됩니다.
확인을 선택합니다.
API Management 인스턴스를 계속 만듭니다.
기존 API Management 인스턴스에 대한 프라이빗 엔드포인트 만들기
Azure Portal에서 API Management 서비스로 이동합니다.
왼쪽 메뉴의 배포 + 인프라 아래에서 네트워크를 선택합니다.
인바운드 프라이빗 엔드포인트 연결>+ 엔드포인트 추가를 차례로 선택합니다.
기본 탭에서 다음 정보를 입력하거나 선택합니다.
설정 값 프로젝트 세부 정보 구독 구독을 선택합니다. 리소스 그룹 기존 리소스 그룹을 선택하거나 새 리소스 그룹을 만듭니다. 가상 네트워크와 동일한 지역에 있어야 합니다. 인스턴스 세부 정보 이름 myPrivateEndpoint와 같은 엔드포인트 이름을 입력합니다. 네트워크 인터페이스 이름 네트워크 인터페이스의 이름(예: myInterface)을 입력합니다 지역 프라이빗 엔드포인트에 대한 위치를 선택합니다. 가상 네트워크와 동일한 지역에 있어야 합니다. API Management 인스턴스가 호스트되는 지역과 다를 수 있습니다. 화면 아래쪽에서 다음: 리소스 단추를 선택합니다. API Management 인스턴스에 대한 다음 정보가 이미 채워져 있습니다.
- 구독
- 리소스 종류
- 리소스 이름
리소스의 대상 하위 리소스에서 게이트웨이를 선택합니다.
중요한
게이트웨이 하위 리소스만 API Management에 대해 지원됩니다. 다른 하위 리소스는 지원되지 않습니다.
화면 하단에서 다음: Virtual Network 단추를 선택합니다.
Virtual Network에서 다음 정보를 입력하거나 선택합니다.
설정 값 가상 네트워크 가상 네트워크를 선택합니다. 서브넷 서브넷을 선택합니다. 개인 IP 구성 대부분의 경우 동적으로 IP 주소 할당을 선택합니다. 애플리케이션 보안 그룹 필요에 따라 애플리케이션 보안 그룹을 선택합니다. 화면 아래쪽에서 다음: DNS 단추를 선택합니다.
프라이빗 DNS 통합에서 다음 정보를 입력하거나 선택합니다.
설정 값 프라이빗 DNS 영역과 통합 예(기본값)를 그대로 둡니다. 구독 구독을 선택합니다. 리소스 그룹 리소스 그룹을 선택합니다. 프라이빗 DNS 영역 기본값은 (new) privatelink.azure-api.net로 표시됩니다. 다음: 화면 아래쪽의 탭을 선택합니다. 원하는 경우 태그를 입력하여 Azure 리소스를 구성합니다.
다음: 검토 + 만들기를 화면 맨 아래에서 선택합니다. 만들기를 선택합니다.
인스턴스에 대한 프라이빗 엔드포인트 연결 나열
프라이빗 엔드포인트를 만들고 서비스를 업데이트하면 포털의 API Management 인스턴스 인바운드 프라이빗 엔드포인트 연결 페이지에 있는 목록에 프라이빗 엔드포인트가 표시됩니다.
엔드포인트의 연결 상태를 확인합니다.
- 승인됨은 API Management 리소스에서 연결을 자동으로 승인했음을 나타냅니다.
- 보류 중은 리소스 소유자가 연결을 수동으로 승인해야 함을 나타냅니다.
보류 중인 프라이빗 엔드포인트 연결 승인
프라이빗 엔드포인트 연결이 보류 중인 상태인 경우 API Management 인스턴스의 소유자는 이를 사용하려면 먼저 수동으로 승인해야 합니다.
충분한 권한이 있는 경우 포털에 있는 API Management 인스턴스의 프라이빗 엔드포인트 연결 페이지에서 프라이빗 엔드포인트 연결을 승인합니다. 연결의 상황에 맞는(...) 메뉴에서 승인을 선택합니다.
API Management 프라이빗 엔드포인트 연결 - REST API를 만들거나 업데이트 하여 보류 중인 프라이빗 엔드포인트 연결을 승인할 수도 있습니다.
필요에 따라 공용 네트워크 액세스 사용 안 함
API Management 인스턴스로 들어오는 트래픽을 프라이빗 엔드포인트로만 제한하려면 공용 네트워크 액세스 속성을 사용하지 않도록 설정합니다.
중요한
- 프라이빗 엔드포인트를 구성 한 후 공용 네트워크 액세스를 사용하지 않도록 설정할 수 있습니다.
- 배포 프로세스가 아닌 기존 API Management 인스턴스에서 공용 네트워크 액세스를 사용하지 않도록 설정할 수 있습니다.
참고
다른 네트워킹 구성이 아닌 프라이빗 엔드포인트로 구성된 API Management 인스턴스에서 공용 네트워크 액세스를 사용하지 않도록 설정할 수 있습니다.
Azure CLI를 사용하여 클래식 계층에서 공용 네트워크 액세스 속성을 사용하지 않도록 설정하려면 다음 az apim update 명령을 실행하여 API Management 인스턴스 및 리소스 그룹의 이름을 대체합니다.
az apim update --name my-apim-service --resource-group my-resource-group --public-network-access false
API Management 서비스 - 업데이트 REST API를 사용하여 publicNetworkAccess 속성을 Disabled(으)로 설정하여 공용 네트워크 액세스를 사용하지 않도록 설정할 수도 있습니다.
프라이빗 엔드포인트 연결 유효성 검사
프라이빗 엔드포인트를 만든 후 포털에서 해당 DNS 설정을 확인합니다.
Azure Portal에서 API Management 서비스로 이동합니다.
왼쪽 메뉴의 배포 + 인프라 아래에서 Network>인바운드 프라이빗 엔드포인트 연결을 선택하고 만든 프라이빗 엔드포인트를 선택합니다.
왼쪽 탐색의 설정 아래에서 DNS 구성을 선택합니다.
프라이빗 엔드포인트의 DNS 레코드 및 IP 주소를 검토합니다. IP 주소는 프라이빗 엔드포인트를 구성한 서브넷의 주소 공간에 있는 개인 주소입니다.
가상 네트워크에서 테스트
가상 네트워크에서 설정한 가상 머신에 연결합니다.
nslookup 또는 dig와 같은 유틸리티를 실행하여 Private Link를 통해 기본 게이트웨이 엔드포인트의 IP 주소를 조회합니다. 예시:
nslookup my-apim-service.privatelink.azure-api.net
출력에 프라이빗 엔드포인트와 연결된 개인 IP 주소가 포함됩니다.
기본 게이트웨이 엔드포인트에 대한 가상 네트워크 내에서 시작된 API 호출이 성공해야 합니다.
인터넷에서 테스트
프라이빗 엔드포인트 경로 외부에서 API Management 인스턴스의 기본 게이트웨이 엔드포인트를 호출하려고 시도합니다. 공용 액세스를 사용하지 않도록 설정하면 출력에 상태 코드가 403인 오류와 다음과 유사한 메시지가 포함됩니다.
Request originated from client public IP address 192.0.2.12, public network access on this 'Microsoft.ApiManagement/service/my-apim-service' is disabled.
To connect to 'Microsoft.ApiManagement/service/my-apim-service', please use the Private Endpoint from inside your virtual network.
v2 계층의 사용자 지정 도메인 이름 제한 사항
현재 표준 v2 및 프리미엄 v2 계층에서 API Management는 게이트웨이 엔드포인트에 대한 트래픽을 허용하기 위해 공개적으로 확인할 수 있는 DNS 이름이 필요합니다. 게이트웨이 엔드포인트에 대한 사용자 지정 도메인 이름을 구성하는 경우 해당 이름은 프라이빗 DNS 영역으로 제한되지 않고 공개적으로 확인할 수 있어야 합니다.
게이트웨이에 대한 공용 액세스를 제한하고 프라이빗 도메인 이름을 구성하는 시나리오의 해결 방법으로, 프라이빗 도메인 이름에서 트래픽을 수신하고 API Management 인스턴스의 게이트웨이 엔드포인트로 라우팅하도록 Application Gateway를 설정할 수 있습니다. 예제 아키텍처는 이 GitHub 리포지토리를 참조하세요.
관련 콘텐츠
-
변수가 포함된
context.request을 사용하여 프라이빗 엔드포인트의 트래픽을 식별합니다. - Private Link 가격 책정을 포함하여 프라이빗 엔드포인트 및 Private Link에 대해 자세히 알아봅니다.
- 프라이빗 엔드포인트 연결을 관리합니다.
- Azure 프라이빗 엔드포인트 연결 문제를 해결합니다.
- Resource Manager 템플릿을 사용하여 클래식 API Management 인스턴스 및 프라이빗 엔드포인트를 만듭니다.