Dela via


Konfigurera privata slutpunkter för anpassade ämnen eller domäner i Azure Event Grid

Du kan använda privata slutpunkter för att tillåta ingress av händelser direkt från ditt virtuella nätverk till dina anpassade ämnen och domäner på ett säkert sätt via en privat länk utan att gå via det offentliga Internet. Den privata slutpunkten använder en IP-adress från det virtuella nätverkets adressutrymme för ditt anpassade ämne eller din domän. Mer konceptuell information finns i Nätverkssäkerhet.

I den här artikeln beskrivs hur du konfigurerar privata slutpunkter för anpassade ämnen eller domäner.

Kommentar

För närvarande stöds inte privata slutpunkter för systemämnen.

Använda Azure-portalen

Det här avsnittet visar hur du använder Azure Portal för att skapa en privat slutpunkt för ett ämne eller en domän.

Kommentar

De steg som visas i det här avsnittet gäller främst anpassade ämnen. Du kan använda liknande steg för att skapa privata slutpunkter för domäner.

När du skapar ett nytt ämne

Det här avsnittet visar hur du aktiverar åtkomst till privata nätverk för ett Event Grid-ämne eller en domän. Stegvisa instruktioner för att skapa ett nytt ämne finns i Skapa ett anpassat ämne.

  1. På sidan Grundinställningar i guiden Skapa ämne väljer du Nästa: Nätverk längst ned på sidan när du har fyllt i de obligatoriska fälten.

    Bild som visar valet av Nätverkslänk längst ned på sidan.

  2. Om du vill tillåta åtkomst till Event Grid-ämnet via en privat slutpunkt väljer du alternativet Privat åtkomst .

    Bild som visar alternativet Privat åtkomst på sidan Nätverk i guiden Skapa ämne.

  3. I avsnittet Privata slutpunktsanslutningar väljer du knappen + Privat slutpunkt .

    Skärmbild som visar knappen Privat slutpunkt på sidan Skapa ämne.

  4. Följ dessa steg på sidan Skapa privat slutpunkt :

    1. Som Namn anger du ett namn för den privata slutpunkten.
    2. Välj ett virtuellt nätverk. Endast virtuella nätverk i den aktuella valda prenumerationen och platsen visas i listrutan.
    3. Välj ett undernät i det virtuella nätverk som du har valt.
    4. Välj om du vill att den privata slutpunkten ska integreras med en privat DNS-zon.
    5. Välj OK.

    Skärmbild som visar sidan Skapa privat slutpunkt.

  5. På sidan Skapa ämne väljer du Granska + skapa längst ned på sidan.

  6. På sidan Granska + skapa väljer du Skapa.

För ett befintligt ämne

  1. Logga in på Azure Portal och navigera till ditt ämne eller din domän.

  2. Växla till fliken Nätverkämnessidan. På fliken Offentlig åtkomst väljer du Endast privata slutpunkter.

    Skärmbild som visar åtkomstsidan för offentligt nätverk med alternativet Endast privata slutpunkter valt.

  3. Växla till fliken Privata slutpunktsanslutningar och välj sedan + Privat slutpunkt i verktygsfältet.

    Skärmbild som visar valet av + privat slutpunktslänk på fliken Privat slutpunktsanslutning.

  4. Följ dessa steg på sidan Grundläggande :

    1. Välj en Azure-prenumeration där du vill skapa den privata slutpunkten.

    2. Välj en Azure-resursgrupp för den privata slutpunkten.

    3. Ange ett namn för slutpunkten.

    4. Uppdatera namnetnätverksgränssnittet om det behövs.

    5. Välj region för slutpunkten. Din privata slutpunkt måste finnas i samma region som ditt virtuella nätverk, men kan i en annan region än den privata länkresursen (i det här exemplet ett Event Grid-ämne).

    6. Välj sedan Knappen Nästa: Resurs > längst ned på sidan.

      Skärmbild som visar sidan Grundläggande i guiden Skapa en privat slutpunkt.

  5. På sidan Resurs följer du de här stegen, bekräftar att ämnet har valts för underresursen Mål och väljer sedan knappen Nästa: Virtuellt nätverk > längst ned på sidan.

    Skärmbild som visar resurssidan i guiden Skapa en privat slutpunkt.

  6. På sidan Virtuellt nätverk väljer du undernätet i ett virtuellt nätverk där du vill distribuera den privata slutpunkten.

    1. Välj ett virtuellt nätverk. Endast virtuella nätverk i den aktuella valda prenumerationen och platsen visas i listrutan.

    2. Välj ett undernät i det virtuella nätverk som du har valt.

    3. Ange om du vill att IP-adressen ska allokeras statiskt eller dynamiskt.

    4. Välj en befintlig programsäkerhetsgrupp eller skapa en och associera sedan med den privata slutpunkten.

    5. Välj Nästa: DNS-knappen > längst ned på sidan.

      Skärmbild som visar sidan Nätverk i guiden Skapa en privat slutpunkt.

  7. På SIDAN DNS väljer du om du vill att den privata slutpunkten ska integreras med en privat DNS-zon och väljer sedan Nästa: Taggar längst ned på sidan.

    Skärmbild som visar DNS-sidan i guiden Skapa en privat slutpunkt.

  8. På sidan Taggar skapar du eventuella taggar (namn och värden) som du vill associera med den privata slutpunktsresursen. Välj sedan knappen Granska + skapa längst ned på sidan.

  9. Granska alla inställningar i Granska + skapa och välj Skapa för att skapa den privata slutpunkten.

