Konfigurace privátních koncových bodů pro Azure Event Grid vlastních témat nebo domén

Privátní koncové body můžete použít k bezpečnému povolení příchozího přenosu dat událostí přímo z vaší virtuální sítě do vlastních témat a domén přes privátní propojení, aniž byste museli procházet přes veřejný internet. Privátní koncový bod používá IP adresu z adresního prostoru virtuální sítě pro vaše vlastní téma nebo doménu. Další koncepční informace najdete v tématu Zabezpečení sítě.

Tento článek popisuje, jak nakonfigurovat privátní koncové body pro vlastní témata nebo domény.

Poznámka

V současné době se u systémových témat nepodporují privátní koncové body.

Použití webu Azure Portal

V této části se dozvíte, jak pomocí Azure Portal vytvořit privátní koncový bod pro téma nebo doménu.

Poznámka

Kroky uvedené v této části jsou většinou určené pro vlastní témata. Podobný postup můžete použít k vytvoření privátních koncových bodů pro domény.

Při vytváření nového tématu

V této části se dozvíte, jak povolit privátní síťový přístup k tématu event gridu nebo doméně. Podrobné pokyny k vytvoření nového tématu najdete v tématu Vytvoření vlastního tématu.

  1. Na stránce Základy v průvodci Vytvořit téma vyberte po vyplnění požadovaných polí v dolní části stránky Další: Sítě .

    Obrázek znázorňující výběr odkazu Sítě v dolní části stránky

  2. Pokud chcete povolit přístup k tématu Event Gridu prostřednictvím privátního koncového bodu, vyberte možnost Privátní přístup .

    Obrázek znázorňující výběr možnosti Privátní přístup na stránce Sítě v průvodci vytvořením tématu.

  3. Postup přidání privátního koncového bodu najdete v další části.

Pro existující téma

  1. Přihlaste se k Azure Portal a přejděte do svého tématu nebo domény.

  2. Na stránce s tématem přepněte na kartu Sítě . Na kartě Veřejný přístup vyberte Pouze privátní koncové body.

    Snímek obrazovky znázorňující stránku Přístup k veřejné síti s vybranou možností Pouze privátní koncové body

  3. Přepněte na kartu Připojení privátního koncového bodu a pak na panelu nástrojů vyberte + Privátní koncový bod .

    Snímek obrazovky s výběrem možnosti + Propojení privátního koncového bodu na kartě Připojení privátního koncového bodu

  4. Na stránce Základy postupujte takto:

    1. Vyberte předplatné Azure , ve kterém chcete vytvořit privátní koncový bod.

    2. Vyberte skupinu prostředků Azure pro privátní koncový bod.

    3. Zadejte názevkoncového bodu.

    4. V případě potřeby aktualizujte názevsíťového rozhraní .

    5. Vyberte oblast koncového bodu. Privátní koncový bod musí být ve stejné oblasti jako vaše virtuální síť, ale může být v jiné oblasti než prostředek privátního propojení (v tomto příkladu je to téma Event Gridu).

    6. Pak vyberte Tlačítko Další: Prostředek > v dolní části stránky.

      Snímek obrazovky zobrazující stránku Základy průvodce vytvořením privátního koncového bodu

  5. Na stránce Prostředek postupujte takto, ověřte, že je vybrané téma pro cílový dílčí prostředek, a pak vyberte Tlačítko Další: Virtual Network > v dolní části stránky.

    Snímek obrazovky se stránkou Prostředek v průvodci vytvořením privátního koncového bodu

  6. Na stránce Virtual Network vyberte podsíť ve virtuální síti, do které chcete privátní koncový bod nasadit.

    1. Vyberte virtuální síť. V rozevíracím seznamu jsou uvedené pouze virtuální sítě v aktuálně vybraném předplatném a umístění.

    2. Vyberte podsíť ve virtuální síti, kterou jste vybrali.

    3. Určete, jestli chcete IP adresu přidělovat staticky nebo dynamicky.

    4. Vyberte existující skupinu zabezpečení aplikace nebo ji vytvořte a pak ji přidružte k privátnímu koncovému bodu.

    5. Vyberte Další: tlačítko DNS > v dolní části stránky.

      Snímek obrazovky se stránkou Sítě v průvodci vytvořením privátního koncového bodu

  7. Na stránce DNS vyberte, jestli chcete privátní koncový bod integrovat s privátní zónou DNS, a pak v dolní části stránky vyberte Další: Značky .

    Snímek obrazovky zobrazující stránku DNS průvodce vytvořením privátního koncového bodu

  8. Na stránce Značky vytvořte všechny značky (názvy a hodnoty), které chcete přidružit k prostředku privátního koncového bodu. Pak v dolní části stránky vyberte tlačítko Zkontrolovat a vytvořit .

  9. V části Zkontrolovat a vytvořit zkontrolujte všechna nastavení a vyberte Vytvořit , abyste vytvořili privátní koncový bod.

