開始使用私人連結
概觀
本指南說明 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 作業來更新。
- 使用新的屬性 'backingResourcePublicNetworkAcccess' 來停用成品存放區公用存取。
- 屬性首次新增於 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/<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\"}] }'