Guida introduttiva: Creare un servizio di collegamento privato con Azure PowerShell
Introduzione alla creazione di un servizio Collegamento privato che fa riferimento al proprio servizio. Assegnare l'accesso con collegamento privato al servizio o alla risorsa distribuita dietro un'istanza di Azure Load Balancer Standard. Gli utenti del servizio hanno accesso privato dalla loro rete virtuale.
Prerequisiti
Un account Azure con una sottoscrizione attiva. Creare un account gratuitamente.
Azure Cloud Shell o Azure PowerShell.
I passaggi descritti in questa guida introduttiva eseguono i cmdlet Azure PowerShell in modo interattivo in Azure Cloud Shell. Per eseguire i comandi nel Cloud Shell, selezionare Apri Cloudshell nell'angolo in alto a destra di un blocco di codice. Selezionare Copia per copiare il codice e incollarlo in Cloud Shell per eseguirlo. È anche possibile eseguire il Cloud Shell dall'interno del portale di Azure.
È anche possibile installare Azure PowerShell in locale per eseguire i cmdlet. I passaggi descritti in questo articolo richiedono Azure PowerShell modulo versione 5.4.1 o successiva. Eseguire
Get-Module -ListAvailable Az
per trovare la versione installata. Se è necessario eseguire l'aggiornamento, vedere Aggiornare il modulo Azure PowerShell.Se si esegue PowerShell in locale, eseguire
Connect-AzAccount
per connettersi ad Azure.
Creare un gruppo di risorse
Un gruppo di risorse di Azure è un contenitore logico in cui le risorse di Azure vengono distribuite e gestite.
Creare un gruppo di risorse con New-AzResourceGroup:
New-AzResourceGroup -Name 'test-rg' -Location 'eastus2'
Creare un bilanciamento del carico interno
In questa sezione vengono create una rete virtuale e una Azure Load Balancer interna.
Rete virtuale
In questa sezione si creano la rete virtuale e la subnet che ospiteranno l'istanza di Load Balancer usata per accedere al servizio Collegamento privato.
- Creare una rete virtuale con New-AzVirtualNetwork.
## Create backend subnet config ##
$subnet = @{
Name = 'subnet-1'
AddressPrefix = '10.0.0.0/24'
}
$subnetConfig = New-AzVirtualNetworkSubnetConfig @subnet
## Create the virtual network ##
$net = @{
Name = 'vnet-1'
ResourceGroupName = 'test-rg'
Location = 'eastus2'
AddressPrefix = '10.0.0.0/16'
Subnet = $subnetConfig
}
$vnet = New-AzVirtualNetwork @net
Creare un servizio di bilanciamento del carico standard
Questa sezione descrive dettagliatamente come creare e configurare i componenti seguenti del servizio di bilanciamento del carico:
Creare un IP front-end con New-AzLoadBalancerFrontendIpConfig per il pool di indirizzi IP front-end. Questo IP riceve il traffico in ingresso nel servizio di bilanciamento del carico
Creare un pool di indirizzi back-end con New-AzLoadBalancerBackendAddressPoolConfig per il traffico inviato dal front-end del servizio di bilanciamento del carico. Questo pool è quello in cui vengono distribuite le macchine virtuali back-end.
Usare Add-AzLoadBalancerProbeConfig per creare un probe di integrità che determina l'integrità delle istanze di VM back-end.
Usare Add-AzLoadBalancerRuleConfig per creare una regola di bilanciamento del carico che definisce come viene distribuito il traffico alle VM.
Creare un servizio di bilanciamento del carico pubblico con New-AzLoadBalancer.
## Place virtual network created in previous step into a variable. ##
$vnet = Get-AzVirtualNetwork -Name 'vnet-1' -ResourceGroupName 'test-rg'
## Create load balancer frontend configuration and place in variable. ##
$lbip = @{
Name = 'frontend'
PrivateIpAddress = '10.0.0.4'
SubnetId = $vnet.subnets[0].Id
}
$feip = New-AzLoadBalancerFrontendIpConfig @lbip
## Create backend address pool configuration and place in variable. ##
$bepool = New-AzLoadBalancerBackendAddressPoolConfig -Name 'backend-pool'
## Create the health probe and place in variable. ##
$probe = @{
Name = 'health-probe'
Protocol = 'http'
Port = '80'
IntervalInSeconds = '360'
ProbeCount = '5'
RequestPath = '/'
}
$healthprobe = New-AzLoadBalancerProbeConfig @probe
## Create the load balancer rule and place in variable. ##
$lbrule = @{
Name = 'http-rule'
Protocol = 'tcp'
FrontendPort = '80'
BackendPort = '80'
IdleTimeoutInMinutes = '15'
FrontendIpConfiguration = $feip
BackendAddressPool = $bePool
}
$rule = New-AzLoadBalancerRuleConfig @lbrule -EnableTcpReset
## Create the load balancer resource. ##
$loadbalancer = @{
ResourceGroupName = 'test-rg'
Name = 'load-balancer'
Location = 'eastus2'
Sku = 'Standard'
FrontendIpConfiguration = $feip
BackendAddressPool = $bePool
LoadBalancingRule = $rule
Probe = $healthprobe
}
New-AzLoadBalancer @loadbalancer
Disabilitare i criteri di rete
Prima di poter creare un servizio di collegamento privato nella rete virtuale, è necessario disabilitare l'impostazione privateLinkServiceNetworkPolicies
.
- Disabilitare i criteri di rete con Set-AzVirtualNetwork.
## Place the subnet name into a variable. ##
$subnet = 'subnet-1'
## Place the virtual network configuration into a variable. ##
$net = @{
Name = 'vnet-1'
ResourceGroupName = 'test-rg'
}
$vnet = Get-AzVirtualNetwork @net
## Set the policy as disabled on the virtual network. ##
($vnet | Select -ExpandProperty subnets | Where-Object {$_.Name -eq $subnet}).privateLinkServiceNetworkPolicies = "Disabled"
## Save the configuration changes to the virtual network. ##
$vnet | Set-AzVirtualNetwork
Creare un servizio Collegamento privato
In questa sezione creare un servizio di collegamento privato che usa il Azure Load Balancer Standard creato nel passaggio precedente.
Creare la configurazione IP del servizio di collegamento privato con New-AzPrivateLinkServiceIpConfig.
Creare il servizio collegamento privato con New-AzPrivateLinkService.
## Place the virtual network into a variable. ##
$vnet = Get-AzVirtualNetwork -Name 'vnet-1' -ResourceGroupName 'test-rg'
## Create the IP configuration for the private link service. ##
$ipsettings = @{
Name = 'ipconfig-1'
PrivateIpAddress = '10.0.0.5'
Subnet = $vnet.subnets[0]
}
$ipconfig = New-AzPrivateLinkServiceIpConfig @ipsettings
## Place the load balancer frontend configuration into a variable. ##
$par = @{
Name = 'load-balancer'
ResourceGroupName = 'test-rg'
}
$fe = Get-AzLoadBalancer @par | Get-AzLoadBalancerFrontendIpConfig
## Create the private link service for the load balancer. ##
$privlinksettings = @{
Name = 'private-link-service'
ResourceGroupName = 'test-rg'
Location = 'eastus2'
LoadBalancerFrontendIpConfiguration = $fe
IpConfiguration = $ipconfig
}
New-AzPrivateLinkService @privlinksettings
Il servizio di collegamento privato viene creato e può ricevere traffico. Per visualizzare i flussi di traffico, configurare l'applicazione dietro il servizio di bilanciamento del carico standard.
Creare un endpoint privato
In questa sezione viene eseguito il mapping del servizio di collegamento privato a un endpoint privato. Una rete virtuale contiene l'endpoint privato per il servizio di collegamento privato. Questa rete virtuale contiene le risorse che accedono al servizio collegamento privato.
Creare una rete virtuale dell'endpoint privato
- Creare una rete virtuale con New-AzVirtualNetwork.
## Create backend subnet config ##
$subnet = @{
Name = 'subnet-pe'
AddressPrefix = '10.1.0.0/24'
}
$subnetConfig = New-AzVirtualNetworkSubnetConfig @subnet
## Create the virtual network ##
$net = @{
Name = 'vnet-pe'
ResourceGroupName = 'test-rg'
Location = 'eastus2'
AddressPrefix = '10.1.0.0/16'
Subnet = $subnetConfig
}
$vnetpe = New-AzVirtualNetwork @net
Creare un endpoint e una connessione
Usare Get-AzPrivateLinkService per inserire la configurazione del servizio di collegamento privato creato in anticipo in una variabile per usarla successivamente.
Usare New-AzPrivateLinkServiceConnection per creare la configurazione della connessione.
Usare New-AzPrivateEndpoint per creare l'endpoint.
## Place the private link service configuration into variable. ##
$par1 = @{
Name = 'private-link-service'
ResourceGroupName = 'test-rg'
}
$pls = Get-AzPrivateLinkService @par1
## Create the private link configuration and place in variable. ##
$par2 = @{
Name = 'connection-1'
PrivateLinkServiceId = $pls.Id
}
$plsConnection = New-AzPrivateLinkServiceConnection @par2
## Place the virtual network into a variable. ##
$par3 = @{
Name = 'vnet-pe'
ResourceGroupName = 'test-rg'
}
$vnetpe = Get-AzVirtualNetwork @par3
## Create private endpoint ##
$par4 = @{
Name = 'private-endpoint'
ResourceGroupName = 'test-rg'
Location = 'eastus2'
Subnet = $vnetpe.subnets[0]
PrivateLinkServiceConnection = $plsConnection
}
New-AzPrivateEndpoint @par4 -ByManualRequest
Approvare la connessione all'endpoint privato
In questa sezione si approva la connessione creata nei passaggi precedenti.
- Usare Approve-AzPrivateEndpointConnection per approvare la connessione.
## Place the private link service configuration into variable. ##
$par1 = @{
Name = 'private-link-service'
ResourceGroupName = 'test-rg'
}
$pls = Get-AzPrivateLinkService @par1
$par2 = @{
Name = $pls.PrivateEndpointConnections[0].Name
ServiceName = 'private-link-service'
ResourceGroupName = 'test-rg'
Description = 'Approved'
PrivateLinkResourceType = 'Microsoft.Network/privateLinkServices'
}
Approve-AzPrivateEndpointConnection @par2
Indirizzo IP dell'endpoint privato
In questa sezione si trova l'indirizzo IP dell'endpoint privato che corrisponde al servizio di bilanciamento del carico e al servizio di collegamento privato.
- Usare Get-AzPrivateEndpoint per recuperare l'indirizzo IP.
## Get private endpoint and the IP address and place in a variable for display. ##
$par1 = @{
Name = 'private-endpoint'
ResourceGroupName = 'test-rg'
ExpandResource = 'networkinterfaces'
}
$pe = Get-AzPrivateEndpoint @par1
## Display the IP address by expanding the variable. ##
$pe.NetworkInterfaces[0].IpConfigurations[0].PrivateIpAddress
❯ $pe.NetworkInterfaces[0].IpConfigurations[0].PrivateIpAddress
10.1.0.4
Pulire le risorse
Quando non servono più, è possibile usare il comando Remove-AzResourceGroup per rimuovere il gruppo di risorse, il servizio di bilanciamento del carico e le risorse rimanenti.
Remove-AzResourceGroup -Name 'test-rg'
Passaggi successivi
In questo argomento di avvio rapido:
Sono state create una rete virtuale e un'istanza interna di Azure Load Balancer.
È stato creato un servizio Collegamento privato
Per altre informazioni sull'endpoint privato di Azure, passare a: