Konfigurieren privater Endpunkte für 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 Themen und Domänen sicher über einen privaten Link zu ermöglichen, ohne das öffentliche Internet zu durchlaufen. Der private Endpunkt verwendet eine IP-Adresse aus dem VNET-Adressraum für Ihr Thema oder Ihre Domäne. Weitere konzeptionelle Informationen finden Sie unter Netzwerksicherheit.

In diesem Artikel wird beschrieben, wie private Endpunkte für Themen oder Domänen konfiguriert werden.

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

    Image showing the selection of Networking link at the bottom of the page.

  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.

    Image showing the selection of Private access option on the Networking page of the Create topic wizard.

  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 that shows the Public network access page with Private endpoints only option selected.

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

    Screenshot showing the selection of + Private endpoint link on the Private endpoint connection tab.

  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. Wählen Sie die Region für den Endpunkt aus. Ihr privater Endpunkt muss sich in derselben Region wie Ihr virtuelles Netzwerk befinden, kann sich aber in einer anderen Region befinden als die private Link-Ressource (in diesem Beispiel ein Event Grid Topic).

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

      Screenshot showing the Basics page of the Create a private endpoint wizard.

  5. Führen Sie auf der Seite Ressource die folgenden Schritte aus:

    1. Wenn Sie als Verbindungsmethode Hiermit wird eine Verbindung mit einer Azure-Ressource im eigenen Verzeichnis hergestellt auswählen, führen Sie die folgenden Schritte aus. Dieses Beispiel zeigt, wie Sie eine Verbindung mit einer Azure-Ressource in Ihrem Verzeichnis herstellen.
      1. Wählen Sie das Azure-Abonnement aus, in dem Ihr Thema oder die Domäne vorhanden ist.

      2. Wählen Sie unter RessourcentypMicrosoft.EventGrid/topics oder Microsoft.EventGrid/domains als Ressourcentyp aus.

      3. Wählen Sie als Ressourcenin der Dropdownliste ein Thema bzw. eine Domäne aus.

      4. Vergewissern Sie sich, dass die Unterressource des Ziels auf Thema oder Domäne (basierend auf dem ausgewählten Ressourcentyp) festgelegt ist.

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

        Screenshot showing the Resource page of the Create a private endpoint wizard.

    2. Wenn Sie Verbindung mit einer Ressource mithilfe einer Ressourcen-ID oder eines Alias herstellen auswählen, führen Sie die folgenden Schritte aus:
      1. Geben Sie die ID der Ressource ein. Beispiel: /subscriptions/<AZURE SUBSCRIPTION ID>/resourceGroups/<RESOURCE GROUP NAME>/providers/Microsoft.EventGrid/topics/<EVENT GRID TOPIC NAME>.

      2. Geben Sie als Ressource die Option Thema oder Domäne ein.

      3. (Optional) Fügen Sie eine Anforderungsnachricht hinzu.

      4. Wählen Sie unten auf der Seite die Schaltfläche Weiter: Virtuelles Netzwerk > aus.

        Screenshot showing the Resource page with resource ID specified.

  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. Wählen Sie die Schaltfläche Weiter: Tags unten auf der Seite aus.

      Screenshot showing the Networking page of the Creating a private endpoint wizard

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

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

    Private endpoint - pending state

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

    Private endpoint - approve

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

    Private endpoint - approved state

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 that shows the

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

    Private endpoint - reject

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

    Private endpoint - rejected state

    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