Partager via


Bien démarrer avec Private Link

Vue d’ensemble

Ce guide décrit la fonctionnalité azure Operator Service Manager (AOSM) Private Link (PL) pour les magasins d’artefacts hébergés sur Azure Operator Nexus. Dans le cadre de l’initiative de registre de périphérie AOSM, PL utilise des points de terminaison privés Azure et le service d’Azure Private Link pour stocker en toute sécurité le trafic de stockage d’artefacts locaux Nexus. Ce trafic n’est jamais exposé à Internet, au lieu de parcourir exclusivement le réseau privé de Microsoft.

Introduction

Ce document fournit un guide de démarrage rapide pour activer la fonctionnalité de liaison privée pour le magasin d’artefacts AOSM à l’aide des API de publication AOSM.

Autorisations requises

Les opérations requises pour lier et gérer un point de terminaison privé avec un contrôleur de structure Nexus (NFC) nécessitent les privilèges de rôle non définis suivants.

Autorisations pour la liaison et la gestion d’un point de terminaison privé manuel

Supprimer un point de terminaison privé

"Microsoft.HybridNetwork/publishers/artifactStores/removePrivateEndPoints/action"

Approuver le point de terminaison privé

"Microsoft.HybridNetwork/publishers/artifactStores/approvePrivateEndPoints/action"

Autorisations pour lier et gérer un point de terminaison privé avec NFC

Ajouter des points de terminaison privés NFC

"Microsoft.HybridNetwork/publishers/artifactStores/addNetworkFabricControllerEndPoints/action"
"Microsoft.ManagedNetworkFabric/networkFabricControllers/joinartifactstore/action"

Répertorier les points de terminaison privés NFC

"Microsoft.HybridNetwork/publishers/artifactStores/listNetworkFabricControllerPrivateEndPoints/action"

Supprimer des points de terminaison privés NFC

"Microsoft.HybridNetwork/publishers/artifactStores/deleteNetworkFabricControllerEndPoints/action"
"Microsoft.ManagedNetworkFabric/networkFabricControllers/disjoinartifactstore/action"

Remarque

À mesure que de nouvelles autorisations NFC sont introduites, les privilèges de rôle recommandés seront mis à jour.

Avant que les ressources puissent être chargées en toute sécurité, la séquence d’opérations suivante établit une connexion PL au magasin d’artefacts.

Créer un serveur de publication et un magasin d’artefacts

  • Créez une nouvelle ressource d’éditeur avec le type d’identité défini sur « SystemAssigned. »
    • Si l’éditeur a déjà été créé sans cette propriété, utilisez une opération de Reput pour la mise à jour.
  • Utilisez la nouvelle propriété « backingResourcePublicNetworkAcccess » pour désactiver l’accès public au magasin d’artefacts.
    • La propriété est d’abord ajoutée dans la version 2024-04-15.
    • Si ArtifactResource a déjà été créé sans cette propriété, utilisez une opération de Reput pour mettre à jour.

Exemple de script bicep du serveur de publication

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'
 }
 
}

Opérations manuelles de point de terminaison

Les opérations suivantes permettent la gestion manuelle d’un magasin d’artefacts une fois le PL établi.

Gérer des accès de point de terminaison privé

Par défaut, lorsque le magasin d’artefacts est connecté au réseau virtuel, l’utilisateur n’a pas d’autorisations sur l’ACR. Par conséquent, le point de terminaison privé se retrouve dans un état en attente. Les commandes REST d’Azure suivantes et la charge utile permettent à un utilisateur d’approuver, de rejeter et/ou de répertorier ces points de terminaison.

Remarque

Dans ce flux de travail, le réseau virtuel est géré par le client.

Exemple de charge utile JSON :

{
 "manualPrivateEndPointConnections": [
 {
 "id":"/subscriptions/<subscriptionId>/resourceGroups/<ResourceGroup>/providers/Microsoft.Network/privateEndpoints/peName"
 }
 ]
 }

Exemples de commandes de point de terminaison privé

# 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 '{}'

Ajouter des points de terminaison privés à NFC

Les commandes REST d’Azure suivantes permettent à un utilisateur de créer, de supprimer et/ou de répertorier l’association entre le point de terminaison privé, ACR, ainsi que les réseaux virtuels gérés par Nexus.

Exemples de commandes de point de terminaison privé

# 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\"}] }'