Konfigurera privata slutpunkter för Azure Event Grid anpassade ämnen eller domäner
Du kan använda privata slutpunkter för att tillåta inkommande 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.
Anteckning
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.
Anteckning
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.
På sidan Grundläggande instä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.
Om du vill tillåta åtkomst till Event Grid-ämnet via en privat slutpunkt väljer du alternativet Privat åtkomst .
Se nästa avsnitt för steg för att lägga till en privat slutpunkt.
För ett befintligt ämne
Logga in på Azure Portal och gå till ditt ämne eller din domän.
Växla till fliken Nätverk på ämnessidan. På fliken Offentlig åtkomst väljer du Endast privata slutpunkter.
Växla till fliken Privata slutpunktsanslutningar och välj sedan + Privat slutpunkt i verktygsfältet.
På sidan Grundläggande följer du dessa steg:
Välj en Azure-prenumeration där du vill skapa den privata slutpunkten.
Välj en Azure-resursgrupp för den privata slutpunkten.
Ange ett namn för slutpunkten.
Uppdatera namnet på nätverksgränssnittet om det behövs.
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).
Välj sedan knappen Nästa: Resurs > längst ned på sidan.
På sidan Resurs följer du de här stegen, bekräftar att ämnet har valts för Underresurs för mål och väljer sedan Nästa: Virtual Network > längst ned på sidan.
På sidan Virtual Network väljer du undernätet i ett virtuellt nätverk där du vill distribuera den privata slutpunkten.
Välj ett virtuellt nätverk. Endast virtuella nätverk i den valda prenumerationen och platsen visas i listrutan.
Välj ett undernät i det virtuella nätverk som du har valt.
Ange om du vill att IP-adressen ska allokeras statiskt eller dynamiskt.
Välj en befintlig programsäkerhetsgrupp eller skapa en och associera sedan med den privata slutpunkten.
Välj Nästa: DNS-knappen > längst ned på sidan.
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.
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.
På sidan Granska + skapa granskar du alla inställningar och väljer Skapa för att skapa den privata slutpunkten.
Hantera privat länkanslutning
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 ägaren av resursen godkänner anslutningsbegäran.
Det finns fyra etableringstillstånd:
Tjänståtgärd | Privat slutpunktstillstånd för tjänstkonsument | Beskrivning |
---|---|---|
Ingen | Väntar | Anslutningen skapas manuellt och väntar på godkännande från den privata Link-resursägaren. |
Godkänn | Godkända | Anslutningen godkändes automatiskt eller manuellt och är redo att användas. |
Avvisa | Avslagen | 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.
- Logga in på Azure-portalen.
- I sökfältet skriver du Event Grid-ämnen eller Event Grid-domäner.
- Välj det ämne eller den domän som du vill hantera.
- Välj fliken Nätverk.
- Om det finns några väntande anslutningar visas en anslutning med Väntande i etableringstillståndet.
Godkänna en privat slutpunkt
Du kan godkänna en privat slutpunkt som är i väntande tillstånd. Godkänn genom att följa dessa steg:
Anteckning
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.
Välj den privata slutpunkt som du vill godkänna och välj Godkänn i verktygsfältet.
I dialogrutan Godkänn anslutning anger du en kommentar (valfritt) och väljer Ja.
Bekräfta att du ser statusen för slutpunkten som Godkä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 om du vill avvisa:
Anteckning
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.
Välj den privata slutpunkt som du vill avvisa och välj Avvisa i verktygsfältet.
I dialogrutan Avvisa anslutning anger du en kommentar (valfritt) och väljer Ja.
Bekräfta att du ser statusen för slutpunkten som Avvisad.
Anteckning
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 <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
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-id
anger du resurs-ID för ämnet eller domänen. I föregående exempel används typen: ämne. - för
group-ids
, angetopic
ellerdomain
. I föregående exempeltopic
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 <RESOURECE GROUP NAME> --name <PRIVATE ENDPOINT NAME>
Anteckning
Stegen som visas i det här avsnittet är för ämnen. Du kan använda liknande steg för att skapa privata slutpunkter för domäner.
Krav
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 <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
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-id
anger du resurs-ID för ämnet eller domänen. I föregående exempel används typen: ämne. - för
group-ids
, angetopic
ellerdomain
. I föregående exempeltopic
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 <RESOURECE GROUP NAME> --name <PRIVATE ENDPOINT NAME>
Anteckning
Stegen som visas i det här avsnittet är för ä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
Anteckning
Stegen som visas i det här avsnittet är för ä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änn 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 åtkomst till offentligt nätverk aktiverat 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änd 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.
Anteckning
Stegen som visas i det här avsnittet är för ä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.
Anteckning
Stegen som visas i det här avsnittet är för ä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:et. Om du använder Azure Portal kan du inte godkänna en slutpunkt som har avvisats.
Nästa steg
- Mer information om hur du konfigurerar IP-brandväggsinställningar finns i Konfigurera IP-brandvägg för Azure Event Grid ämnen eller domäner.
- Information om hur du felsöker problem med nätverksanslutningar finns i Felsöka problem med nätverksanslutning