Při vytváření privátního koncového bodu musí být připojení schváleno. Pokud je prostředek, pro který vytváříte privátní koncový bod, ve vašem adresáři, můžete žádost o připojení schválit za předpokladu, že máte dostatečná oprávnění. Pokud se připojujete k prostředku Azure v jiném adresáři, musíte počkat, až vlastník tohoto prostředku vaši žádost o připojení schválí.

Existují čtyři stavy zřizování:

Akce služby Stav privátního koncového bodu příjemce služby Description
Žádná Čekající Připojení se vytvoří ručně a čeká na schválení vlastníkem prostředku privátního propojení.
Schválení Schválené Připojení bylo schváleno automaticky nebo ručně a je připravené k použití.
Odmítnout Zamítnuto Vlastník prostředku privátního propojení odmítl připojení.
Odebrat Odpojeno Připojení odebral vlastník prostředku privátního propojení, privátní koncový bod bude informativní a měl by se odstranit kvůli vyčištění.

Správa připojení privátního koncového bodu

V následujících částech se dozvíte, jak schválit nebo odmítnout připojení privátního koncového bodu.

  1. Přihlaste se k webu Azure Portal.
  2. Na panelu hledání zadejte témata event gridu nebo domény Event Gridu.
  3. Vyberte téma nebo doménu , kterou chcete spravovat.
  4. Vyberte kartu Sítě.
  5. Pokud nějaká připojení čekají na vyřízení, zobrazí se připojení se stavem Čeká na vyřízení ve stavu zřizování.

Schválení privátního koncového bodu

Můžete schválit privátní koncový bod, který je v čekajícím stavu. Schválení provedete takto:

Poznámka

Kroky uvedené v této části jsou většinou určené pro témata. Podobný postup můžete použít ke schválení privátních koncových bodů pro domény.

  1. Vyberte privátní koncový bod , který chcete schválit, a na panelu nástrojů vyberte Schválit .

    Privátní koncový bod – čekající stav

  2. V dialogovém okně Schválit připojení zadejte komentář (volitelné) a vyberte Ano.

    Privátní koncový bod – Schválení

  3. Ověřte, že se zobrazuje stav koncového bodu jako Schváleno.

    Privátní koncový bod – schválený stav

Odmítnutí privátního koncového bodu

Privátní koncový bod, který je ve stavu čekání nebo ve schváleném stavu, můžete odmítnout. Pokud chcete odmítnout, postupujte takto:

Poznámka

Kroky uvedené v této části jsou určené pro témata. Podobný postup můžete použít k odmítnutí privátních koncových bodů pro domény.

  1. Vyberte privátní koncový bod , který chcete odmítnout, a na panelu nástrojů vyberte Odmítnout .

    Snímek obrazovky znázorňující síť – připojení privátních koncových bodů s vybranou možností Odmítnout

  2. V dialogovém okně Odmítnout připojení zadejte komentář (volitelný) a vyberte Ano.

    Privátní koncový bod – odmítnutí

  3. Ověřte, že se zobrazuje stav koncového bodu jako Odmítnuto.

    Privátní koncový bod – odmítnutý stav

    Poznámka

    Privátní koncový bod nemůžete v Azure Portal schválit, jakmile je odmítnutý.

Použití Azure CLI

