Autoriser l’accès aux espaces de noms Azure Event Hubs via des points de terminaison privés

Le service Azure Private Link vous permet d’accéder aux services Azure (par exemple, Azure Event Hubs, Stockage Azure et Azure Cosmos DB) ainsi qu’aux services de partenaire ou de client hébergés par Azure via un point de terminaison privé dans votre réseau virtuel.

Un point de terminaison privé est une interface réseau qui vous permet de vous connecter de façon privée et sécurisée à un service basé sur Azure Private Link. Le point de terminaison privé utilise une adresse IP privée de votre réseau virtuel, plaçant de fait le service dans votre réseau virtuel. Sachant que l’ensemble du trafic à destination du service peut être routé via le point de terminaison privé, il n’y a aucun besoin de passerelles, d’appareils NAT, de connexions ExpressRoute ou VPN ou d’adresses IP publiques. Le trafic entre votre réseau virtuel et le service transite par le réseau principal de Microsoft, éliminant ainsi toute exposition à l’Internet public. Vous pouvez vous connecter à une instance d’une ressource Azure, ce qui vous donne le plus haut niveau de granularité en matière de contrôle d’accès.

Pour plus d’informations, consultez Qu’est-ce qu’Azure Private Link ?

Points importants

  • Cette fonctionnalité n’est pas prise en charge dans le niveau De base.
  • L’activation des points de terminaison privés peut empêcher d’autres services Azure d’interagir avec Event Hubs. Les demandes qui sont bloquées comprennent les demandes émanant d’autres services Azure, du portail Azure, des services de journalisation et de métriques, etc. En guise d’exception, vous pouvez autoriser l’accès aux ressources Event Hubs à partir de certains services approuvés, même lorsque les points de terminaison privés sont activés. Pour obtenir la liste des services approuvés, consultez Services approuvés.
  • Spécifiez au moins une règle d’adresse IP ou une règle de réseau virtuel pour l’espace de noms afin d’autoriser le trafic uniquement à partir des adresses IP ou du sous-réseau d’un réseau virtuel. S’il n’existe aucune règle d’adresse IP et de réseau virtuel, l’espace de noms est accessible via l’Internet public (à l’aide de la clé d’accès).

Ajouter un point de terminaison privé avec le portail Azure

Prérequis

Pour intégrer un espace de noms Event Hubs à Azure Private Link, vous avez besoin des entités ou autorisations suivantes :

  • Un espace de noms Event Hubs.
  • Un réseau virtuel Azure.
  • Un sous-réseau dans le réseau virtuel. Vous pouvez utiliser le sous-réseau par défaut.
  • Des autorisations de propriétaire ou de contributeur à la fois pour l’espace de noms et le réseau virtuel.

Votre point de terminaison privé et votre réseau virtuel doivent se trouver dans la même région. Au moment de sélectionner la région du point de terminaison privé sur le portail, les réseaux virtuels qui se trouvent dans cette région sont filtrés automatiquement. Votre espace de noms peut se trouver dans une autre région.

Votre point de terminaison privé utilise une adresse IP privée de votre réseau virtuel.

Configurer l’accès privé lors de la création d’un espace de noms

Lors de la création d’un espace de noms, vous pouvez autoriser l’accès public uniquement (depuis tous les réseaux) ou privé (uniquement via des points de terminaison privés) à l’espace de noms.

Si vous sélectionnez l’option Accès privé dans la page Mise en réseau de l’Assistant Création d’espace de noms, vous pouvez ajouter un point de terminaison privé sur la page en sélectionnant le bouton + Point de terminaison privé. Consultez la section suivante pour connaître les étapes détaillées de l’ajout d’un point de terminaison privé.

Capture d’écran de la page Mise en réseau de l’Assistant Création d’espaces de nom avec l’option Accès privé sélectionnée.

Configurer l’accès privé pour un espace de noms existant

