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.

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

    Abbildung: Auswahl des Links „Netzwerk“ am unteren Seitenrand

  2. Wenn Sie den Zugriff auf das Event Grid-Thema über einen privaten Endpunkt zulassen möchten, wählen Sie die Option Privater Zugriff aus.

    Abbildung: Auswahl der Option „Privater Zugriff“ auf der Seite „Netzwerk“ des Assistenten zum Erstellen von Themen

  3. Im nächsten Abschnitt erfahren Sie, wie Sie einen privaten Endpunkt hinzufügen.

Vorgehensweise für ein bereits vorhandenes Thema

  1. Melden Sie sich am Azure-Portal an, und navigieren Sie zu Ihrem Thema oder Ihrer Domäne.

  2. Wechseln Sie zur Registerkarte Netzwerk Ihrer Themenseite. Wählen Sie auf der Registerkarte Öffentlicher Zugriff die Option Private endpoints only (Nur private Endpunkte) aus.

    Screenshot, der die Seite für den Zugriff auf das öffentliche Netzwerk zeigt, wobei die Option Nur private Endpunkte ausgewählt ist.

  3. Wechseln Sie zur Registerkarte Verbindungen mit privatem Endpunkt, und wählen Sie auf der Symbolleiste die Option + Privater Endpunkt aus.

    Screenshot: Auswahl des Links „+ Privater Endpunkt“ auf der Registerkarte „Verbindungen mit privatem Endpunkt“

  4. Führen Sie auf der Seite Grundlagen die folgenden Schritte aus:

    1. Wählen Sie ein Azure-Abonnement aus, in dem Sie den privaten Endpunkt erstellen möchten.

    2. Wählen Sie eine Azure-Ressourcengruppe für den privaten Endpunkt aus.

    3. Geben Sie einen Namen für den Endpunkt ein.

    4. Aktualisieren Sie bei Bedarf den Namen für die Netzwerkschnittstelle.

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

    6. Wählen Sie dann Weiter: Ressource > unten auf der Seite.

      Der Screenshot zeigt die Seite „Grundlagen“ des Assistenten zum Erstellen eines privaten Endpunkts.

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

    Screenshot, der die Seite „Ressource“ des Assistenten zum Erstellen eines privaten Endpunkts zeigt.

  6. Wählen Sie auf der Seite Virtuelles Netzwerk das Subnetz in einem virtuellen Netzwerk aus, in dem Sie den privaten Endpunkt bereitstellen möchten.

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

    2. Wählen Sie ein Subnetz innerhalb des ausgewählten virtuellen Netzwerks aus.

    3. Geben Sie an, ob die IP-Adresse statisch oder dynamisch zugeordnet werden soll.

    4. Wählen Sie eine vorhandene Anwendungssicherheitsgruppe aus, oder erstellen Sie eine, und ordnen Sie diese dem privaten Endpunkt zu.

    5. Wählen Sie die Schaltfläche Weiter: DNS> unten auf der Seite aus.

      Screenshot: Seite „Netzwerk“ des Assistenten zum Erstellen eines privaten Endpunkts

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

    Der Screenshot zeigt die Seite „DNS“ des Assistenten zum Erstellen eines privaten Endpunkts.

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

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

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.

  1. Melden Sie sich beim Azure-Portal an.
  2. Geben Sie in der Suchleiste Event Grid-Themen oder Event Grid-Domänen ein.
  3. Wählen Sie das Thema oder die Domäne aus, das bzw. die Sie verwalten möchten.
  4. Wählen Sie die Registerkarte Netzwerk aus.
  5. 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.

  1. Wählen Sie den privaten Endpunkt aus, den Sie genehmigen möchten, und wählen Sie auf der Symbolleiste dann Genehmigen aus.

    Privater Endpunkt: Status „Ausstehend“

  2. Geben Sie im Dialogfeld Verbindung genehmigen einen Kommentar ein (optional), und wählen Sie dann Ja aus.

    Privater Endpunkt: Genehmigen

  3. Vergewissern Sie sich, dass der Status des Endpunkts Genehmigt lautet.

    Privater Endpunkt: Status „Genehmigt“

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.

  1. Wählen Sie den privaten Endpunkt aus, den Sie ablehnen möchten, und wählen Sie auf der Symbolleiste dann Ablehnen aus.

    Screenshot von „Netzwerk – Verbindung mit privatem Endpunkt“ mit ausgewählter Option „Ablehnen“

  2. Geben Sie im Dialogfeld Verbindung ablehnen einen Kommentar ein (optional), und wählen Sie dann Ja aus.

    Privater Endpunkt: Ablehnen

  3. Vergewissern Sie sich, dass der Status des Endpunkts Abgelehnt lautet.

    Privater Endpunkt: Status „Abgelehnt“

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

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-idstopic oder domain an. Im vorherigen Beispiel wird topic 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 <RESOURECE 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 <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

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-idstopic oder domain an. Im vorherigen Beispiel wird topic 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 <RESOURECE 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