K vytvoření privátního koncového bodu použijte metodu az network private-endpoint create , jak je znázorněno v následujícím příkladu:

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

Popisy parametrů použitých v příkladu najdete v dokumentaci k příkazu az network private-endpoint create. V tomto příkladu je potřeba si všimnout několika bodů:

  • Pro private-connection-resource-idzadejte ID prostředku tématu nebo domény. Předchozí příklad používá typ: téma.
  • pro group-ids, zadejte topic nebo domain. V předchozím příkladu topic se používá.

Pokud chcete odstranit privátní koncový bod, použijte metodu az network private-endpoint delete , jak je znázorněno v následujícím příkladu:

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

Poznámka

Postup uvedený v této části je určený pro témata. Podobný postup můžete použít k vytvoření privátních koncových bodů pro domény.

Požadavky

Spuštěním následujícího příkazu aktualizujte rozšíření Azure Event Grid pro rozhraní příkazového řádku:

az extension update -n eventgrid

Pokud rozšíření není nainstalované, nainstalujte ho spuštěním následujícího příkazu:

az extension add -n eventgrid

Vytvoření privátního koncového bodu

K vytvoření privátního koncového bodu použijte metodu az network private-endpoint create , jak je znázorněno v následujícím příkladu:

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

Popisy parametrů použitých v příkladu najdete v dokumentaci k příkazu az network private-endpoint create. V tomto příkladu je potřeba si všimnout několika bodů:

  • Pro private-connection-resource-idzadejte ID prostředku tématu nebo domény. Předchozí příklad používá typ: téma.
  • pro group-ids, zadejte topic nebo domain. V předchozím příkladu topic se používá.

Pokud chcete odstranit privátní koncový bod, použijte metodu az network private-endpoint delete , jak je znázorněno v následujícím příkladu:

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

Poznámka

Postup uvedený v této části je určený pro témata. Podobný postup můžete použít k vytvoření privátních koncových bodů pro domény.

Ukázkový skript

Tady je ukázkový skript, který vytvoří následující prostředky Azure:

  • Skupina prostředků
  • Virtuální síť
  • Podsíť ve virtuální síti
  • Azure Event Grid téma
  • Privátní koncový bod pro toto téma

Poznámka

Postup uvedený v této části je určený pro témata. Podobný postup můžete použít k vytvoření privátních koncových bodů pro domény.

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

Schválení privátního koncového bodu

Následující ukázkový fragment kódu rozhraní příkazového řádku ukazuje, jak schválit připojení privátního koncového bodu.

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

Odmítnutí privátního koncového bodu

Následující ukázkový fragment kódu rozhraní příkazového řádku ukazuje, jak odmítnout připojení privátního koncového bodu.

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

Zakázání přístupu k veřejné síti

Ve výchozím nastavení je pro téma nebo doménu Event Gridu povolený veřejný síťový přístup. Pokud chcete povolit přístup jenom přes privátní koncové body, zakažte veřejný síťový přístup spuštěním následujícího příkazu:

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

Použití prostředí PowerShell

V této části se dozvíte, jak vytvořit privátní koncový bod pro téma nebo doménu pomocí PowerShellu. Tady je ukázkový skript s komentáři.


# 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  

Schválení připojení privátního koncového bodu

Následující ukázkový fragment kódu PowerShellu ukazuje, jak schválit privátní koncový bod.

Poznámka

Postup uvedený v této části je určený pro témata. Podobný postup můžete použít ke schválení privátních koncových bodů pro domény.


# 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

Odmítnutí připojení privátního koncového bodu

Následující příklad ukazuje, jak odmítnout privátní koncový bod pomocí PowerShellu. Identifikátor GUID privátního koncového bodu můžete získat z výsledku předchozího příkazu GET.

Poznámka

Postup uvedený v této části je určený pro témata. Podobný postup můžete použít k odmítnutí privátních koncových bodů pro domény.

# 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

Připojení můžete schválit i po odmítnutí prostřednictvím rozhraní API. Pokud používáte Azure Portal, nemůžete schválit odmítnutý koncový bod.

Další kroky