Si vous avez déjà un espace de noms Event Hubs, vous pouvez créer une connexion de liaison privée en suivant ces étapes :

  1. Connectez-vous au portail Azure.

  2. Dans la barre de recherche, tapez event hubs.

  3. Dans la liste, sélectionnez l’espace de noms auquel vous voulez ajouter un point de terminaison privé.

  4. Dans la page Mise en réseau, pour Accès au réseau public, sélectionnez Désactivé si vous souhaitez que l’espace de noms soit accessible uniquement via des points de terminaison privés.

  5. Pour Autoriser les services Microsoft approuvés à contourner ce pare-feu, sélectionnez Oui si vous souhaitez autoriser les services Microsoft approuvés à contourner ce pare-feu.

    Capture d’écran de la page Mise en réseau avec l’accès au réseau public désactivé.

  6. Basculez vers l’onglet Connexions des points de terminaison privés.

  7. Sélectionnez le bouton + Point de terminaison privé en haut de la page.

    Page Réseau – onglet Connexions des points de terminaison privés – lien Ajouter un point de terminaison privé.

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

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

    2. Sélectionnez le groupe de ressources pour la ressource de point de terminaison privé.

    3. Entrez un nom pour le point de terminaison privé.

    4. Entrez un nom pour l’interface réseau.

    5. Sélectionnez une région pour le point de terminaison privé. 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é à laquelle vous vous connectez.

    6. Sélectionnez le bouton Suivant : Ressource en bas de la page.

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

  9. Dans la page Ressource, passez en revue les paramètres, puis sélectionnez Suivant : Réseau virtuel.

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

  10. 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. Remarquez que la stratégie réseau pour les points de terminaison privés est désactivée. Si vous voulez l’activer, sélectionnez modifier, mettez à jour le paramètre et sélectionnez Enregistrer.

    4. Pour Configuration d’adresse IP privée, l’option Allouer dynamiquement l’adresse IP est sélectionnée par défaut. Si vous voulez affecter une adresse IP statique, sélectionnez Allouer statiquement l’adresse IP*.

    5. Pour Groupe de sécurité d’application, sélectionnez un groupe de sécurité d’application existant ou créez-en un à associer au point de terminaison privé.

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

      Capture d’écran montrant la page Réseau virtuel de l’Assistant Créer un point de terminaison privé.

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

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

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

    Créer un point de terminaison privé - page Vérifier et créer

  14. Vérifiez que vous voyez la connexion de point de terminaison privé que vous avez créée dans la liste des points de terminaison. Dans cet exemple, le point de terminaison privé est approuvé automatiquement, car vous êtes connecté à une ressource Azure dans votre répertoire et avez les autorisations nécessaires.

    Point de terminaison privé créé

Services Microsoft approuvés

Quand vous activez le paramètre Autoriser les services Microsoft approuvés à contourner ce pare-feu, les services suivants au sein du même locataire sont autorisés à accéder à vos ressources Event Hubs.

Service approuvé Scénarios d’utilisation pris en charge
Azure Event Grid Autorise Azure Event Grid à envoyer des événements à Event Hubs dans votre espace de noms Event Hubs. Vous devez également procéder comme suit :
  • Activer une identité attribuée par le système pour un sujet ou un domaine
  • Ajouter l’identité au rôle d’expéditeur de données Azure Event Hubs sur l’espace de noms Event Hubs
  • Ensuite, configurez l’abonnement aux événements qui utilise un hub d’événements comme point de terminaison pour utiliser l’identité affectée au système.

Pour plus d’informations, consultez Remise d’événement avec une identité managée

Azure Stream Analytics Permet à un travail Azure Stream Analytics de lire des données (entrée) ou d’écrire des données dans des hubs d’événements (sortie) dans votre espace de noms Event Hubs.

