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.

Für ein neues Thema

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 "Grundlagen" des Assistenten zum Erstellen von Themen die erforderlichen Felder aus, und wählen Sie dann "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. Wählen Sie auf der Registerkarte Private Endpunktverbindungen und dann die Schaltfläche + Privater Endpunkt aus.

    Screenshot mit der Schaltfläche „Privater Endpunkt“ auf der Seite „Thema erstellen“.

  4. Führen Sie auf der Seite Privaten Endpunkt erstellen die folgenden Schritte aus:

    1. Geben Sie bei Name einen Namen für den privaten Endpunkt ein.
    2. 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.
    3. Wählen Sie ein Subnetz innerhalb des ausgewählten virtuellen Netzwerks aus.
    4. Wählen Sie aus, ob der private Endpunkt in eine private DNS-Zone integriert werden soll.
    5. Wählen Sie OK aus.

    Screenshot der Seite zum Erstellen eines privaten Endpunkts.

  5. Wählen Sie unten auf der Seite Thema erstellen die Option Überprüfen + Erstellen aus.

  6. Wählen Sie auf der Seite Überprüfen + erstellen die Option Erstellen aus.

Für ein 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 " 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 Linkressource (in diesem Beispiel ein Ereignisrasterthema) sein.

    6. Wählen Sie "Weiter" aus: Ressource >.

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

  5. Vergewissern Sie sich auf der Seite "Ressource", dass das Thema für die Unterressource "Ziel" ausgewählt ist, und wählen Sie dann "Weiter: Virtual Network>" aus.

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

  6. Wählen Sie auf der Seite Virtual Network das Subnetz in einem virtual network 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 Weiter: DNS > aus.

      Screenshot mit der Seite „Virtual Network“ im Assistenten zum Erstellen eines privaten Endpunkts.

  7. Wählen Sie auf der DNS-Seite aus, ob der private Endpunkt in eine private DNS-Zone integriert werden soll, und wählen Sie dann "Weiter: Tags" aus.

    Screenshot der DNS-Seite 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 Überprüfen + 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 Bereitstellungsstatus:

Serviceaktion Status des privaten Endpunkts des Dienstnutzers 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.
Ablehnen Rejected (Abgelehnt) Die Verbindung wurde vom Besitzer der Private Link-Ressource abgelehnt.
Entfernen Nicht verbunden Die Verbindung wurde vom Besitzer der Private Link-Ressource entfernt; der private Endpunkt dient dann nur noch Informationszwecken 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 Ereignisrasterthemen oder Ereignisrasterdomä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.

Einen privaten Endpunkt genehmigen

Sie können einen privaten Endpunkt genehmigen, der sich im Status „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 "Genehmigen" aus.

    Screenshot einer privaten Endpunktverbindung im Status

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

    Screenshot des Dialogfelds

  3. Vergewissern Sie sich, dass der Status des Endpunkts als genehmigt angezeigt wird.

    Screenshot der privaten Endpunktverbindung mit dem Status

Ablehnen eines privaten Endpunkts

Sie können einen privaten Endpunkt ablehnen, der sich im Zustand „Ausstehend“ oder „Genehmigt“ befindet. Um abzulehnen, führen Sie die folgenden Schritte aus:

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 "Ablehnen" aus .

    Screenshot der Registerkarte

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

    Screenshot des Dialogfelds

  3. Vergewissern Sie sich, dass der Status des Endpunkts als abgelehnt angezeigt wird.

    Screenshot der privaten Endpunktverbindung mit dem Status

    Hinweis

    Sie können einen privaten Endpunkt im Azure-Portal nicht genehmigen, nachdem er abgelehnt wurde.

Verwenden Sie die Azure CLI

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.
  • Für group-ids, angeben topic oder domain. 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 <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:

  • Ressourcengruppe
  • 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 keinen Endpunkt genehmigen, der abgelehnt wurde.