概觀
本指南說明 Azure Operator Service Manager (AOSM) 私人連結 (PL) 功能,適用於裝載於 Azure 運算子連接點上的成品存放區。 PL 作為 AOSM 邊緣登錄計劃的一部分,會使用 Azure 私人端點和 Azure 私人連結服務,安全地回傳 Nexus 內部部署成品存放區流量。 此流量永遠不會公開至網際網路,而是專門周遊 Microsoft 私人網路。
簡介
本文件提供快速入門指南,以啟用使用 AOSM 發行者 API 之 AOSM 成品存放區的私人連結功能。
所需的權限
使用 Nexus 網狀結構控制器 (NFC) 連結和管理私人端點所需的作業需要以下非預設角色權限。
連結和管理手動私人端點的權限
移除私人端點
"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 連線。
建立發行者與成品存放區
- 建立新的發行者資源,並將身分識別類型設定為 'SystemAssigned'。
- 如果已建立沒有此屬性的發行者,請使用 reput 作業來更新。
- 使用新的屬性 『backingResourcePublicNetworkAccess』 來停用成品存放區公用存取。
- 屬性首次新增於 2024-04-15 版本中。
- 如果已建立沒有此屬性的 ArtifactResource,請使用 reput 作業來更新。
範例發行者 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/<ResourceGroup>/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\"}] }'