Important ! Le travail Stream Analytics doit être configuré de manière à utiliser une identité managée pour accéder à l’Event Hub. Pour plus d’informations, consultez l’article Utiliser des identités managées pour accéder à Event Hub à partir d’un travail Azure Stream Analytics (préversion).

Azure IoT Hub Permet à IoT Hub d’envoyer des messages aux Event Hubs dans votre espace de noms Event Hubs. Vous devez également procéder comme suit :
  • Activer une identité attribuée par le système pour le hub IoT.
  • Ajouter l’identité au rôle d’expéditeur de données Azure Event Hubs sur l’espace de noms Event Hubs.
  • Ensuite, configurer l’IoT Hub qui utilise un Event Hub comme point de terminaison personnalisé pour utiliser l’authentification basée sur l’identité.
Gestion des API Azure

Le service API Management vous permet d'envoyer des événements à un hub d'événements de votre espace de noms Event Hubs.

Azure Monitor (paramètres de diagnostic et groupes d’actions) Autorise Azure Monitor à envoyer des informations de diagnostic et des notifications d’alerte à des Event Hubs dans votre espace de noms Event Hubs. Azure Monitor peut lire à partir de l’Event Hub et y écrire des données.
Azure Synapse Permet à Azure Synapse de se connecter à l’Event Hub à l’aide de l’identité managée de l’espace de travail Synapse. Ajoutez le rôle d’expéditeur, de receveur ou de propriétaire de données Azure Event Hubs à l’identité dans l’espace de noms Event Hubs.
Explorateur de données Azure Permet à Azure Data Explorer de recevoir des événements d’Event Hub à l’aide de l’identité managée du cluster. Vous devez procéder comme suit :
  • Configurer l’identité managée sur Azure Data Explorer
  • Accordez le rôle de récepteur de données Azure Event Hubs à l’identité sur Event Hub.
 
Azure IoT Central

Permet à IoT Central d’exporter des données vers des Event Hubs dans votre espace de noms Event Hubs. Vous devez également procéder comme suit :

Azure Health Data Services Permet au connecteur IoT des API Santé d’ingérer des données d’un appareil médical à partir de votre espace de noms Event Hubs et de conserver les données dans votre service FHIR® (Fast Healthcare Interoperability Resources) configuré. Le connecteur IoT doit être configuré de manière à utiliser une identité managée pour accéder à Event Hub. Pour plus d’informations, consultez Démarrage avec un connecteur IoT : API Azure Healthcare.
Azure Digital Twins Permet à Azure Digital Twins de sortir des données vers Event Hub dans votre espace de noms Event Hubs. Vous devez également procéder comme suit :

  • Activez l’identité affectée par le système pour votre instance Azure Digital Twins.
  • Ajoutez l’identité au rôle Expéditeur de données Azure Event Hubs dans l’espace de noms Event Hubs.
  • Ensuite, configurez un point de terminaison Azure Digital Twins ou une connexion d’historique des données Azure Digital Twins qui utilise l’identité affectée par le système pour l’authentification. Pour plus d’informations sur la configuration des points de terminaison et des routes d’événements vers des ressources Event Hubs à partir de Azure Digital Twins, consultez Acheminer des événements Azure Digital Twins et Créer des points de terminaison dans Azure Digital Twins.

Les autres services approuvés d’Azure Event Hubs sont disponibles ci-dessous :

  • Azure Arc
  • Azure Kubernetes
  • Azure Machine Learning
  • Microsoft Purview

Pour autoriser les services approuvés à accéder à votre espace de noms, basculez vers l’onglet Accès Public dans la page Réseau, puis sélectionnez Oui pour Autoriser les services Microsoft approuvés pour contourner ce pare-feu ?.

Ajouter un point de terminaison privé avec PowerShell

L’exemple suivant montre comment utiliser Azure PowerShell pour créer une connexion de point de terminaison privé. Il ne crée pas de cluster dédié pour vous. Suivez les étapes décrites dans cet article pour créer un cluster Event Hubs dédié.

