Einstieg in Private Link
Übersicht
In diesem Leitfaden wird das Feature für private Links (AOSM) von Azure Operator Service Manager (PL) für Artefaktspeicher beschrieben, die auf Azure Operator Nexus gehostet werden. Als Teil der AOSM-Edge-Registry-Initiative verwendet PL private Azure-Endpunkte und den Azure Private Link-Dienst, um den Datenverkehr des Nexus-Artefaktspeichers vor Ort sicher zurückzuleiten. Dieser Datenverkehr wird niemals im Internet verfügbar gemacht, sondern ausschließlich über das private Netzwerk von Microsoft.
Einführung
Dieses Dokument enthält eine Schnellstartanleitung zum Aktivieren des Features für private Links für den AOSM-Artefaktspeicher mithilfe von AOSM Publisher-APIs.
Erforderliche Berechtigungen
Für die Verknüpfung und Verwaltung eines privaten Endpunkts mit einem Nexus Fabric Controller (NFC) sind die folgenden nicht standardmäßigen Rollenberechtigungen erforderlich.
Berechtigungen zum Verknüpfen und Verwalten manueller privater Endpunkte
Privaten Endpunkt entfernen
"Microsoft.HybridNetwork/publishers/artifactStores/removePrivateEndPoints/action"
Genehmigen des privaten Endpunkts
"Microsoft.HybridNetwork/publishers/artifactStores/approvePrivateEndPoints/action"
Berechtigungen zum Verknüpfen und Verwalten eines privaten Endpunkts mit NFC
Hinzufügen privater NFC-Endpunkte
"Microsoft.HybridNetwork/publishers/artifactStores/addNetworkFabricControllerEndPoints/action"
"Microsoft.ManagedNetworkFabric/networkFabricControllers/joinartifactstore/action"
Auflisten privater NFC-Endpunkte
"Microsoft.HybridNetwork/publishers/artifactStores/listNetworkFabricControllerPrivateEndPoints/action"
Löschen privater NFC-Endpunkte
"Microsoft.HybridNetwork/publishers/artifactStores/deleteNetworkFabricControllerEndPoints/action"
"Microsoft.ManagedNetworkFabric/networkFabricControllers/disjoinartifactstore/action"
Hinweis
Wenn neue NFC-Berechtigungen eingeführt werden, werden die empfohlenen Rollenberechtigungen aktualisiert.
Verwenden von AOSM-APIs zum Einrichten eines privaten Links
Bevor Ressourcen sicher hochgeladen werden können, stellt die folgende Sequenz von Vorgängen eine PL-Verbindung mit dem Artefaktspeicher her.
Erstellen des Publisher- und Artefaktspeichers
- Erstellen Sie eine neue Publisher-Ressource, deren Identitätstyp auf "SystemAssigned" festgelegt ist.
- Wenn der Publisher bereits ohne diese Eigenschaft erstellt wurde, verwenden Sie zum Aktualisieren einen vertrauenswürdigen Vorgang.
- Verwenden Sie die neue Eigenschaft "backingResourcePublicNetworkAcccess", um den öffentlichen Artefaktespeicher zu deaktivieren.
- Die Eigenschaft wird zuerst in der Version 2024-04-15 hinzugefügt.
- Wenn die ArtifactResource bereits ohne diese Eigenschaft erstellt wurde, verwenden Sie einen vertrauenswürdigen Vorgang zum Aktualisieren.
Beispiel eines Publisher-Bicep-Skripts
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'
}
}
Manuelle Endpunktvorgänge
Die folgenden Vorgänge ermöglichen die manuelle Verwaltung eines Artefaktspeichers, sobald die PL eingerichtet wurde.
Verwalten von Zugriffen für private Endpunkte
Wenn der Artefaktspeicher mit dem vnet verbunden ist, verfügt der Benutzer standardmäßig nicht über Berechtigungen für die ACR, sodass der private Endpunkt in einem ausstehenden Zustand angezeigt wird. Mit den folgenden Azure-Restbefehlen und -Nutzlasten kann ein Benutzer diese Endpunkte genehmigen, ablehnen und/oder auflisten.
Hinweis
In diesem Workflow wird das vnet vom Kunden verwaltet.
Beispiel für JSON-Nutzdaten:
{
"manualPrivateEndPointConnections": [
{
"id":"/subscriptions/<subscriptionId>/resourceGroups/<ResourceGroup>/providers/Microsoft.Network/privateEndpoints/peName"
}
]
}
Beispielbefehle für private Endpunkte
# 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 '{}'
Hinzufügen privater Endpunkte zu NFC
Mit den folgenden Azure-Restbefehlen kann ein Benutzer die Zuordnung zwischen privaten Endpunkten, ACR und den von Nexus verwalteten vnets erstellen, entfernen und/oder auflisten.
Beispielbefehle für private Endpunkte
# 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\"}] }'