Configurer des points de terminaison privés pour les rubriques ou les domaines personnalisés Azure Event Grid

Vous pouvez utiliser des points de terminaison privés pour autoriser l’entrée sécurisée d’événements directement à partir de votre réseau virtuel vers vos rubriques et domaines personnalisés via une liaison privée, sans passer par le réseau Internet public. Le point de terminaison privé utilise une adresse IP de l’espace d’adressage du réseau virtuel pour votre rubrique ou domaine personnalisé. Pour plus d’informations conceptuelles, consultez Sécurité du réseau.

Cet article explique comment configurer des points de terminaison privés pour les rubriques ou les domaines personnalisés.

Notes

Actuellement, les points de terminaison privés ne sont pas pris en charge pour les rubriques système.

Utiliser le portail Azure

Cette section vous montre comment utiliser le Portail Azure pour créer un point de terminaison privé pour une rubrique ou un domaine.

Notes

Les étapes présentées dans cette section concernent principalement les rubriques personnalisés. Vous pouvez utiliser des étapes similaires pour créer des points de terminaison privés pour des domaines.

Lors de la création d’une rubrique

Cette section vous montre comment activer l’accès réseau privé pour une rubrique Event Grid ou un domaine. Pour obtenir des instructions pas à pas sur la création d’une rubrique, consultez Créer une rubrique personnalisée.

  1. Sur la page Informations de base de l’Assistant Créer une rubrique, sélectionnez Suivant : Mise en réseau au bas de la page après avoir renseigné les champs obligatoires.

    Capture d’écran montrant la sélection du lien Mise en réseau au bas de la page.

  2. Pour autoriser l’accès à la rubrique Event Grid via un point de terminaison privé, sélectionnez l’option Accès privé.

    Capture d’écran montrant la sélection de l’option Accès privé sur la page Mise en réseau de l’Assistant Création d’une rubrique.

  3. Consultez la section suivante pour connaître les étapes à suivre pour ajouter un point de terminaison privé.

Pour une rubrique existante

  1. Connectez-vous au Portail Azure et accédez à votre rubrique ou domaine.

  2. Basculez vers l’onglet Mise en réseau de votre page de rubrique. Sous l’onglet Accès public, sélectionnez Points de terminaison privés uniquement.

    Capture d’écran montrant la page Accès au réseau public avec l’option Points de terminaison privés uniquement sélectionnée.

  3. Basculez sur l’onglet Connexions de point de terminaison privé, puis sélectionnez + Point de terminaison privé dans la barre d’outils.

    Capture d’écran montrant la sélection du lien + Point de terminaison privé sous l’onglet Connexion de point de terminaison privé.

  4. Dans la page Informations de base, suivez ces étapes :

    1. Sélectionnez un abonnement Azure où créer le point de terminaison privé.

    2. Sélectionnez un groupe de ressources Azure pour le point de terminaison privé.

    3. Entrez un nom pour le point de terminaison.

    4. Mettez à jour le nom de l’interface réseau si nécessaire.

    5. Sélectionnez la région pour le point de terminaison. La région de votre point de terminaison privé doit être la même que celle de votre réseau virtuel, mais elle peut être différente de celle de la ressource de lien privé (en l’occurrence, une rubrique Event Grid).

    6. Sélectionnez ensuite le bouton Suivant : Ressource > au bas de la page.

      Capture d’écran représentant la page De base dans l’Assistant Créer un point de terminaison privé.

  5. Dans la page Ressource, procédez comme suit, vérifiez que la rubrique est sélectionnée pour Sous-ressource cible, puis sélectionnez le bouton Suivant : Réseau virtuel > en bas de la page.

    Capture d’écran montrant la page Ressource dans l’Assistant Créer un point de terminaison privé.

  6. Dans la page Réseau virtuel, vous sélectionnez le sous-réseau dans un réseau virtuel sur lequel vous voulez déployer le point de terminaison privé.

    1. Sélectionnez un réseau virtuel. Seuls les réseaux virtuels dans l’abonnement et l’emplacement sélectionnés sont présents dans la liste déroulante.

    2. Sélectionnez un sous-réseau dans le réseau virtuel que vous avez sélectionné.

    3. Spécifiez si vous souhaitez allouer l’adresse IP de manière statique ou dynamique.

    4. Sélectionnez un groupe de sécurité d’application existant ou créez-en un, puis associez-le au point de terminaison privé.

    5. Sélectionnez le bouton Suivant : DNS> au bas de la page.

      Capture d’écran représentant la page Mise en réseau dans l’Assistant Créer un point de terminaison privé.

  7. Dans la page DNS, indiquez si vous voulez que le point de terminaison privé soit intégré à une zone DNS privée, puis sélectionnez Suivant : Étiquettes au bas de la page.

    Capture d’écran représentant la page DNS dans l’Assistant Créer un point de terminaison privé.

  8. Dans la page Étiquettes, créez les étiquettes (noms et valeurs) à associer à la ressource de point de terminaison privé. Ensuite, sélectionnez le bouton Vérifier + créer en bas de la page.

  9. Dans la page Vérifier + créer, examinez tous les paramètres et sélectionnez Créer pour créer le point de terminaison privé.