$rgName = "<RESOURCE GROUP NAME>"
$vnetlocation = "<VIRTUAL NETWORK LOCATION>"
$vnetName = "<VIRTUAL NETWORK NAME>"
$subnetName = "<SUBNET NAME>"
$namespaceLocation = "<NAMESPACE LOCATION>"
$namespaceName = "<NAMESPACE NAME>"
$peConnectionName = "<PRIVATE ENDPOINT CONNECTION NAME>"

# create resource group
New-AzResourceGroup -Name $rgName -Location $vnetLocation 

# create virtual network
$virtualNetwork = New-AzVirtualNetwork `
                    -ResourceGroupName $rgName `
                    -Location $vnetlocation `
                    -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

# create an event hubs namespace in a dedicated cluster
$namespaceResource = New-AzResource -Location $namespaceLocation `
                                    -ResourceName $namespaceName `
                                    -ResourceGroupName $rgName `
                                    -Sku @{name = "Standard"; capacity = 1} `
                                    -Properties @{clusterArmId = "/subscriptions/<SUBSCRIPTION ID>/resourceGroups/<RESOURCE GROUP NAME>/providers/Microsoft.EventHub/clusters/<EVENT HUBS CLUSTER NAME>"} `
                                    -ResourceType "Microsoft.EventHub/namespaces" -ApiVersion "2018-01-01-preview"

# create private endpoint connection
$privateEndpointConnection = New-AzPrivateLinkServiceConnection `
                                -Name $peConnectionName `
                                -PrivateLinkServiceId $namespaceResource.ResourceId `
                                -GroupId "namespace"

# get subnet object that you'll use later
$virtualNetwork = Get-AzVirtualNetwork -ResourceGroupName  $rgName -Name $vnetName
$subnet = $virtualNetwork | Select -ExpandProperty subnets `
                                | Where-Object  {$_.Name -eq $subnetName}  
   
# create a private endpoint   
$privateEndpoint = New-AzPrivateEndpoint -ResourceGroupName $rgName  `
                                -Name $vnetName   `
                                -Location $vnetlocation `
                                -Subnet  $subnet   `
                                -PrivateLinkServiceConnection $privateEndpointConnection

(Get-AzResource -ResourceId $namespaceResource.ResourceId -ExpandProperties).Properties


Configurer la zone DNS privée

Créez une zone DNS privée pour le domaine Event Hubs et créez un lien d’association avec le réseau virtuel :

$zone = New-AzPrivateDnsZone -ResourceGroupName $rgName `
                            -Name "privatelink.servicebus.windows.net" 
 
$link  = New-AzPrivateDnsVirtualNetworkLink -ResourceGroupName $rgName `
                                            -ZoneName "privatelink.servicebus.windows.net" `
                                            -Name "mylink" `
                                            -VirtualNetworkId $virtualNetwork.Id  
 
$networkInterface = Get-AzResource -ResourceId $privateEndpoint.NetworkInterfaces[0].Id -ApiVersion "2019-04-01" 
 
foreach ($ipconfig in $networkInterface.properties.ipConfigurations) { 
    foreach ($fqdn in $ipconfig.properties.privateLinkConnectionProperties.fqdns) { 
        Write-Host "$($ipconfig.properties.privateIPAddress) $($fqdn)"  
        $recordName = $fqdn.split('.',2)[0] 
        $dnsZone = $fqdn.split('.',2)[1] 
        New-AzPrivateDnsRecordSet -Name $recordName -RecordType A -ZoneName "privatelink.servicebus.windows.net"  `
                                -ResourceGroupName $rgName -Ttl 600 `
                                -PrivateDnsRecords (New-AzPrivateDnsRecordConfig -IPv4Address $ipconfig.properties.privateIPAddress)  
    } 
}

Gérer des points de terminaison privés avec le portail Azure

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.

