Konfigurieren privater Endpunkte für benutzerdefinierte Azure Event Grid-Themen oder -Domänen
Sie können private Endpunkte verwenden, um den Eingang von Ereignissen direkt aus Ihrem virtuellen Netzwerk in Ihre benutzerdefinierten Themen und Domänen sicher über eine private Verbindung zu ermöglichen, ohne das öffentliche Internet zu durchlaufen. Der private Endpunkt verwendet eine IP-Adresse aus dem VNET-Adressraum für Ihr benutzerdefiniertes Thema oder Ihre Domäne. Weitere konzeptionelle Informationen finden Sie unter Netzwerksicherheit.
In diesem Artikel wird beschrieben, wie private Endpunkte für benutzerdefinierte Themen oder Domänen konfiguriert werden.
Hinweis
Derzeit werden private Endpunkte für Systemthemen nicht unterstützt.
Verwenden des Azure-Portals
In diesem Abschnitt wird gezeigt, wie Sie das Azure-Portal verwenden, um einen privaten Endpunkt für ein Thema oder eine Domäne zu erstellen.
Hinweis
Die in diesem Abschnitt beschriebenen Schritte beziehen sich hauptsächlich auf benutzerdefinierte Themen. Sie können ähnliche Schritte verwenden, um private Endpunkte für Domänen zu erstellen.
Vorgehensweise beim Erstellen eines neuen Themas
In diesem Abschnitt erfahren Sie, wie Sie privaten Netzwerkzugriff für ein Event Grid-Thema oder für eine Domäne aktivieren. Eine Schritt-für-Schritt-Anleitung zum Erstellen eines neuen Themas finden Sie unter Erstellen eines benutzerdefinierten Themas.
Füllen Sie auf der Seite Allgemeine Informationen des Assistenten Thema erstellen die erforderlichen Felder aus, und wählen Sie anschließend am unteren Rand der Seite die Option Weiter: Netzwerk aus.
Wenn Sie den Zugriff auf das Event Grid-Thema über einen privaten Endpunkt zulassen möchten, wählen Sie die Option Privater Zugriff aus.
Im nächsten Abschnitt erfahren Sie, wie Sie einen privaten Endpunkt hinzufügen.
Vorgehensweise für ein bereits vorhandenes Thema
Melden Sie sich am Azure-Portal an, und navigieren Sie zu Ihrem Thema oder Ihrer Domäne.
Wechseln Sie zur Registerkarte Netzwerk Ihrer Themenseite. Wählen Sie auf der Registerkarte Öffentlicher Zugriff die Option Private endpoints only (Nur private Endpunkte) aus.
Wechseln Sie zur Registerkarte Verbindungen mit privatem Endpunkt, und wählen Sie auf der Symbolleiste die Option + Privater Endpunkt aus.
Führen Sie auf der Seite Grundlagen die folgenden Schritte aus:
Wählen Sie ein Azure-Abonnement aus, in dem Sie den privaten Endpunkt erstellen möchten.
Wählen Sie eine Azure-Ressourcengruppe für den privaten Endpunkt aus.
Geben Sie einen Namen für den Endpunkt ein.
Aktualisieren Sie bei Bedarf den Namen für die Netzwerkschnittstelle.
Wählen Sie die Region für den Endpunkt aus. Ihr privater Endpunkt muss sich in derselben Region wie Ihr virtuelles Netzwerk befinden, kann aber in einer anderen Region als die private Verbindungsressource enthalten sein (in diesem Beispiel ein Event Grid-Thema).
Wählen Sie dann Weiter: Ressource > unten auf der Seite.
Führen Sie auf der Seite Ressource die folgenden Schritte aus, vergewissern Sie sich, dass Thema für Zielunterressource ausgewählt ist, und klicken Sie dann am unteren Seitenrand auf die Schaltfläche Weiter: Virtuelles Netzwerk >.
Wählen Sie auf der Seite Virtuelles Netzwerk das Subnetz in einem virtuellen Netzwerk aus, in dem Sie den privaten Endpunkt bereitstellen möchten.
Wählen Sie ein virtuelles Netzwerk aus. Nur virtuelle Netzwerke im aktuell ausgewählten Abonnement und am aktuell ausgewählten Standort werden in der Dropdownliste aufgeführt.
Wählen Sie ein Subnetz innerhalb des ausgewählten virtuellen Netzwerks aus.
Geben Sie an, ob die IP-Adresse statisch oder dynamisch zugeordnet werden soll.
Wählen Sie eine vorhandene Anwendungssicherheitsgruppe aus, oder erstellen Sie eine, und ordnen Sie diese dem privaten Endpunkt zu.
Wählen Sie die Schaltfläche Weiter: DNS> unten auf der Seite aus.
Wählen Sie auf der Seite DNS aus, ob der private Endpunkt in eine private DNS-Zone integriert werden soll, und wählen Sie anschließend am unteren Seitenrand Weiter: Tags aus.
Erstellen Sie auf der Seite Tags beliebige Tags (Namen und Werte), die Sie der privaten Endpunktressource zuordnen möchten. Wählen Sie dann am unteren Rand der Seite die Schaltfläche Überprüfen und erstellen aus.
Überprüfen Sie auf der Seite Überprüfen und erstellen alle Einstellungen, und wählen Sie dann Erstellen aus, um den privaten Endpunkt zu erstellen.
Verwalten der Private Link-Verbindung
Wenn Sie einen privaten Endpunkt erstellen, muss die Verbindung genehmigt werden. Wenn sich die Ressource, für die Sie einen privaten Endpunkt erstellen, in Ihrem Verzeichnis befindet, können Sie die Verbindungsanforderung genehmigen, sofern Sie über ausreichende Berechtigungen verfügen. Wenn Sie eine Verbindung mit einer Azure-Ressource in einem anderen Verzeichnis herstellen, müssen Sie warten, bis der Besitzer dieser Ressource Ihre Verbindungsanforderung genehmigt hat.
Es gibt vier Möglichkeiten für den Bereitstellungsstatus:
Dienstaktion | Zustand des privaten Endpunkts des Dienstconsumers | BESCHREIBUNG |
---|---|---|
Keine | Ausstehend | Die Verbindung wurde manuell erstellt, und die Genehmigung des Besitzers der Private Link-Ressource steht aus. |
Genehmigen | Genehmigt | Die Verbindung wurde automatisch oder manuell genehmigt und ist zur Verwendung bereit. |
Reject | Rejected (Abgelehnt) | Die Verbindung wurde vom Besitzer der Private Link-Ressource abgelehnt. |
Remove (Entfernen) | Getrennt | Die Verbindung wurde vom Besitzer der Private Link-Ressource entfernt, der private Endpunkt wird informativ und sollte zur Bereinigung gelöscht werden. |
Vorgehensweise: Verwalten einer Verbindung mit einem privaten Endpunkt
In den folgenden Abschnitten wird gezeigt, wie Sie eine Verbindung mit einem privaten Endpunkt genehmigen oder ablehnen.
- Melden Sie sich beim Azure-Portal an.
- Geben Sie in der Suchleiste Event Grid-Themen oder Event Grid-Domänen ein.
- Wählen Sie das Thema oder die Domäne aus, das bzw. die Sie verwalten möchten.
- Wählen Sie die Registerkarte Netzwerk aus.
- Sollten ausstehende Verbindungen vorhanden sein, wird in der Liste eine Verbindung mit dem Bereitstellungsstatus Ausstehend angezeigt.
Genehmigen eines privaten Endpunkts
Sie können einen privaten Endpunkt genehmigen, der sich im Zustand „Ausstehend“ befindet. Führen Sie folgende Schritte aus, um die Genehmigung vorzunehmen:
Hinweis
Die in diesem Abschnitt beschriebenen Schritte beziehen sich hauptsächlich auf Themen. Sie können ähnliche Schritte verwenden, um private Endpunkte für Domänen zu genehmigen.
Wählen Sie den privaten Endpunkt aus, den Sie genehmigen möchten, und wählen Sie auf der Symbolleiste dann Genehmigen aus.
Geben Sie im Dialogfeld Verbindung genehmigen einen Kommentar ein (optional), und wählen Sie dann Ja aus.
Vergewissern Sie sich, dass der Status des Endpunkts Genehmigt lautet.
Ablehnen eines privaten Endpunkts
Sie können einen privaten Endpunkt ablehnen, der sich im Zustand „Ausstehend“ oder „Genehmigt“ befindet. Führen Sie die folgenden Schritte aus, um einen Endpunkt abzulehnen:
Hinweis
Die in diesem Abschnitt beschriebenen Schritte beziehen sich auf Themen. Sie können ähnliche Schritte verwenden, um private Endpunkte für Domänen abzulehnen.
Wählen Sie den privaten Endpunkt aus, den Sie ablehnen möchten, und wählen Sie auf der Symbolleiste dann Ablehnen aus.
Geben Sie im Dialogfeld Verbindung ablehnen einen Kommentar ein (optional), und wählen Sie dann Ja aus.
Vergewissern Sie sich, dass der Status des Endpunkts Abgelehnt lautet.
Hinweis
Sie können einen privaten Endpunkt im Azure-Portal nicht genehmigen, nachdem er abgelehnt wurde.
Mithilfe der Azure-Befehlszeilenschnittstelle
Verwenden Sie zum Erstellen eines privaten Endpunkts die Methode az network private-endpoint create, wie im folgenden Beispiel gezeigt:
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
Beschreibungen der Parameter, die im Beispiel verwendet werden, finden Sie in der Dokumentation zu az network private-endpoint create. In diesem Beispiel sind einige Punkte zu beachten:
- Geben Sie für
private-connection-resource-id
die Ressourcen-ID des Themas oder der Domäne an. Im vorangehenden Beispiel wird der Typ „Thema“ (topic) verwendet. - Geben Sie für
group-ids
topic
oderdomain
an. Im vorherigen Beispiel wirdtopic
verwendet.
Verwenden Sie zum Löschen eines privaten Endpunkts die Methode az network private-endpoint delete, wie im folgenden Beispiel gezeigt:
az network private-endpoint delete --resource-group <RESOURCE GROUP NAME> --name <PRIVATE ENDPOINT NAME>
Hinweis
Die in diesem Abschnitt beschriebenen Schritte beziehen sich auf Themen. Sie können ähnliche Schritte verwenden, um private Endpunkte für Domänen zu erstellen.
Voraussetzungen
Aktualisieren Sie die Azure Event Grid-Erweiterung für die CLI, indem Sie den folgenden Befehl ausführen:
az extension update -n eventgrid
Wenn die Erweiterung nicht installiert ist, führen Sie den folgenden Befehl aus, um sie zu installieren:
az extension add -n eventgrid
Erstellen eines privaten Endpunkts
Verwenden Sie zum Erstellen eines privaten Endpunkts die Methode az network private-endpoint create, wie im folgenden Beispiel gezeigt:
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
Beschreibungen der Parameter, die im Beispiel verwendet werden, finden Sie in der Dokumentation zu az network private-endpoint create. In diesem Beispiel sind einige Punkte zu beachten:
- Geben Sie für
private-connection-resource-id
die Ressourcen-ID des Themas oder der Domäne an. Im vorangehenden Beispiel wird der Typ „Thema“ (topic) verwendet. - Geben Sie für
group-ids
topic
oderdomain
an. Im vorherigen Beispiel wirdtopic
verwendet.
Verwenden Sie zum Löschen eines privaten Endpunkts die Methode az network private-endpoint delete, wie im folgenden Beispiel gezeigt:
az network private-endpoint delete --resource-group <RESOURCE GROUP NAME> --name <PRIVATE ENDPOINT NAME>
Hinweis
Die in diesem Abschnitt beschriebenen Schritte beziehen sich auf Themen. Sie können ähnliche Schritte verwenden, um private Endpunkte für Domänen zu erstellen.
Beispielskript
Dies ist ein Beispielskript, mit dem die folgenden Azure-Ressourcen erstellt werden:
- Resource group
- Virtuelles Netzwerk
- Subnetz im virtuellen Netzwerk
- Azure Event Grid-Thema
- Privater Endpunkt für das Thema
Hinweis
Die in diesem Abschnitt beschriebenen Schritte beziehen sich auf Themen. Sie können ähnliche Schritte verwenden, um private Endpunkte für Domänen zu erstellen.
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
Genehmigen eines privaten Endpunkts
Im folgenden CLI-Beispielcodeausschnitt wird gezeigt, wie Sie eine Verbindung mit einem privaten Endpunkt genehmigen.
az eventgrid topic private-endpoint-connection approve \
--resource-group $resourceGroupName \
--topic-name $topicName \
--name $endpointName \
--description "connection approved"
Ablehnen eines privaten Endpunkts
Im folgenden CLI-Beispielcodeausschnitt wird gezeigt, wie Sie eine Verbindung mit einem privaten Endpunkt ablehnen.
az eventgrid topic private-endpoint-connection reject \
--resource-group $resourceGroupName \
--topic-name $topicName \
--name $endpointName \
--description "Connection rejected"
Deaktivieren des Zugriffs auf das öffentliche Netzwerk
Standardmäßig ist der Zugriff auf das öffentliche Netzwerk für Event Grid-Themen und -Domänen aktiviert. Um den Zugriff nur über private Endpunkte zuzulassen, deaktivieren Sie den Zugriff auf das öffentliche Netzwerk, indem Sie den folgenden Befehl ausführen:
az eventgrid topic update \
--resource-group $resourceGroupName \
--name $topicName \
--public-network-access disabled
Verwenden von PowerShell
In diesem Abschnitt wird gezeigt, wie Sie einen privaten Endpunkt für ein Thema oder eine Domäne mit PowerShell erstellen. Hier sehen Sie ein Beispielskript mit Kommentaren:
# 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
Genehmigen einer Verbindung mit einem privaten Endpunkt
Im folgenden PowerShell-Beispielcodeausschnitt wird gezeigt, wie Sie einen privaten Endpunkt genehmigen.
Hinweis
Die in diesem Abschnitt beschriebenen Schritte beziehen sich auf Themen. Sie können ähnliche Schritte verwenden, um private Endpunkte für Domänen zu genehmigen.
# 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
Ablehnen einer Verbindung mit einem privaten Endpunkt
Im folgenden Beispiel wird gezeigt, wie Sie einen privaten Endpunkt mit PowerShell ablehnen. Sie können die GUID für den privaten Endpunkt aus dem Ergebnis des vorherigen GET-Befehls abrufen.
Hinweis
Die in diesem Abschnitt beschriebenen Schritte beziehen sich auf Themen. Sie können ähnliche Schritte verwenden, um private Endpunkte für Domänen abzulehnen.
# 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
Sie können die Verbindung auch dann genehmigen, wenn Sie über die API abgelehnt wurde. Wenn Sie das Azure-Portal verwenden, können Sie einen abgelehnten Endpunkt nicht genehmigen.
Nächste Schritte
- Weitere Informationen zum Konfigurieren von IP-Firewalleinstellungen finden Sie unter Konfigurieren der IP-Firewall für Azure Event Grid-Themen oder -Domänen.
- Informationen zum Beheben von Problemen mit der Netzwerkkonnektivität finden Sie unter Beheben von Netzwerkverbindungsproblemen.