Quand vous créez un point de terminaison privé, la connexion doit être approuvée. Si la ressource pour laquelle vous créez un point de terminaison privé se trouve dans votre répertoire, vous pouvez approuver la requête de connexion à condition d’avoir les autorisations nécessaires. Si vous vous connectez à une ressource Azure dans un autre répertoire, vous devez attendre que le propriétaire de cette ressource approuve votre requête de connexion.

Il existe quatre états de provisionnement :

Action de service État du point de terminaison privé de l’utilisateur du service Description
None Pending La connexion est créée manuellement et est en attente d’approbation du propriétaire de la ressource Private Link.
Approbation Approved La connexion a été approuvée automatiquement ou manuellement et est prête à être utilisée.
Rejeter Rejeté La connexion a été rejetée par le propriétaire de la ressource Private Link.
Supprimer Déconnecté La connexion a été supprimée par le propriétaire de la ressource Private Link, le point de terminaison privé devient donc informatif et doit être supprimé dans le cadre d’un nettoyage.

Comment gérer une connexion de point de terminaison privé

Les sections suivantes vous montrent comment approuver ou rejeter une connexion de point de terminaison privée.

  1. Connectez-vous au portail Azure.
  2. Dans la barre de recherche, tapez Rubriques Event Grid ou Domaines Event Grid.
  3. Sélectionnez la rubrique ou le domaine que vous souhaitez gérer.
  4. Sélectionnez l’onglet Mise en réseau.
  5. Si une connexion est en attente, celle-ci présente l’état d’approvisionnement En attente.

Pour approuver un point de terminaison privé

Vous pouvez approuver un point de terminaison privé qui se trouve dans l’état en attente. Pour approuver, procédez comme suit :

Notes

Les étapes présentées dans cette section concernent principalement les rubriques. Vous pouvez utiliser des étapes similaires pour approuver des points de terminaison privés pour des domaines.

  1. Sélectionnez le point de terminaison privé que vous souhaitez approuver, puis sélectionnez Approuver dans la barre d’outils.

    Point de terminaison privé - état en attente

  2. Dans la boîte de dialogue Approuver la connexion, ajoutez un commentaire (facultatif) et sélectionnez Oui.

    Point de terminaison privé – approuver

  3. Vérifiez que vous voyez l’état du point de terminaison en tant que Approuvé.

    Point de terminaison privé – état approuvé

Pour rejeter un point de terminaison privé

Vous pouvez rejeter un point de terminaison privé qui se trouve dans l’état en attente ou approuvé. Pour rejeter, procédez comme suit :

Notes

Les étapes présentées dans cette section concernent les rubriques. Vous pouvez utiliser des étapes similaires pour rejeter des points de terminaison privés pour des domaines.

  1. Sélectionnez le point de terminaison privé que vous souhaitez rejeter, puis sélectionnez Rejeter dans la barre d’outils.

    Capture d'écran montrant « Réseau - Connexions des points de terminaison privés » avec l'option « Rejeter » sélectionnée

  2. Dans la boîte de dialogue Rejeter la connexion, ajoutez un commentaire (facultatif) et sélectionnez Oui.

    Point de terminaison privé – rejeter

  3. Vérifiez que vous voyez l’état du point de terminaison en tant que Rejeté.

    Point de terminaison privé – état rejeté

    Notes

    Vous ne pouvez pas approuver un point de terminaison privé dans le Portail Azure une fois qu’il est rejeté.

Utiliser l’interface de ligne de commande Microsoft Azure

Pour créer un point de terminaison privé, utilisez la méthode az network private-endpoint create, comme indiqué dans l’exemple suivant :

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

Pour obtenir une description des paramètres utilisés dans l’exemple, consultez la documentation relative à az network private-endpoint create. Voici quelques points à noter dans cet exemple :

  • Pour private-connection-resource-id, spécifiez l’ID de ressource de la rubrique ou du domaine. L’exemple précédent utilise le type : rubrique.
  • pour group-ids, spécifiez topic ou domain. Dans l’exemple précédent, topic est utilisé.

