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.

Remarque

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.

Remarque

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

Pour une nouvelle 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. Dans la page Informations de base de l’Assistant Création d’une rubrique , renseignez les champs requis, puis sélectionnez Suivant : Mise en réseau.

    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. Dans la section Connexions des points de terminaison privés, sélectionnez le bouton + Point de terminaison privé.

    Capture d’écran montrant le bouton Point de terminaison privé sur la page Créer une rubrique.

  4. Dans la page Créer un point de terminaison privé, procédez comme suit :

    1. Pour Nom, entrez un nom pour le point de terminaison privé.
    2. 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.
    3. Sélectionnez un sous-réseau dans le réseau virtuel que vous avez sélectionné.
    4. Indiquez si vous voulez que le point de terminaison privé soit intégré à une zone DNS privée.
    5. Cliquez sur OK.

    Capture d'écran montrant la page Créer un point de terminaison privé.

  5. Maintenant, sur la page Créer une rubrique, sélectionnez Réviser + créer en bas de la page.

  6. Dans la page Vérifier + créer, sélectionnez Créer.

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 Uniquement les points de terminaison privés.

    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 dans lequel vous souhaitez 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. Votre point de terminaison privé doit se trouver dans la même région que votre réseau virtuel, mais il peut se trouver dans une autre région que la ressource de liaison privée (dans cet exemple, une rubrique Event Grid).

    6. Sélectionnez Suivant : Ressource >.

      Capture d’écran montrant la page Généralités de l’assistant Créer un point de terminaison privé.

  5. Dans la page Ressource, vérifiez que la rubrique est sélectionnée pour la sous-ressource Cible, puis sélectionnez Suivant : Réseau virtuel >.

    Capture d’écran montrant la page « Ressource » de l’assistant de création d’un point de terminaison privé.

  6. Dans la page Réseau virtuel, sélectionnez le sous-réseau dans un virtual network où vous souhaitez 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 Suivant : DNS >.

      Capture d’écran montrant la page Réseau virtuel de l’assistant de création d’un point de terminaison privé.

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

    Capture d’écran montrant la page DNS de l’Assistant Création d’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 Vérifier + créer.

  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 maintenance État du point de terminaison privé de l’utilisateur du service Description
None En attente La connexion est créée manuellement et est en attente d’approbation du propriétaire de la ressource Private Link.
Approuver Approuvé 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, entrez des rubriques Event Grid ou des 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. S’il existe des connexions en attente, vous verrez une connexion répertoriée avec l’état de provisionnement 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 :

Remarque

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.

    Capture d’écran montrant une connexion de point de terminaison privé en attente sous l’onglet Mise en réseau.

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

    Capture d’écran montrant la boîte de dialogue Approuver la connexion avec un champ de commentaire et un bouton Oui.

  3. Vérifiez que l’état du point de terminaison s’affiche comme Approuvé.

    Capture d’écran montrant la connexion de point de terminaison privé avec l’é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 :

Remarque

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 l’onglet Connexions de point de terminaison privé avec le bouton Rejeter sélectionné.

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

    Capture d’écran montrant la boîte de dialogue Rejeter la connexion avec un champ de commentaire et le bouton Oui.

  3. Vérifiez que l’état du point de terminaison s’affiche comme Rejeté.

    Capture d’écran montrant la connexion de point de terminaison privé avec l’état Rejeté.

    Remarque

    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

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

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 <RESOURCE GROUP NAME> --name <PRIVATE ENDPOINT NAME>

Remarque

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 :

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

Remarque

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 la connexion à un point de terminaison privé

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

Remarque

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.

Remarque

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