Compartir a través de


Introducción a Private Link

Información general

En esta guía se describe la característica Private Link (PL) de Azure Operator Service Manager (AOSM) para almacenes de artefactos hospedados en Azure Operator Nexus. Como parte de la iniciativa del registro perimetral de AOSM, PL usa puntos de conexión privados de Azure y el servicio Azure Private Link, para volver a usar de forma segura el tráfico del almacén de artefactos local de Nexus. Este tráfico nunca se expone a Internet, sino que atraviesa exclusivamente la red privada de Microsoft.

Introducción

En este documento se proporciona una guía de inicio rápido para habilitar la característica vínculo privado para el almacén de artefactos de AOSM mediante las API del publicador de AOSM.

Permisos necesarios

Las operaciones necesarias para vincular y administrar un punto de conexión privado con un controlador de tejido de Nexus (NFC) requieren los siguientes privilegios de rol no predeterminados.

Permisos para vincular y administrar el punto de conexión privado manual

Eliminación del punto de conexión privado

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

Aprobación de un punto de conexión privado

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

Permisos para vincular y administrar un punto de conexión privado con NFC

Adición de puntos de conexión privados de NFC

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

Enumeración de puntos de conexión privados de NFC

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

Eliminación de puntos de conexión privados de NFC

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

Nota:

A medida que se introducen nuevos permisos de NFC, se actualizarán los privilegios de rol recomendados.

Antes de que los recursos se puedan cargar de forma segura, la siguiente secuencia de operaciones establece una conexión a PL con el almacén de artefactos.

Creación de un publicador y un almacén de artefactos

  • Cree un nuevo recurso de publicador con el tipo de identidad establecido en "SystemAssigned".
    • Si el publicador ya se creó sin esta propiedad, use una operación de actualización para modificarla.
  • Use la nueva propiedad "backingResourcePublicNetworkAcccess" para deshabilitar el acceso público del almacén de artefactos.
    • La propiedad se agrega primero en la versión 2024-04-15.
    • Si ArtifactResource ya se creó sin esta propiedad, use una operación de actualización para modificarla.

Script de bicep de publicador de ejemplo

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

Operaciones manuales de punto de conexión

Las siguientes operaciones habilitan la administración manual de un almacén de artefactos una vez establecido el PL.

Administración del acceso al punto de conexión privado

De forma predeterminada, cuando el almacén de artefactos está conectado a la red virtual, el usuario no tiene permisos para ACR, por lo que el punto de conexión privado termina en un estado pendiente. Los siguientes comandos rest de Azure y la carga permiten a un usuario aprobar, rechazar o enumerar estos puntos de conexión.

Nota:

En este flujo de trabajo, el cliente administra la red virtual.

Carga de JSON de ejemplo:

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

Comandos de punto de conexión privado de ejemplo

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

Adición de puntos de conexión privados a NFC

Los siguientes comandos rest de Azure permiten a un usuario crear, quitar o enumerar la asociación entre el punto de conexión privado, ACR y las redes virtuales administradas de Nexus.

Comandos de punto de conexión privado de ejemplo

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