Configurare endpoint privati per Griglia di eventi di Azure argomenti o domini personalizzati
È possibile usare endpoint privati per consentire l'ingresso di eventi direttamente dalla rete virtuale agli argomenti e ai domini personalizzati in modo sicuro tramite un collegamento privato senza passare attraverso la rete Internet pubblica. L'endpoint privato usa un indirizzo IP dallo spazio indirizzi della rete virtuale per l'argomento o il dominio personalizzato. Per altre informazioni concettuali, vedere Sicurezza di rete.
Questo articolo descrive come configurare endpoint privati per argomenti o domini personalizzati.
Nota
Attualmente, gli endpoint privati non sono supportati per gli argomenti di sistema.
Usare il portale di Azure
Questa sezione illustra come usare il portale di Azure per creare un endpoint privato per un argomento o un dominio.
Nota
I passaggi illustrati in questa sezione sono principalmente per argomenti personalizzati. È possibile usare passaggi simili per creare endpoint privati per i domini.
Quando si crea un nuovo argomento
Questa sezione illustra come abilitare l'accesso alla rete privata per un argomento di Griglia di eventi o un dominio. Per istruzioni dettagliate sulla creazione di un nuovo argomento, vedere Creare un argomento personalizzato.
Nella pagina Informazioni di base della creazione guidata argomento selezionare Avanti: Rete nella parte inferiore della pagina dopo aver compilato i campi obbligatori.
Per consentire l'accesso all'argomento di Griglia di eventi tramite un endpoint privato, selezionare l'opzione Accesso privato .
Vedere la sezione successiva per i passaggi per aggiungere un endpoint privato.
Per un argomento esistente
Accedere al portale di Azure e passare all'argomento o al dominio.
Passare alla scheda Rete della pagina dell'argomento. Nella scheda Accesso pubblico selezionare Solo endpoint privati.
Passare alla scheda Connessioni endpoint privato e quindi selezionare + Endpoint privato sulla barra degli strumenti.
Nella pagina Informazioni di base seguire questa procedura:
Selezionare una sottoscrizione di Azure in cui si vuole creare l'endpoint privato.
Selezionare un gruppo di risorse di Azure per l'endpoint privato.
Immettere un nome per l'endpoint.
Aggiornare il nome per l'interfaccia di rete , se necessario.
Selezionare l'area per l'endpoint. L'endpoint privato deve trovarsi nella stessa area della rete virtuale, ma può trovarsi in un'area diversa dalla risorsa collegamento privato (in questo esempio, un argomento di Griglia di eventi).
Selezionare quindi il pulsante Avanti: Risorsa > nella parte inferiore della pagina.
Nella pagina Risorsa seguire questa procedura, verificare che l'argomento sia selezionato per Sotto-risorsa di destinazione e quindi selezionare Avanti: Rete virtuale > pulsante nella parte inferiore della pagina.
Nella pagina Rete virtuale selezionare la subnet in una rete virtuale in cui si vuole distribuire l'endpoint privato.
Selezionare una rete virtuale. Nell'elenco a discesa sono elencate solo le reti virtuali nella sottoscrizione e nella località attualmente selezionate.
Selezionare una subnet nella rete virtuale selezionata.
Specificare se si vuole allocare l'indirizzo IP in modo statico o dinamico.
Selezionare un gruppo di sicurezza delle applicazioni esistente o crearne uno e quindi associarsi all'endpoint privato.
Selezionare Avanti: pulsante DNS > nella parte inferiore della pagina.
Nella pagina DNS selezionare se si vuole che l'endpoint privato sia integrato con una zona DNS privata e quindi selezionare Avanti: Tag nella parte inferiore della pagina.
Nella pagina Tag creare i tag (nomi e valori) da associare alla risorsa endpoint privato. Selezionare quindi il pulsante Rivedi e crea nella parte inferiore della pagina.
In Rivedi e crea rivedere tutte le impostazioni e selezionare Crea per creare l'endpoint privato.
Gestire una connessione di collegamento privato
Quando si crea un endpoint privato, la connessione deve essere approvata. Se la risorsa per cui si sta creando un endpoint privato si trova nella propria directory, è possibile approvare la richiesta di connessione purché si abbiano autorizzazioni sufficienti. Se ci si sta connettendo a una risorsa di Azure in un'altra directory, è necessario attendere che il proprietario della risorsa approvi la richiesta di connessione.
Sono disponibili quattro stati di provisioning:
Azione del servizio | Stato dell'endpoint privato del consumer del servizio | Descrizione |
---|---|---|
nessuno | In sospeso | La connessione viene creata manualmente ed è in attesa di approvazione dal proprietario della risorsa collegamento privato. |
Approvazione | Approved | La connessione è stata approvata automaticamente o manualmente ed è pronta per essere usata. |
Rifiuto | Rifiutato | La connessione è stata rifiutata dal proprietario della risorsa di collegamento privato. |
Rimuovere | Disconnesso | La connessione è stata rimossa dal proprietario della risorsa di collegamento privato, l'endpoint privato diventa informativo e deve essere eliminato per la pulizia. |
Come gestire una connessione endpoint privato
Le sezioni seguenti illustrano come approvare o rifiutare una connessione endpoint privato.
- Accedere al portale di Azure.
- Nella barra di ricerca digitare argomenti di Griglia di eventi o domini di Griglia di eventi.
- Selezionare l'argomento o il dominio da gestire.
- Selezionare la scheda Rete.
- Se sono presenti connessioni in sospeso, verrà visualizzata una connessione elencata con In sospeso nello stato di provisioning.
Per approvare un endpoint privato
È possibile approvare un endpoint privato nello stato in sospeso. Per approvare, seguire questa procedura:
Nota
I passaggi illustrati in questa sezione sono principalmente per gli argomenti. È possibile usare passaggi simili per approvare gli endpoint privati per i domini.
Selezionare l'endpoint privato da approvare e selezionare Approva sulla barra degli strumenti.
Nella finestra di dialogo Approva connessione immettere un commento (facoltativo) e selezionare Sì.
Verificare che lo stato dell'endpoint sia approvato.
Per rifiutare un endpoint privato
È possibile rifiutare un endpoint privato nello stato in sospeso o approvato. Per rifiutare, seguire questa procedura:
Nota
I passaggi illustrati in questa sezione sono relativi agli argomenti. È possibile usare passaggi simili per rifiutare gli endpoint privati per i domini.
Selezionare l'endpoint privato da rifiutare e selezionare Rifiuta sulla barra degli strumenti.
Nella finestra di dialogo Rifiuta connessione immettere un commento (facoltativo) e selezionare Sì.
Verificare che lo stato dell'endpoint venga visualizzato come Rifiutato.
Nota
Non è possibile approvare un endpoint privato nel portale di Azure una volta rifiutato.
Utilizzare l'interfaccia della riga di comando di Azure
Per creare un endpoint privato, usare il metodo az network private-endpoint create , come illustrato nell'esempio seguente:
az network private-endpoint create \
--resource-group <RESOURCE GROUP NAME> \
--name <PRIVATE ENDPOINT NAME> \
--vnet-name <VIRTUAL NETWORK NAME> \
--subnet <SUBNET NAME> \
--private-connection-resource-id "/subscriptions/<SUBSCRIPTION ID>/resourceGroups/<RESOURCE GROUP NAME>/providers/Microsoft.EventGrid/topics/<TOPIC NAME>" \
--connection-name <PRIVATE LINK SERVICE CONNECTION NAME> \
--location <LOCATION> \
--group-ids topic
Per le descrizioni dei parametri usati nell'esempio, vedere la documentazione per az network private-endpoint create. Alcuni punti da notare in questo esempio sono:
- Per
private-connection-resource-id
, specificare l'ID risorsa dell'argomento o del dominio. Nell'esempio precedente viene usato il tipo: argomento. - per
group-ids
, specificaretopic
odomain
. Nell'esempiotopic
precedente viene usato.
Per eliminare un endpoint privato, usare il metodo az network private-endpoint delete , come illustrato nell'esempio seguente:
az network private-endpoint delete --resource-group <RESOURCE GROUP NAME> --name <PRIVATE ENDPOINT NAME>
Nota
I passaggi illustrati in questa sezione sono per gli argomenti. È possibile usare passaggi simili per creare endpoint privati per i domini.
Prerequisiti
Aggiornare l'estensione Griglia di eventi di Azure per l'interfaccia della riga di comando eseguendo il comando seguente:
az extension update -n eventgrid
Se l'estensione non è installata, eseguire il comando seguente per installarlo:
az extension add -n eventgrid
Creare un endpoint privato
Per creare un endpoint privato, usare il metodo az network private-endpoint create , come illustrato nell'esempio seguente:
az network private-endpoint create \
--resource-group <RESOURCE GROUP NAME> \
--name <PRIVATE ENDPOINT NAME> \
--vnet-name <VIRTUAL NETWORK NAME> \
--subnet <SUBNET NAME> \
--private-connection-resource-id "/subscriptions/<SUBSCRIPTION ID>/resourceGroups/<RESOURCE GROUP NAME>/providers/Microsoft.EventGrid/topics/<TOPIC NAME>" \
--connection-name <PRIVATE LINK SERVICE CONNECTION NAME> \
--location <LOCATION> \
--group-ids topic
Per le descrizioni dei parametri usati nell'esempio, vedere la documentazione per az network private-endpoint create. Alcuni punti da notare in questo esempio sono:
- Per
private-connection-resource-id
, specificare l'ID risorsa dell'argomento o del dominio. Nell'esempio precedente viene usato il tipo: argomento. - per
group-ids
, specificaretopic
odomain
. Nell'esempiotopic
precedente viene usato.
Per eliminare un endpoint privato, usare il metodo az network private-endpoint delete , come illustrato nell'esempio seguente:
az network private-endpoint delete --resource-group <RESOURCE GROUP NAME> --name <PRIVATE ENDPOINT NAME>
Nota
I passaggi illustrati in questa sezione sono per gli argomenti. È possibile usare passaggi simili per creare endpoint privati per i domini.
Script di esempio
Ecco uno script di esempio che crea le risorse di Azure seguenti:
- Resource group
- Rete virtuale
- Subnet nella rete virtuale
- argomento Griglia di eventi di Azure
- Endpoint privato per l'argomento
Nota
I passaggi illustrati in questa sezione sono per gli argomenti. È possibile usare passaggi simili per creare endpoint privati per i domini.
subscriptionID="<AZURE SUBSCRIPTION ID>"
resourceGroupName="<RESOURCE GROUP NAME>"
location="<LOCATION>"
vNetName="<VIRTUAL NETWORK NAME>"
subNetName="<SUBNET NAME>"
topicName = "<TOPIC NAME>"
connectionName="<ENDPOINT CONNECTION NAME>"
endpointName=<ENDPOINT NAME>
# resource ID of the topic. replace <SUBSCRIPTION ID>, <RESOURCE GROUP NAME>, and <TOPIC NAME>
# topicResourceID="/subscriptions/<SUBSCRIPTION ID>/resourceGroups/<RESOURCE GROUP NAME>/providers/Microsoft.EventGrid/topics/<TOPIC NAME>"
# select subscription
az account set --subscription $subscriptionID
# create resource group
az group create --name $resourceGroupName --location $location
# create vnet
az network vnet create \
--resource-group $resourceGroupName \
--name $vNetName \
--address-prefix 10.0.0.0/16
# create subnet
az network vnet subnet create \
--resource-group $resourceGroupName \
--vnet-name $vNetName \
--name $subNetName \
--address-prefixes 10.0.0.0/24
# disable private endpoint network policies for the subnet
az network vnet subnet update \
--resource-group $resourceGroupName \
--vnet-name $vNetName \
--name $subNetName \
--disable-private-endpoint-network-policies true
# create event grid topic. update <LOCATION>
az eventgrid topic create \
--resource-group $resourceGroupName \
--name $topicName \
--location $location
# verify that the topic was created.
az eventgrid topic show \
--resource-group $resourceGroupName \
--name $topicName
# create private endpoint for the topic you created
az network private-endpoint create \
--resource-group $resourceGroupName \
--name $endpointName \
--vnet-name $vNetName \
--subnet $subNetName \
--private-connection-resource-id $topicResourceID \
--connection-name $connectionName \
--location $location \
--group-ids topic
# get topic
az eventgrid topic show \
--resource-group $resourceGroupName \
--name $topicName
Approvare un endpoint privato
Il frammento di interfaccia della riga di comando di esempio seguente illustra come approvare una connessione endpoint privato.
az eventgrid topic private-endpoint-connection approve \
--resource-group $resourceGroupName \
--topic-name $topicName \
--name $endpointName \
--description "connection approved"
Rifiutare un endpoint privato
Il frammento di interfaccia della riga di comando di esempio seguente illustra come rifiutare una connessione endpoint privata.
az eventgrid topic private-endpoint-connection reject \
--resource-group $resourceGroupName \
--topic-name $topicName \
--name $endpointName \
--description "Connection rejected"
Disabilitare l'accesso alla rete pubblica
Per impostazione predefinita, l'accesso alla rete pubblica è abilitato per un argomento o un dominio di Griglia di eventi. Per consentire l'accesso solo tramite endpoint privati, disabilitare l'accesso alla rete pubblica eseguendo il comando seguente:
az eventgrid topic update \
--resource-group $resourceGroupName \
--name $topicName \
--public-network-access disabled
Usare PowerShell
Questa sezione illustra come creare un endpoint privato per un argomento o un dominio usando PowerShell. Ecco uno script di esempio con commenti.
# name of an Azure resource group to be created
$resourceGroupName = "contosorg"
# location where you want the resources to be created
$location ="eastus"
# name of the VNet to be created
$vnetName = "contosovnet"
# name of the subnet to be created in the VNet
$subnetName = "example-privatelinksubnet"
# name of the Event Grid topic to be created
$egridTopicName = "contosotopic"
# name of the private link service connection to be created
$privateLinkServiceConnectionName = "spegridplsconn"
# name of the private endpoint connection to be created
$privateEndpointConnectionName = "spegridpe11"
#
# create resource group
New-AzResourceGroup -Name $resourceGroupName -Location $location
# create virtual network
$virtualNetwork = New-AzVirtualNetwork `
-ResourceGroupName $resourceGroupName `
-Location $location `
-Name $vnetName `
-AddressPrefix 10.0.0.0/16
# create subnet with endpoint network policy disabled
$subnetConfig = Add-AzVirtualNetworkSubnetConfig `
-Name $subnetName `
-AddressPrefix 10.0.0.0/24 `
-PrivateEndpointNetworkPoliciesFlag "Disabled" `
-VirtualNetwork $virtualNetwork
# update virtual network
$virtualNetwork | Set-AzVirtualNetwork
# get virtual network (optional)
$virtualNetwork = Get-AzVirtualNetwork `
-ResourceGroupName $resourceGroupName `
-Name $vnetName
# create an Event Grid topic with public network access disabled.
$topic = New-AzEventGridTopic -ResourceGroupName $resourceGroupName -Name $egridTopicName -Location $location -PublicNetworkAccess disabled
# create a private link service connection to the Event Grid topic.
# For topics, set GroupId to 'topic'. For domains, it's 'domain'
$privateEndpointConnection = New-AzPrivateLinkServiceConnection `
-Name "privateLinkServiceConnectionName" `
-PrivateLinkServiceId $topic.id `
-GroupId "topic"
# get subnet info
$subnet = $virtualNetwork | Select -ExpandProperty subnets `
| Where-Object {$_.Name -eq $subnetName }
# now, you are ready to create a private endpoint
$privateEndpoint = New-AzPrivateEndpoint -ResourceGroupName $resourceGroupName `
-Name privateEndpointConnectionName `
-Location $location `
-Subnet $subnet `
-PrivateLinkServiceConnection $privateEndpointConnection
# verify that the endpoint is created
Get-AzPrivateEndpoint -ResourceGroupName $resourceGroupName -Name privateEndpointConnectionName
Approvare una connessione endpoint privato
Il frammento di codice di PowerShell di esempio seguente illustra come approvare un endpoint privato.
Nota
I passaggi illustrati in questa sezione sono per gli argomenti. È possibile usare passaggi simili per approvare gli endpoint privati per i domini.
# list all private endpoints for the topic
$topic = Get-AzEventGridTopic -ResourceGroup <RESOURCE GROUP NAME> - Name <TOPIC NAME>
$endpointList = Get-AzPrivateEndpointConnection -PrivateLinkResourceId $topic.Id
# filter the private endpoints using a name
$pseEndpoint = $endpointList | Where-Object { $_.Name.StartsWith('<MYENDPOINTNAME>') }
# approve the endpoint connection
Approve-AzPrivateEndpointConnection -ResourceId $pseEndpoint.Id
# get the endpoint connection to verify that it's approved
Get-AzPrivateEndpointConnection -ResourceId $pseEndpoint.Id
Rifiutare una connessione endpoint privato
Nell'esempio seguente viene illustrato come rifiutare un endpoint privato usando PowerShell. È possibile ottenere il GUID per l'endpoint privato dal risultato del comando GET precedente.
Nota
I passaggi illustrati in questa sezione sono per gli argomenti. È possibile usare passaggi simili per rifiutare gli endpoint privati per i domini.
# list all private endpoints for the topic
$topic = Get-AzEventGridTopic -ResourceGroup <RESOURCE GROUP NAME> - Name <TOPIC NAME>
$endpointList = Get-AzPrivateEndpointConnection -PrivateLinkResourceId $topic.Id
# filter the private endpoints using a name
$pseEndpoint = $endpointList | Where-Object { $_.Name.StartsWith('<MYENDPOINT>') }
# deny or reject the private endpoint connection
Deny-AzPrivateEndpointConnection -ResourceId $pseEndpoint.Id
# get the endpoint connection to verify that it's rejected
Get-AzPrivateEndpointConnection -ResourceId $pseEndpoint.Id
È possibile approvare la connessione anche dopo che è stata rifiutata tramite API. Se si usa portale di Azure, non è possibile approvare un endpoint rifiutato.
Passaggi successivi
- Per informazioni su come configurare le impostazioni del firewall IP, vedere Configurare il firewall IP per Griglia di eventi di Azure argomenti o domini.
- Per risolvere i problemi di connettività di rete, vedere Risolvere i problemi di connettività di rete