Pour supprimer un point de terminaison privé, utilisez la méthode az network private-endpoint create, comme indiqué dans l’exemple suivant :

az network private-endpoint delete --resource-group <RESOURECE GROUP NAME> --name <PRIVATE ENDPOINT NAME>

Notes

Les étapes présentées dans cette section concernent les rubriques. Vous pouvez utiliser des étapes similaires pour créer des points de terminaison privés pour des domaines.

Prérequis

Mettez à jour l’extension Azure Event Grid pour Azure CLI en exécutant la commande suivante :

az extension update -n eventgrid

Si l’extension n’est pas installée, exécutez la commande suivante pour l’installer :

az extension add -n eventgrid

Créer un Private Endpoint

Pour créer un point de terminaison privé, utilisez la méthode az network private-endpoint create, comme indiqué dans l’exemple suivant :

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

Pour obtenir une description des paramètres utilisés dans l’exemple, consultez la documentation relative à az network private-endpoint create. Voici quelques points à noter dans cet exemple :

  • Pour private-connection-resource-id, spécifiez l’ID de ressource de la rubrique ou du domaine. L’exemple précédent utilise le type : rubrique.
  • pour group-ids, spécifiez topic ou domain. Dans l’exemple précédent, topic est utilisé.

Pour supprimer un point de terminaison privé, utilisez la méthode az network private-endpoint create, comme indiqué dans l’exemple suivant :

az network private-endpoint delete --resource-group <RESOURECE GROUP NAME> --name <PRIVATE ENDPOINT NAME>

Notes

Les étapes présentées dans cette section concernent les rubriques. Vous pouvez utiliser des étapes similaires pour créer des points de terminaison privés pour des domaines.

Exemple de script

Voici un exemple de script qui crée les ressources Azure suivantes :

  • Resource group
  • Réseau virtuel
  • Sous-réseau dans le réseau virtuel
  • Rubrique Azure Event Grid
  • Point de terminaison privé pour la rubrique

Notes

Les étapes présentées dans cette section concernent les rubriques. Vous pouvez utiliser des étapes similaires pour créer des points de terminaison privés pour des domaines.

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

Approuver un point de terminaison privé

L’exemple d’extrait de code CLI suivant vous montre comment approuver une connexion de point de terminaison privé.

az eventgrid topic private-endpoint-connection approve \
    --resource-group $resourceGroupName \
    --topic-name $topicName \
    --name  $endpointName \
    --description "connection approved"

Rejeter un point de terminaison privé

L’exemple d’extrait de code CLI suivant vous montre comment rejeter une connexion de point de terminaison privé.

az eventgrid topic private-endpoint-connection reject \
    --resource-group $resourceGroupName \
    --topic-name $topicName \
    --name $endpointName \
    --description "Connection rejected"

Désactiver l’accès au réseau public

Par défaut, l’accès au réseau public est activé pour une rubrique ou un domaine Event Grid. Pour autoriser l’accès via des points de terminaison privés uniquement, désactivez l’accès au réseau public en exécutant la commande suivante :

az eventgrid topic update \
    --resource-group $resourceGroupName \
    --name $topicName \
    --public-network-access disabled

Utiliser PowerShell

Cette section vous montre comment créer un point de terminaison privé pour une rubrique ou un domaine à l’aide de PowerShell. Voici un exemple de script avec des commentaires.


# 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  

Approuver une connexion de point de terminaison privé

L’exemple d’extrait de code PowerShell suivant vous montre comment approuver un point de terminaison privé.

Notes

Les étapes présentées dans cette section concernent les rubriques. Vous pouvez utiliser des étapes similaires pour approuver des points de terminaison privés pour des domaines.


# 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

Rejeter une connexion de point de terminaison privé

L’exemple suivant montre comment rejeter un point de terminaison privé à l’aide de PowerShell. Vous pouvez obtenir le GUID du point de terminaison privé à partir du résultat de la commande GET précédente.

Notes

Les étapes présentées dans cette section concernent les rubriques. Vous pouvez utiliser des étapes similaires pour rejeter des points de terminaison privés pour des domaines.

# 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

Vous pouvez approuver la connexion même après qu’elle a été rejetée via l’API. Si vous utilisez le Portail Azure, vous ne pouvez pas approuver un point de terminaison qui a été rejeté.

Étapes suivantes