Introdução ao link privado
Visão geral
Este guia descreve o recurso LP (Link Privado) do AOSM (Gerenciador de Serviço de Operador do Azure) para repositórios de artefatos hospedados no Nexus do Operador do Azure. Como parte da iniciativa de registro de borda do AOSM, o PL usa pontos de extremidade privados do Azure e o serviço de link privado do Azure para fazer backhaul o tráfego do repositório de artefatos local com segurança. Esse tráfego nunca é exposto à Internet, em vez disso, percorre exclusivamente a rede privada da Microsoft.
Introdução
Este documento fornece um guia de início rápido para habilitar o recurso de link privado para o repositório de artefatos AOSM usando APIs do Publicador AOSM.
Permissões necessárias
As operações necessárias para vincular e gerenciar um ponto de extremidade privado com um NFC (controlador de malha Nexus) exigem os privilégios de função não padrão a seguir.
Permissões para vincular e gerenciar ponto de extremidade privado manual
Remover ponto de extremidade privado
"Microsoft.HybridNetwork/publishers/artifactStores/removePrivateEndPoints/action"
Aprovar ponto de extremidade privado
"Microsoft.HybridNetwork/publishers/artifactStores/approvePrivateEndPoints/action"
Permissões para vincular e gerenciar um ponto de extremidade privado com NFC
Adicionar pontos de extremidade privados do NFC
"Microsoft.HybridNetwork/publishers/artifactStores/addNetworkFabricControllerEndPoints/action"
"Microsoft.ManagedNetworkFabric/networkFabricControllers/joinartifactstore/action"
Listar pontos de extremidade privados do NFC
"Microsoft.HybridNetwork/publishers/artifactStores/listNetworkFabricControllerPrivateEndPoints/action"
Excluir pontos de extremidade privados do NFC
"Microsoft.HybridNetwork/publishers/artifactStores/deleteNetworkFabricControllerEndPoints/action"
"Microsoft.ManagedNetworkFabric/networkFabricControllers/disjoinartifactstore/action"
Observação
À medida que novas permissões do NFC forem introduzidas, os privilégios de função recomendados serão atualizados.
Usar APIs do AOSM para configurar o link privado
Antes que os recursos possam ser carregados com segurança, a sequência de operações a seguir estabelece uma conexão de link privado com o repositório de artefatos.
Criar editor e repositório de artefatos
- Crie um recurso do publicador com o tipo de identidade definido como "SystemAssigned".
- Se o publicador já tiver sido criado sem essa propriedade, use uma operação reput para atualizar.
- Use a nova propriedade 'backingResourcePublicNetworkAcccess' para desabilitar o acesso público do repositório de artefatos.
- A propriedade é adicionada pela primeira vez na versão 2024-04-15.
- Se o ArtifactResource já tiver sido criado sem essa propriedade, use uma operação de taxa de transferência para atualizar.
Exemplo de script bicep do editor
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'
}
}
Operações de ponto de extremidade manual
As operações a seguir permitem o gerenciamento manual de um repositório de artefatos depois que o link privado é estabelecido.
Gerenciar acesso de ponto de extremidade privado
Por padrão, quando o repositório de artefatos está conectado à VNet, o usuário não tem permissões para o ACR, portanto, o ponto de extremidade privado acaba em um estado pendente. Os comandos REST e o conteúdo do Azure a seguir permitem que um usuário aprove, rejeite e/ou liste esses pontos de extremidade.
Observação
Nesse fluxo de trabalho, a VNet é gerenciada pelo cliente.
Conteúdo JSON de exemplo:
{
"manualPrivateEndPointConnections": [
{
"id":"/subscriptions/<subscriptionId>/resourceGroups/<ResourceGroup>/providers/Microsoft.Network/privateEndpoints/peName"
}
]
}
Comandos de ponto de extremidade privado de exemplo
# 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 '{}'
Adicionar pontos de extremidade privados ao NFC
Os comandos REST do Azure a seguir permitem que um usuário crie, remova e/ou liste a associação entre o ponto de extremidade privado, o ACR e as VNets gerenciadas do Nexus.
Comandos de ponto de extremidade privado de exemplo
# 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\"}] }'