Azure Monitor에 대한 프라이빗 링크 구성
이 문서에서는 Azure Portal을 사용하여 AMPLS(Azure Monitor Private Link 범위)를 만들고 구성하기 위한 단계별 세부 정보를 제공합니다. 또한 이 문서에는 CLI, PowerShell 및 ARM 템플릿을 사용하여 AMPLS를 사용하는 대체 메서드가 포함되어 있습니다.
Azure Private Link의 인스턴스를 구성하려면 다음 단계가 필요합니다. 이러한 각 단계는 아래 섹션에 자세히 설명되어 있습니다.
- Azure Monitor AMPLS(Private Link Scope)를 만듭니다.
- AMPLS에 리소스를 연결합니다.
- 프라이빗 엔드포인트에 AMPLS를 연결합니다.
- AMPLS 리소스에 대한 액세스를 구성합니다.
이 문서에서는 Azure Portal을 통해 구성이 수행되는 방법을 검토합니다. 프로세스를 자동화하는 예 ARM 템플릿(Azure Resource Manager 템플릿)을 제공합니다.
Azure Monitor AMPLS(Private Link Scope) 만들기
Azure Portal의 모니터 메뉴에서 Private Link 범위를 선택한 다음, 만듭니다.
구독 및 리소스 그룹을 선택하고 AMPLS에 AppServerProdTelem과 같은 의미 있는 이름을 지정합니다.
검토 + 만들기를 선택합니다.
유효성 검사를 통과하고 만들기를 선택합니다.
AMPLS에 리소스 연결
AMPLS 메뉴에서 Azure Monitor 리소스를 선택한 다음 추가합니다.
구성 요소를 선택하고 적용을 선택하여 범위에 추가합니다. Log Analytics 작업 영역, Application Insights 구성 요소 및 DCE(데이터 수집 엔드포인트)를 포함한 Azure Monitor 리소스만 사용할 수 있습니다.
참고 항목
Azure Monitor 리소스를 삭제하려면 먼저 연결된 모든 AMPLS 개체에서 리소스의 연결을 끊어야 합니다. AMPLS에 연결된 리소스는 삭제할 수 없습니다.
프라이빗 엔드포인트에 AMPLS 연결
리소스가 AMPLS에 연결되면 네트워크를 연결하는 프라이빗 엔드포인트를 만들 수 있습니다.
AMPLS 메뉴에서 프라이빗 엔드포인트 연결을 선택한 다음 프라이빗 엔드포인트를 선택합니다. 프라이빗 링크 센터에서 시작된 연결을 선택하고 승인을 선택하여 승인할 수도 있습니다.
기본 사항 탭
- 구독 및 리소스 그룹을 선택한 다음, 엔드포인트의 이름과 네트워크 인터페이스 이름을 입력합니다.
- 프라이빗 엔드포인트를 만들어야 하는 지역을 선택합니다. 지역은 연결하는 가상 네트워크와 동일한 지역이어야 합니다.
리소스 탭
- Azure Monitor Private Link 범위 리소스가 포함된 구독을 선택합니다.
- 리소스 종류에서 Microsoft.insights/privateLinkScopes를 선택합니다.
- 리소스 드롭다운에서 만든 Private Link 범위를 선택합니다.
Virtual Network 탭
- Azure Monitor 리소스에 연결하려는 가상 네트워크 및 서브넷 을 선택합니다.
- 프라이빗 엔드포인트에 대한 네트워크 정책의 경우 네트워크 보안 그룹을 적용하거나 프라이빗 엔드포인트가 포함된 서브넷에 테이블을 라우팅하려면 편집을 선택합니다. 자세한 내용은 프라이빗 엔드포인트에 대한 네트워크 정책 관리를 참조하세요.
- 개인 IP 구성의 경우 기본적으로 동적 IP 주소 할당이 선택됩니다. 고정 IP 주소를 할당하려면 고정적으로 IP 주소를 할당한 다음 이름 및 개인 IP를 입력합니다.
- 필요에 따라 애플리케이션 보안 그룹을 선택하거나 만듭니다. 애플리케이션 보안 그룹을 사용하여 가상 머신을 그룹화하고 해당 그룹을 기반으로 네트워크 보안 정책을 정의할 수 있습니다.
DNS 탭
- 프라이빗 DNS 영역과 통합하려면 [예]를 선택합니다. 그러면 새 프라이빗 DNS 영역이 자동으로 생성됩니다. 실제 DNS 영역은 다음 스크린샷에 표시된 것과 다를 수 있습니다.
참고 항목
아니요를 선택하고 DNS 레코드를 수동으로 관리하려면 먼저 프라이빗 링크 설정을 완료합니다. 이 프라이빗 엔드포인트 및 AMPLS 구성을 포함하고 Azure 프라이빗 엔드포인트 DNS 구성의 지침에 따라 DNS를 구성합니다. 프라이빗 링크 설정을 위한 준비로 빈 레코드를 만들지 않도록 합니다. 만드는 DNS 레코드는 기존 설정을 재정의하고 Azure Monitor와의 연결에 영향을 줄 수 있습니다.
예 또는 아니요를 선택하고 사용자 고유의 사용자 지정 DNS 서버를 사용하든 간에 Azure 프라이빗 엔드포인트 DNS 구성에 언급된 공용 DNS 영역 전달자에 대한 조건부 전달자를 설정해야 합니다. 조건부 전달자는 DNS 쿼리를 Azure DNS로 전달해야 합니다.
리뷰 + 만들기 탭
- 유효성 검사가 통과되면 만들기를 선택합니다.
AMPLS 리소스에 대한 액세스 구성
AMPLS 메뉴에서 네트워크 격리를 선택하여 프라이빗 링크를 통해 리소스에 연결할 수 있는 네트워크와 다른 네트워크가 리소스에 연결할 수 있는지 여부를 제어합니다.
연결된 AMPLS
이 화면에서는 AMPLS에 대한 리소스의 연결을 검토하고 구성할 수 있습니다. AMPLS에 연결하면 연결된 가상 네트워크의 트래픽이 리소스에 연결할 수 있습니다. Azure Monitor 리소스 연결에 설명된 범위에서 연결하는 것과 동일한 효과가 있습니다.
새 연결을 추가하려면 추가를 선택하고 AMPLS를 선택합니다. 리소스는 AMPLS 제한에 설명된 대로 5개의 AMPLS 개체에 연결할 수 있습니다.
가상 네트워크 액세스 구성
이러한 설정은 나열된 범위에 연결되지 않은 공용 네트워크의 액세스를 제어합니다. 여기에는 로그, 메트릭 및 라이브 메트릭 스트림에 대한 액세스가 포함됩니다. 또한 통합 문서, 대시보드, 쿼리 API 기반 클라이언트 환경 및 Azure Portal의 인사이트와 같은 이 데이터를 기반으로 빌드된 환경도 포함됩니다. Azure Portal 외부에서 실행 중인 경험과 이 쿼리 로그 분석 데이터도 프라이빗 링크된 가상 네트워크 내에서 실행되어야 합니다.
- Private Link 범위를 통해 연결되지 않은 공용 네트워크에서 데이터 수집 허용을 아니요로 설정하면 연결된 범위 밖에 있는 컴퓨터 또는 SDK와 같은 클라이언트에서 데이터를 업로드하거나 리소스에 로그를 보낼 수 없습니다.
- Private Link 범위를 통해 연결되지 않은 공용 네트워크의 쿼리 허용을 아니요로 설정하면 연결된 범위 밖에 있는 컴퓨터 또는 SDK와 같은 클라이언트가 리소스의 데이터를 쿼리할 수 없습니다.
CLI를 사용하여 AMPLS 작업
액세스 모드 열기를 사용하여 AMPLS 만들기
다음 CLI 명령은 쿼리 및 수집 액세스 모드가 모두 Open
으로 설정된 "my-scope"
이라는 새 AMPLS 리소스를 만듭니다.
az resource create -g "my-resource-group" --name "my-scope" -l global --api-version "2021-07-01-preview" --resource-type Microsoft.Insights/privateLinkScopes --properties "{\"accessModeSettings\":{\"queryAccessMode\":\"Open\", \"ingestionAccessMode\":\"Open\"}}"
리소스 액세스 플래그 설정
작업 영역 또는 구성 요소 액세스 플래그를 관리하려면 az monitor log-analytics 작업 영역 또는 az monitor app-insights 구성 요소에 [--ingestion-access {Disabled, Enabled}]
및 [--query-access {Disabled, Enabled}]
플래그를 사용합니다.
PowerShell을 사용하여 AMPLS 작업
AMPLS 만들기
다음 PowerShell 스크립트는 쿼리 액세스 모드가 Open
으로 설정되었지만 수집 액세스 모드가 PrivateOnly
로 설정된 "my-scope"
라는 새 AMPLS 리소스를 만듭니다. 이 설정은 AMPLS의 리소스에 대해서만 수집을 허용함을 의미합니다.
# scope details
$scopeSubscriptionId = "ab1800bd-ceac-48cd-...-..."
$scopeResourceGroup = "my-resource-group"
$scopeName = "my-scope"
$scopeProperties = @{
accessModeSettings = @{
queryAccessMode = "Open";
ingestionAccessMode = "PrivateOnly"
}
}
# login
Connect-AzAccount
# select subscription
Select-AzSubscription -SubscriptionId $scopeSubscriptionId
# create private link scope resource
$scope = New-AzResource -Location "Global" -Properties $scopeProperties -ResourceName $scopeName -ResourceType "Microsoft.Insights/privateLinkScopes" -ResourceGroupName $scopeResourceGroup -ApiVersion "2021-07-01-preview" -Force
AMPLS 액세스 모드 설정
다음 PowerShell 코드를 사용하여 AMPLS를 만든 후 액세스 모드 플래그를 설정합니다.
# get private link scope resource
$scope = Get-AzResource -ResourceType Microsoft.Insights/privateLinkScopes -ResourceGroupName $scopeResourceGroup -ResourceName $scopeName -ApiVersion "2021-07-01-preview"
# set access mode settings
$scope.Properties.AccessModeSettings.QueryAccessMode = "Open";
$scope.Properties.AccessModeSettings.IngestionAccessMode = "Open";
$scope | Set-AzResource -Force
ARM 템플릿
AMPLS 만들기
다음 ARM 템플릿은 다음을 수행합니다.
- 쿼리 및 수집 액세스 모드가
Open
으로 설정된"my-scope"
라는 AMPLS. "my-workspace"
라는 Log Analytics 작업 영역.- 명명
"my-workspace-connection"
된 AMPLS에 범위가 지정된 리소스를"my-scope"
추가합니다.
{
"$schema": https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#,
"contentVersion": "1.0.0.0",
"parameters": {
"private_link_scope_name": {
"defaultValue": "my-scope",
"type": "String"
},
"workspace_name": {
"defaultValue": "my-workspace",
"type": "String"
}
},
"variables": {},
"resources": [
{
"type": "microsoft.insights/privatelinkscopes",
"apiVersion": "2021-07-01-preview",
"name": "[parameters('private_link_scope_name')]",
"location": "global",
"properties": {
"accessModeSettings":{
"queryAccessMode":"Open",
"ingestionAccessMode":"Open"
}
}
},
{
"type": "microsoft.operationalinsights/workspaces",
"apiVersion": "2020-10-01",
"name": "[parameters('workspace_name')]",
"location": "westeurope",
"properties": {
"sku": {
"name": "pergb2018"
},
"publicNetworkAccessForIngestion": "Enabled",
"publicNetworkAccessForQuery": "Enabled"
}
},
{
"type": "microsoft.insights/privatelinkscopes/scopedresources",
"apiVersion": "2019-10-17-preview",
"name": "[concat(parameters('private_link_scope_name'), '/', concat(parameters('workspace_name'), '-connection'))]",
"dependsOn": [
"[resourceId('microsoft.insights/privatelinkscopes', parameters('private_link_scope_name'))]",
"[resourceId('microsoft.operationalinsights/workspaces', parameters('workspace_name'))]"
],
"properties": {
"linkedResourceId": "[resourceId('microsoft.operationalinsights/workspaces', parameters('workspace_name'))]"
}
}
]
}
AMPLS 구성 검토 및 유효성 검사
이 섹션의 단계에 따라 프라이빗 링크 설정을 검토하고 유효성 검사합니다.
엔드포인트의 DNS 설정 검토
이 문서에서 만든 프라이빗 엔드포인트에는 다음과 같은 5개의 DNS 영역이 구성되어 있어야 합니다.
privatelink.monitor.azure.com
privatelink.oms.opinsights.azure.com
privatelink.ods.opinsights.azure.com
privatelink.agentsvc.azure-automation.net
privatelink.blob.core.windows.net
이러한 각 영역은 특정 Azure Monitor 엔드포인트를 가상 네트워크의 IP 풀에서 개인 IP로 매핑합니다. 아래 이미지에 표시된 IP 주소는 예제일 뿐입니다. 대신 구성에 사용자 네트워크의 프라이빗 IP가 표시되어야 합니다.
privatelink-monitor-azure-com
이 영역은 Azure Monitor에서 사용하는 글로벌 엔드포인트를 다룹니다. 즉, 엔드포인트는 리소스 관련 요청이 아니라 전역/지역적으로 요청을 처리합니다. 이 영역에는 다음을 위해 매핑된 엔드포인트가 있어야 합니다.
- in.ai: Application Insights 수집 엔드포인트(글로벌 항목과 지역 항목 모두)입니다.
- api: Application Insights 및 Log Analytics API 엔드포인트입니다.
- live: Application Insights 라이브 메트릭 엔드포인트입니다.
- 프로파일러: .NET 엔드포인트용 Application Insights Profiler.
- snapshot: Application Insights 스냅샷 엔드포인트.
- diagservices-query: .NET 및 스냅샷 디버거용 Application Insights Profiler(Azure Portal에서 프로파일러/디버거 결과에 액세스할 때 사용됨).
이 영역은 다음 DCE에 대한 리소스별 엔드포인트도 다룹니다.
<unique-dce-identifier>.<regionname>.handler.control
: DCE 리소스의 일부인 프라이빗용 구성 엔드포인트.<unique-dce-identifier>.<regionname>.ingest
: DCE 리소스의 일부인 프라이빗용 수집 엔드포인트.
Log Analytics 엔드포인트
Log Analytics는 다음 네 개의 DNS 영역을 사용합니다.
privatelink-oms-opinsights-azure-com
: OMS 엔드포인트에 대한 작업 영역별 매핑을 다룹니다. 이 프라이빗 엔드포인트와 연결된 AMPLS에 연결된 각 작업 영역에 대한 항목이 표시됩니다.privatelink-ods-opinsights-azure-com
: Log Analytics의 수집 엔드포인트인 ODS 엔드포인트에 대한 작업 영역별 매핑을 다룹니다. 이 프라이빗 엔드포인트와 연결된 AMPLS에 연결된 각 작업 영역에 대한 항목이 표시됩니다.privatelink-agentsvc-azure-automation-net*
: 에이전트 서비스 자동화 엔드포인트에 대한 작업 영역별 매핑을 다룹니다. 이 프라이빗 엔드포인트와 연결된 AMPLS에 연결된 각 작업 영역에 대한 항목이 표시됩니다.privatelink-blob-core-windows-net
: 글로벌 에이전트의 솔루션 팩 스토리지 계정에 대한 연결을 구성합니다. 이를 통해 에이전트는 관리 팩이라고도 하는 신규 또는 업데이트된 솔루션 팩을 다운로드할 수 있습니다. 사용된 작업 영역 수에 관계없이 모든 Log Analytics 에이전트를 처리하려면 하나의 항목만 필요합니다. 이 항목은 2021년 4월 19일 이후에(또는 Azure 소버린 클라우드에서 2021년 6월부터) 만든 프라이빗 링크 설정에만 추가됩니다.
다음 스크린샷은 미국 동부에 2개의 작업 영역과 서유럽에 1개의 작업 영역이 있는 AMPLS에 대해 매핑된 엔드포인트를 보여 줍니다. 미국 동부 작업 영역은 IP 주소를 공유합니다. 서유럽 작업 영역 엔드포인트는 다른 IP 주소에 매핑됩니다. Blob 엔드포인트는 이 이미지에 표시되지 않지만 구성됩니다.
AMPLS를 통한 통신 유효성 검사
이제 프라이빗 엔드포인트를 통해 요청이 전송되는지 확인하려면 브라우저 또는 네트워크 추적 도구를 사용하여 검토합니다. 예를 들어, 작업 영역 또는 애플리케이션을 쿼리하려고 할 때 요청이 API 엔드포인트에 매핑된 개인 IP로 전송되는지 확인합니다. 이 예시에서는 172.17.0.9입니다.
참고 항목
일부 브라우저는 다른 DNS 설정을 사용할 수 있습니다. 자세한 내용은 브라우저 DNS 설정을 참조하세요. DNS 설정이 적용되는지 확인합니다.
작업 영역 또는 구성 요소가 공용 네트워크에서 요청을 받지 않도록 하려면(AMPLS을 통해 연결되지 않음), 리소스에 대한 액세스 구성에 설명된 대로 리소스의 공개 수집 및 쿼리 플래그를 아니요로 설정합니다.
보호된 네트워크의 클라이언트에서
nslookup
DNS 영역에 나열된 엔드포인트 중 하나를 사용합니다. DNS 서버에서 기본적으로 확인되는 공용 IP 대신 매핑된 프라이빗 IP로 확인되어야 합니다.
로컬로 테스트
네트워크의 다른 클라이언트에 영향을 주지 않고 로컬로 프라이빗 링크를 테스트하려면 프라이빗 엔드포인트를 만들 때 DNS를 업데이트하지 않아야 합니다. 대신 프라이빗 링크 엔드포인트에 요청을 보내도록 머신에서 호스트 파일을 편집합니다.
- 프라이빗 링크를 설정하지만 프라이빗 엔드포인트에 연결할 때 DNS와 자동 통합하지 않도록 선택합니다.
- 컴퓨터의 호스트 파일에서 관련 엔드포인트를 구성합니다.
추가 구성
네트워크 서브넷 크기
지원되는 가장 작은 IPv4 서브넷은 CIDR 서브넷 정의를 사용하는 /27입니다. Azure 가상 네트워크는 /29만큼 작을 수 있지만, Azure는 5개의 IP 주소를 예약합니다. Azure Monitor 프라이빗 링크 설정에는 단일 작업 영역에 연결하는 경우에도 11개 이상의 IP 주소가 필요합니다. Azure Monitor 프라이빗 링크 엔드포인트의 목록은 엔드포인트의 DNS 설정을 검토합니다.
Azure Portal
Application Insights, Log Analytics 및 DCE에 대한 Azure Monitor 포털 환경을 사용하려면 Azure Portal 및 Azure Monitor 확장을 프라이빗 네트워크에서 액세스할 수 있도록 허용합니다. AzureActiveDirectory, AzureResourceManager, AzureFrontDoor.FirstParty 및 AzureFrontdoor.Frontend 서비스 태그를 네트워크 보안 그룹에 추가합니다.
프로그래밍 액세스
개인 네트워크의 Azure Monitor에서 REST API, Azure CLI 또는 PowerShell을 사용하려면 서비스 태그 AzureActiveDirectory 및 AzureResourceManager를 방화벽에 추가합니다.
브라우저 DNS 설정
프라이빗 링크를 통해 Azure Monitor 리소스에 연결하는 경우 이러한 리소스에 대한 트래픽은 네트워크에 구성된 프라이빗 엔드포인트를 통해 이동해야 합니다. 프라이빗 엔드포인트를 사용하도록 설정하려면 프라이빗 엔드포인트에 연결에 설명된 대로 DNS 설정을 업데이트합니다. 일부 브라우저는 사용자가 설정하는 대신 자체 DNS 설정을 사용합니다. 브라우저는 Azure Monitor 공용 엔드포인트에 연결을 시도하고 프라이빗 링크를 완전히 우회할 수 있습니다. 브라우저 설정이 이전 DNS 설정을 재정의하거나 캐시하지 않는지 확인합니다.
쿼리 제한: externaldata 연산자
- externaldata 연산자는 스토리지 계정에서 데이터를 읽지만 스토리지가 비공개로 액세스되도록 보장하지 않으므로 프라이빗 링크를 통해 지원되지 않습니다.
- ADX 프록시(Azure Data Explorer 프록시)를 사용하면 로그 쿼리에서 Azure Data Explorer로 쿼리할 수 있습니다. ADX 프록시는 대상 리소스의 비공개 액세스를 보장하지 않기 때문에 프라이빗 링크를 통해 지원되지 않습니다.
다음 단계
- 사용자 지정 로그 및 고객 관리형 키용 프라이빗 스토리지에 대해 알아봅니다.
- 새로운 데이터 수집 엔드포인트에 대해 알아보기
Private Link 범위를 생성하고 관리하려면 REST API 또는 Azure CLI(az monitor private-link-scope)를 사용합니다.