När du skapar en privat slutpunkt måste anslutningen godkännas. Om resursen som du skapar en privat slutpunkt för finns i din katalog kan du godkänna anslutningsbegäran förutsatt att du har tillräcklig behörighet. Om du ansluter till en Azure-resurs i en annan katalog måste du vänta tills resursens ägare har godkänt anslutningsbegäran.

Det finns fyra etableringstillstånd:

Tjänståtgärd Tjänstkonsumentens privata slutpunktstillstånd Description
None Väntande Anslutningen skapas manuellt och väntar på godkännande från resursägaren för private Link.
Godkänn Godkänd Anslutningen godkändes automatiskt eller manuellt och är redo att användas.
Avvisa Avvisat Anslutningen avvisades av resursägaren för den privata länken.
Ta bort Frånkopplad Anslutningen togs bort av resursägaren för den privata länken, den privata slutpunkten blir informativ och bör tas bort för rensning.

Hantera en privat slutpunktsanslutning

I följande avsnitt visas hur du godkänner eller avvisar en privat slutpunktsanslutning.

  1. Logga in på Azure-portalen.
  2. I sökfältet skriver du in Event Grid-ämnen eller Event Grid-domäner.
  3. Välj det ämne eller den domän som du vill hantera.
  4. Välj fliken Nätverk.
  5. Om det finns några väntande anslutningar visas en anslutning med Väntar i etableringstillståndet.

Så här godkänner du en privat slutpunkt

Du kan godkänna en privat slutpunkt som är i väntande tillstånd. Följ dessa steg för att godkänna:

Kommentar

De steg som visas i det här avsnittet gäller främst ämnen. Du kan använda liknande steg för att godkänna privata slutpunkter för domäner.

  1. Välj den privata slutpunkt som du vill godkänna och välj Godkänn i verktygsfältet.

    Privat slutpunkt – väntande tillstånd

  2. I dialogrutan Godkänn anslutning anger du en kommentar (valfritt) och väljer Ja.

    Privat slutpunkt – godkänn

  3. Bekräfta att du ser statusen för slutpunkten som Godkänd.

    Privat slutpunkt – godkänt tillstånd

Avvisa en privat slutpunkt

Du kan avvisa en privat slutpunkt som är i väntande tillstånd eller godkänt tillstånd. Följ dessa steg för att avvisa:

Kommentar

Stegen som visas i det här avsnittet gäller ämnen. Du kan använda liknande steg för att avvisa privata slutpunkter för domäner.

  1. Välj den privata slutpunkt som du vill avvisa och välj Avvisa i verktygsfältet.

    Skärmbild som visar

  2. I dialogrutan Avvisa anslutning anger du en kommentar (valfritt) och väljer Ja.

    Privat slutpunkt – avvisa

  3. Bekräfta att du ser statusen för slutpunkten som Avvisad.

    Privat slutpunkt – nekat tillstånd

    Kommentar

    Du kan inte godkänna en privat slutpunkt i Azure Portal när den har avvisats.

Använda Azure CLI

Om du vill skapa en privat slutpunkt använder du metoden az network private-endpoint create enligt följande exempel:

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

