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.

  1. Nella pagina Informazioni di base della creazione guidata argomento selezionare Avanti: Rete nella parte inferiore della pagina dopo aver compilato i campi obbligatori.

    Immagine che mostra la selezione del collegamento Rete nella parte inferiore della pagina.

  2. Per consentire l'accesso all'argomento di Griglia di eventi tramite un endpoint privato, selezionare l'opzione Accesso privato .

    Immagine che mostra la selezione dell'opzione Accesso privato nella pagina Rete della procedura guidata Crea argomento.

  3. Vedere la sezione successiva per i passaggi per aggiungere un endpoint privato.

Per un argomento esistente

  1. Accedere al portale di Azure e passare all'argomento o al dominio.

  2. Passare alla scheda Rete della pagina dell'argomento. Nella scheda Accesso pubblico selezionare Solo endpoint privati.

    Screenshot che mostra la pagina Accesso alla rete pubblica con l'opzione Solo endpoint privati selezionata.

  3. Passare alla scheda Connessioni endpoint privato e quindi selezionare + Endpoint privato sulla barra degli strumenti.

    Screenshot che mostra la selezione del collegamento + Endpoint privato nella scheda Connessione endpoint privato.

  4. Nella pagina Informazioni di base seguire questa procedura:

    1. Selezionare una sottoscrizione di Azure in cui si vuole creare l'endpoint privato.

    2. Selezionare un gruppo di risorse di Azure per l'endpoint privato.

    3. Immettere un nome per l'endpoint.

    4. Aggiornare il nome per l'interfaccia di rete , se necessario.

    5. 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).

    6. Selezionare quindi il pulsante Avanti: Risorsa > nella parte inferiore della pagina.

      Screenshot che mostra la pagina Informazioni di base della creazione guidata di un endpoint privato.

  5. 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.

    Screenshot che mostra la pagina Risorsa della procedura guidata Crea un endpoint privato.

  6. Nella pagina Rete virtuale selezionare la subnet in una rete virtuale in cui si vuole distribuire l'endpoint privato.

    1. Selezionare una rete virtuale. Nell'elenco a discesa sono elencate solo le reti virtuali nella sottoscrizione e nella località attualmente selezionate.

    2. Selezionare una subnet nella rete virtuale selezionata.

    3. Specificare se si vuole allocare l'indirizzo IP in modo statico o dinamico.

    4. Selezionare un gruppo di sicurezza delle applicazioni esistente o crearne uno e quindi associarsi all'endpoint privato.

    5. Selezionare Avanti: pulsante DNS > nella parte inferiore della pagina.

      Screenshot che mostra la pagina Rete della creazione guidata di un endpoint privato.

  7. 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.

    Screenshot che mostra la pagina DNS della procedura guidata Creazione di un endpoint privato.

  8. 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.

  9. In Rivedi e crea rivedere tutte le impostazioni e selezionare Crea per creare l'endpoint 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.

  1. Accedere al portale di Azure.
  2. Nella barra di ricerca digitare argomenti di Griglia di eventi o domini di Griglia di eventi.
  3. Selezionare l'argomento o il dominio da gestire.
  4. Selezionare la scheda Rete.
  5. 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.

  1. Selezionare l'endpoint privato da approvare e selezionare Approva sulla barra degli strumenti.

    Endpoint privato : stato in sospeso

  2. Nella finestra di dialogo Approva connessione immettere un commento (facoltativo) e selezionare .

    Endpoint privato : approvare

  3. Verificare che lo stato dell'endpoint sia approvato.

    Endpoint privato - stato 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.

  1. Selezionare l'endpoint privato da rifiutare e selezionare Rifiuta sulla barra degli strumenti.

    Screenshot che mostra l'opzione

  2. Nella finestra di dialogo Rifiuta connessione immettere un commento (facoltativo) e selezionare .

    Endpoint privato : rifiutare

  3. Verificare che lo stato dell'endpoint venga visualizzato come Rifiutato.

    Endpoint privato - Stato 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 <RESOURECE 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, specificare topic o domain. Nell'esempio topic 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 <RESOURECE 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 <RESOURECE 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, specificare topic o domain. Nell'esempio topic 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 <RESOURECE 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