프라이빗 링크 시작
개요
이 가이드에서는 Azure Operator Nexus에 호스트된 아티팩트 저장소에 대한 AOSM(Azure Operator Service Manager) PL(프라이빗 링크) 기능을 설명합니다. AOSM 에지 레지스트리 이니셔티브의 일환으로 PL은 Azure 프라이빗 엔드포인트와 Azure Private Link 서비스를 사용하여 Nexus 온-프레미스 아티팩트 저장소 트래픽을 안전하게 역전송합니다. 이 트래픽은 인터넷에 노출되지 않고, 대신 Microsoft의 개인 네트워크를 통해서만 전송됩니다.
소개
이 문서에서는 AOSM Publisher API를 사용하여 AOSM 아티팩트 저장소에 대한 프라이빗 링크 기능을 사용하도록 설정하는 빠른 시작 가이드를 제공합니다.
필요한 사용 권한
프라이빗 엔드포인트를 NFC(Nexus 패브릭 컨트롤러)에 연결하고 관리하는 데 필요한 작업에는 다음과 같은 기본이 아닌 역할 권한이 필요합니다.
수동 프라이빗 엔드포인트 연결 및 관리 권한
프라이빗 엔드포인트 제거
"Microsoft.HybridNetwork/publishers/artifactStores/removePrivateEndPoints/action"
프라이빗 엔드포인트 승인
"Microsoft.HybridNetwork/publishers/artifactStores/approvePrivateEndPoints/action"
NFC를 사용하여 프라이빗 엔드포인트를 연결하고 관리하기 위한 권한
NFC 프라이빗 엔드포인트 추가
"Microsoft.HybridNetwork/publishers/artifactStores/addNetworkFabricControllerEndPoints/action"
"Microsoft.ManagedNetworkFabric/networkFabricControllers/joinartifactstore/action"
NFC 프라이빗 엔드포인트 나열
"Microsoft.HybridNetwork/publishers/artifactStores/listNetworkFabricControllerPrivateEndPoints/action"
NFC 프라이빗 엔드포인트 삭제
"Microsoft.HybridNetwork/publishers/artifactStores/deleteNetworkFabricControllerEndPoints/action"
"Microsoft.ManagedNetworkFabric/networkFabricControllers/disjoinartifactstore/action"
참고 항목
새 NFC 권한이 도입됨에 따라 권장되는 역할 권한도 업데이트됩니다.
AOSM API를 사용하여 프라이빗 링크 설정
리소스를 안전하게 업로드하려면 다음과 같은 일련의 작업을 통해 아티팩트 저장소에 대한 PL 연결이 설정됩니다.
게시자 및 아티팩트 저장소 만들기
- ID 유형을 'SystemAssigned'로 설정하여 새로운 게시자 리소스를 만듭니다.
- 이 속성 없이 게시자가 이미 만들어진 경우 평판 작업을 사용하여 업데이트합니다.
- 새 속성 'backingResourcePublicNetworkAccess'를 사용하여 아티팩트 저장소 공용 액세스를 사용하지 않도록 설정합니다.
- 해당 속성은 2024-04-15 버전에 처음 추가되었습니다.
- 이 속성 없이 ArtifactResource가 이미 만들어진 경우 평판 작업을 사용하여 업데이트합니다.
샘플 게시자 bicep 스크립트
param location string = resourceGroup().location
param publisherName string
param acrArtifactStoreName string
/* AOSM publisher resource creation
*/
var publisherNameWithLocation = concat(publisherName, uniqueString(resourceGroup().id))
resource publisher 'Microsoft.HybridNetwork/publishers@2023-09-01' = {
name: publisherNameWithLocation
location: location
identity: {
type: 'SystemAssigned'
}
properties: {
scope: 'Private'
}
}
/* AOSM artifact store resource creation
*/
resource acrArtifactStore 'Microsoft.HybridNetwork/publishers/artifactStores@2024-04-15' = {
parent: publisher
name: acrArtifactStoreName
location: location
properties: {
storeType: 'AzureContainerRegistry'
backingResourcePublicNetworkAccess: 'Disabled'
}
}
수동 엔드포인트 작업
다음 작업을 통해 PL이 설정되면 아티팩트 저장소를 수동으로 관리할 수 있습니다.
프라이빗 엔드포인트 액세스 관리
기본적으로 아티팩트 저장소가 VNet에 연결되면 사용자는 ACR에 대한 권한이 없으므로 프라이빗 엔드포인트는 보류 중 상태가 됩니다. 다음 Azure REST 명령과 페이로드를 사용하면 사용자가 이러한 엔드포인트를 승인, 거부 및/또는 나열할 수 있습니다.
참고 항목
이 워크플로에서는 VNet이 고객에 의해 관리됩니다.
샘플 JSON 페이로드:
{
"manualPrivateEndPointConnections": [
{
"id":"/subscriptions/<subscriptionId>/resourceGroups/<ResourceGroup>/providers/Microsoft.Network/privateEndpoints/peName"
}
]
}
샘플 프라이빗 엔드포인트 명령
# approve private endpoints
az rest --method post --url https://management.azure.com/subscriptions/<Subscription>/resourceGroups/<ResourceGroup>/providers/Microsoft.HybridNetwork/publishers/<Publisher>/artifactStores/<ArtifactStore>/approveprivateendpoints?api-version=2024-04-15 --body '{ \"manualPrivateEndPointConnections\" : [ { \"id\" : \"/subscriptions/<Subscription>/resourceGroups/<ResourceGroup>/providers/Microsoft.Network/privateEndpoints/peName\" } ] }'
# remove private endpoints
az rest --method post --url https://management.azure.com/subscriptions/<Subscription>/resourceGroups/<ResourceGroup>/providers/Microsoft.HybridNetwork/publishers/<Publisher>/artifactStores/<ArtifactStore>/removeprivateendpoints?api-version=2024-04-15 --body '{ \"manualPrivateEndPointConnections\" : [ { \"id\" : \"/subscriptions/<Subscription>/resourceGroups/<ReourceGroup>/providers/Microsoft.Network/privateEndpoints/peName\" } ] }'
# list private endpoints
az rest --method post --url https://management.azure.com/subscriptions/<Subscription>resourceGroups/<ResourceGroup>/providers/Microsoft.HybridNetwork/publishers/<Publisher>/artifactStores/<artifactStore>/listPrivateEndPoints?api-version=2024-04-15 --body '{}'
NFC에 프라이빗 엔드포인트 추가
다음 Azure REST 명령을 사용하면 사용자는 프라이빗 엔드포인트, ACR 및 Nexus 관리형 VNet 간의 연결을 만들기, 제거 및/또는 나열할 수 있습니다.
샘플 프라이빗 엔드포인트 명령
# add nfc private endpoints
az rest --method post --url https://management.azure.com/subscriptions/<Subscription>/resourceGroups/<ResourceGroup>/providers/Microsoft.HybridNetwork/publishers/<Publisher>/artifactStores/<artifactStore>/addnetworkfabriccontrollerendpoints?apiversion=2024-04-15 --body '{ \"networkFabricControllerIds\":[{\"id\": \"/subscriptions/<Subscription>/resourceGroups/op2lab-nfc-useop1/providers/Microsoft.ManagedNetworkFabric/networkFabricControllers/op2labnfc01\"}] }'
# list nfc private endpoints
az rest --method post --url https://management.azure.com/subscriptions/<Subscription>/resourceGroups/<ResourceGroup>/providers/Microsoft.HybridNetwork/publishers/<Publisher>/artifactStores/<artifactStore>/listnetworkfabriccontrollerprivateendpoints?apiversion=2024-04-15 --body '{}'
# delete nfc private endpoints
az rest --method post --url https://management.azure.com/subscriptions/<Subscription>/resourceGroups/<ResourceGroup>/providers/Microsoft.HybridNetwork/publishers/<publisher>/artifactStores/<artifactStore>/deletenetworkfabriccontrollerendpoints?api-version=2024-04-15 --body '{ \"networkFabricControllerIds\":[{\"id\": \"/subscriptions/<Subscription>/resourceGroups/op2lab-nfc-useop1/providers/Microsoft.ManagedNetworkFabric/networkFabricControllers/op2labnfc01\"}] }'