Approuver, rejeter ou supprimer une connexion de point de terminaison privé

  1. Connectez-vous au portail Azure.
  2. Dans la barre de recherche, tapez event hubs.
  3. Sélectionnez l’espace de noms que vous voulez gérer.
  4. Sélectionnez l’onglet Réseau.
  5. Accédez à la section suivante appropriée en fonction de l'opération que vous souhaitez : approuver, rejeter ou supprimer.

Approuver une connexion de point de terminaison privé

  1. Si une connexion est en attente, celle-ci présente l’état de provisionnement En attente.

  2. Sélectionnez le point de terminaison privé à approuver

  3. Sélectionnez le bouton Approuver.

    Approuver le point de terminaison privé

  4. Dans la page Approuver la connexion, ajoutez un commentaire (facultatif) et sélectionnez Oui. Si vous sélectionnez Non, il ne se passe rien.

  5. Vous devez voir que l’état de la connexion de point de terminaison privé dans la liste est remplacé par Approuvé.

Rejeter une connexion de point de terminaison privé

  1. Si vous voulez rejeter une connexion de point de terminaison privé, qu’il s’agisse d’une demande en attente ou d’une connexion existante, sélectionnez la connexion, puis le bouton Rejeter.

    Rejeter un point de terminaison privé

  2. Dans la page Rejeter la connexion, entrez un commentaire (facultatif) et sélectionnez Oui. Si vous sélectionnez Non, il ne se passe rien.

  3. Vous devez voir que l’état de la connexion de point de terminaison privé dans la liste est remplacé par Rejeté.

Supprimer une connexion de point de terminaison privé

  1. Pour supprimer une connexion de point de terminaison privé, sélectionnez-la dans la liste et sélectionnez Supprimer dans la barre d’outils.
  2. Dans la page Supprimer la connexion, sélectionnez Oui pour confirmer la suppression du point de terminaison privé. Si vous sélectionnez Non, il ne se passe rien.
  3. Vous devez voir que l’état a été remplacé par Déconnecté. Le point de terminaison disparaît alors de la liste.

Vous devez vérifier que les ressources contenues dans le réseau virtuel du point de terminaison privé se connectent à votre espace de noms Event Hubs via une adresse IP privée, et qu’elles sont intégrées à la zone DNS privée appropriée.

Commencez par créer une machine virtuelle en suivant les étapes décrites dans Créer une machine virtuelle Windows sur le portail Azure.

Sous l’onglet Réseau :

  1. Spécifiez un réseau virtuel et un sous-réseau. Vous devez sélectionner le réseau virtuel sur lequel vous avez déployé le point de terminaison privé.
  2. Spécifiez une ressource d’adresse IP publique.
  3. Pour Groupe de sécurité réseau de la carte réseau, sélectionnez Aucun.
  4. Pour Équilibrage de charge, sélectionnez Non.

Connectez-vous à la machine virtuelle, ouvrez la ligne de commande et exécutez la commande suivante :

nslookup <event-hubs-namespace-name>.servicebus.windows.net

Vous devez obtenir un résultat similaire à ce qui suit.

Non-authoritative answer:
Name:    <event-hubs-namespace-name>.privatelink.servicebus.windows.net
Address:  10.0.0.4 (private IP address associated with the private endpoint)
Aliases:  <event-hubs-namespace-name>.servicebus.windows.net

Limitations et remarques sur la conception

  • Pour plus d’informations sur les prix, consultez Prix d’Azure Private Link.
  • Cette fonctionnalité est disponible dans toutes les régions publiques Azure.
  • Nombre maximal de points de terminaison privés par espace de noms Event Hubs : 120.
  • Le trafic est bloqué au niveau de la couche application, pas au niveau de la couche TCP. Par conséquent, vous voyez des connexions ou des opérations nslookup TCP réussir sur le point de terminaison public même si l’accès public est désactivé.

Pour plus d’informations, consultez Service Azure Private Link : Limitations

Étapes suivantes