Beskrivningar av de parametrar som används i exemplet finns i dokumentationen för az network private-endpoint create. Några punkter att notera i det här exemplet är:

  • För private-connection-resource-idanger du resurs-ID för ämnet eller domänen. I föregående exempel används typen: ämne.
  • för group-ids, ange topic eller domain. I föregående exempel topic används.

Om du vill ta bort en privat slutpunkt använder du metoden az network private-endpoint delete enligt följande exempel:

az network private-endpoint delete --resource-group <RESOURCE GROUP NAME> --name <PRIVATE ENDPOINT NAME>

Kommentar

Stegen som visas i det här avsnittet gäller ämnen. Du kan använda liknande steg för att skapa privata slutpunkter för domäner.

Förutsättningar

Uppdatera Azure Event Grid-tillägget för CLI genom att köra följande kommando:

az extension update -n eventgrid

Om tillägget inte är installerat kör du följande kommando för att installera det:

az extension add -n eventgrid

Skapa en privat slutpunkt

Om du vill skapa en privat slutpunkt använder du metoden az network private-endpoint create enligt följande exempel:

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

Beskrivningar av de parametrar som används i exemplet finns i dokumentationen för az network private-endpoint create. Några punkter att notera i det här exemplet är:

  • För private-connection-resource-idanger du resurs-ID för ämnet eller domänen. I föregående exempel används typen: ämne.
  • för group-ids, ange topic eller domain. I föregående exempel topic används.

Om du vill ta bort en privat slutpunkt använder du metoden az network private-endpoint delete enligt följande exempel:

az network private-endpoint delete --resource-group <RESOURCE GROUP NAME> --name <PRIVATE ENDPOINT NAME>

Kommentar

Stegen som visas i det här avsnittet gäller ämnen. Du kan använda liknande steg för att skapa privata slutpunkter för domäner.

Exempelskript

Här är ett exempelskript som skapar följande Azure-resurser:

  • Resursgrupp
  • Virtuellt nätverk
  • Undernät i det virtuella nätverket
  • Azure Event Grid-ämne
  • Privat slutpunkt för ämnet

Kommentar

Stegen som visas i det här avsnittet gäller ämnen. Du kan använda liknande steg för att skapa privata slutpunkter för domäner.

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

Godkänna en privat slutpunkt

Följande CLI-exempelfragment visar hur du godkänner en privat slutpunktsanslutning.

az eventgrid topic private-endpoint-connection approve \
    --resource-group $resourceGroupName \
    --topic-name $topicName \
    --name  $endpointName \
    --description "connection approved"

Avvisa en privat slutpunkt

Följande CLI-exempelfragment visar hur du avvisar en privat slutpunktsanslutning.

az eventgrid topic private-endpoint-connection reject \
    --resource-group $resourceGroupName \
    --topic-name $topicName \
    --name $endpointName \
    --description "Connection rejected"

Inaktivera åtkomst till offentligt nätverk

Som standard är offentlig nätverksåtkomst aktiverad för ett Event Grid-ämne eller en domän. Om du bara vill tillåta åtkomst via privata slutpunkter inaktiverar du åtkomsten till det offentliga nätverket genom att köra följande kommando:

az eventgrid topic update \
    --resource-group $resourceGroupName \
    --name $topicName \
    --public-network-access disabled

Använda PowerShell

Det här avsnittet visar hur du skapar en privat slutpunkt för ett ämne eller en domän med hjälp av PowerShell. Här är ett exempelskript med kommentarer.


# 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  

Godkänna en privat slutpunktsanslutning

Följande PowerShell-exempelfragment visar hur du godkänner en privat slutpunkt.

Kommentar

Stegen som visas i det här avsnittet gäller ämnen. Du kan använda liknande steg för att godkänna privata slutpunkter för domäner.


# 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

Avvisa en privat slutpunktsanslutning

I följande exempel visas hur du avvisar en privat slutpunkt med hjälp av PowerShell. Du kan hämta GUID för den privata slutpunkten från resultatet av det tidigare GET-kommandot.

Kommentar

Stegen som visas i det här avsnittet gäller ämnen. Du kan använda liknande steg för att avvisa privata slutpunkter för domäner.

# 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

Du kan godkänna anslutningen även efter att den har avvisats via API. Om du använder Azure Portal kan du inte godkänna en slutpunkt som har avvisats.