Konfigurowanie prywatnych punktów końcowych dla Azure Event Grid niestandardowych tematów lub domen

Możesz użyć prywatnych punktów końcowych , aby zezwolić na ruch przychodzący zdarzeń bezpośrednio z sieci wirtualnej do niestandardowych tematów i domen za pośrednictwem łącza prywatnego bez przechodzenia przez publiczny Internet. Prywatny punkt końcowy używa adresu IP z przestrzeni adresowej sieci wirtualnej dla niestandardowego tematu lub domeny. Aby uzyskać więcej informacji koncepcyjnych, zobacz Zabezpieczenia sieci.

W tym artykule opisano sposób konfigurowania prywatnych punktów końcowych dla tematów niestandardowych lub domen.

Uwaga

Obecnie prywatne punkty końcowe nie są obsługiwane w przypadku tematów systemowych.

Korzystanie z witryny Azure Portal

W tej sekcji przedstawiono sposób użycia Azure Portal do utworzenia prywatnego punktu końcowego dla tematu lub domeny.

Uwaga

Kroki przedstawione w tej sekcji dotyczą głównie tematów niestandardowych. Możesz użyć podobnych kroków, aby utworzyć prywatne punkty końcowe dla domen.

Podczas tworzenia nowego tematu

W tej sekcji przedstawiono sposób włączania dostępu do sieci prywatnej dla tematu usługi Event Grid lub domeny. Aby uzyskać instrukcje krok po kroku dotyczące tworzenia nowego tematu, zobacz Tworzenie tematu niestandardowego.

  1. Na stronie Podstawowe kreatora Tworzenie tematu wybierz pozycję Dalej: Sieć w dolnej części strony po wypełnieniu wymaganych pól.

    Obraz przedstawiający wybór linku Sieć w dolnej części strony.

  2. Aby zezwolić na dostęp do tematu usługi Event Grid za pośrednictwem prywatnego punktu końcowego, wybierz opcję Dostęp prywatny .

    Obraz przedstawiający wybór opcji Dostęp prywatny na stronie Sieć kreatora Tworzenia tematu.

  3. Zobacz następną sekcję, aby uzyskać instrukcje dotyczące dodawania prywatnego punktu końcowego.

W przypadku istniejącego tematu

  1. Zaloguj się do Azure Portal i przejdź do tematu lub domeny.

  2. Przejdź do karty Sieć na stronie tematu. Na karcie Dostęp publiczny wybierz pozycję Tylko prywatne punkty końcowe.

    Zrzut ekranu przedstawiający stronę Dostęp do sieci publicznej z wybraną opcją Tylko prywatne punkty końcowe.

  3. Przejdź do karty Połączenia z prywatnym punktem końcowym , a następnie wybierz pozycję + Prywatny punkt końcowy na pasku narzędzi.

    Zrzut ekranu przedstawiający wybór linku + Prywatny punkt końcowy na karcie Połączenie z prywatnym punktem końcowym.

  4. Na stronie Podstawy wykonaj następujące kroki:

    1. Wybierz subskrypcję platformy Azure , w której chcesz utworzyć prywatny punkt końcowy.

    2. Wybierz grupę zasobów platformy Azure dla prywatnego punktu końcowego.

    3. Wprowadź nazwępunktu końcowego.

    4. W razie potrzeby zaktualizuj nazwęinterfejsu sieciowego .

    5. Wybierz region dla punktu końcowego. Prywatny punkt końcowy musi znajdować się w tym samym regionie co sieć wirtualna, ale może znajdować się w innym regionie niż zasób łącza prywatnego (w tym przykładzie temat usługi Event Grid).

    6. Następnie wybierz przycisk Dalej: Zasób > w dolnej części strony.

      Zrzut ekranu przedstawiający stronę Podstawowe w kreatorze Tworzenia prywatnego punktu końcowego.

  5. Na stronie Zasób wykonaj następujące kroki, upewnij się, że temat jest wybrany dla podsób docelowy, a następnie wybierz przycisk Dalej: Virtual Network > w dolnej części strony.

    Zrzut ekranu przedstawiający stronę Zasób kreatora Tworzenia prywatnego punktu końcowego.

  6. Na stronie Virtual Network należy wybrać podsieć w sieci wirtualnej, w której chcesz wdrożyć prywatny punkt końcowy.

    1. Wybierz sieć wirtualną. Na liście rozwijanej są wyświetlane tylko sieci wirtualne w aktualnie wybranej subskrypcji i lokalizacji.

    2. Wybierz podsieć w wybranej sieci wirtualnej.

    3. Określ, czy adres IP ma być przydzielany statycznie, czy dynamicznie.

    4. Wybierz istniejącą grupę zabezpieczeń aplikacji lub utwórz grupę, a następnie skojarz z prywatnym punktem końcowym.

    5. Wybierz przycisk Dalej: DNS > w dolnej części strony.

      Zrzut ekranu przedstawiający stronę Sieć w kreatorze Tworzenie prywatnego punktu końcowego.

  7. Na stronie DNS wybierz, czy prywatny punkt końcowy ma być zintegrowany z prywatną strefą DNS, a następnie wybierz pozycję Dalej: Tagi w dolnej części strony.

    Zrzut ekranu przedstawiający stronę DNS kreatora Tworzenie prywatnego punktu końcowego.

  8. Na stronie Tagi utwórz wszystkie tagi (nazwy i wartości), które chcesz skojarzyć z zasobem prywatnego punktu końcowego. Następnie wybierz przycisk Przejrzyj i utwórz w dolnej części strony.

  9. W obszarze Przeglądanie + tworzenie przejrzyj wszystkie ustawienia i wybierz pozycję Utwórz , aby utworzyć prywatny punkt końcowy.

Podczas tworzenia prywatnego punktu końcowego połączenie musi zostać zatwierdzone. Jeśli zasób, dla którego tworzysz prywatny punkt końcowy, znajduje się w katalogu, możesz zatwierdzić żądanie połączenia, pod warunkiem, że masz wystarczające uprawnienia. Jeśli łączysz się z zasobem platformy Azure w innym katalogu, musisz poczekać, aż właściciel tego zasobu zatwierdzi żądanie połączenia.

Istnieją cztery stany aprowizacji:

Akcja w usłudze Stan prywatnego punktu końcowego odbiorcy usługi Opis
Brak Oczekiwanie Połączenie jest tworzone ręcznie i oczekuje na zatwierdzenie od właściciela zasobu usługi Private Link.
Zatwierdzenie Approved (Zatwierdzono) Połączenie zostało automatycznie lub ręcznie zatwierdzone i jest gotowe do użycia.
Reject Odrzucone Połączenie zostało odrzucone przez właściciela zasobu łącza prywatnego.
Usuń Odłączony Połączenie zostało usunięte przez właściciela zasobu łącza prywatnego, prywatny punkt końcowy staje się informacyjny i powinien zostać usunięty w celu oczyszczenia.

Jak zarządzać połączeniem prywatnego punktu końcowego

W poniższych sekcjach pokazano, jak zatwierdzić lub odrzucić połączenie prywatnego punktu końcowego.

  1. Zaloguj się do Azure portal.
  2. Na pasku wyszukiwania wpisz tematy usługi Event Grid lub domeny usługi Event Grid.
  3. Wybierz temat lub domenę , którą chcesz zarządzać.
  4. Wybierz kartę Sieć.
  5. Jeśli istnieją oczekujące połączenia, zostanie wyświetlone połączenie z oczekującym stanem aprowizacji.

Aby zatwierdzić prywatny punkt końcowy

Możesz zatwierdzić prywatny punkt końcowy, który znajduje się w stanie oczekiwania. Aby zatwierdzić, wykonaj następujące kroki:

Uwaga

Kroki przedstawione w tej sekcji dotyczą głównie tematów. Możesz użyć podobnych kroków, aby zatwierdzić prywatne punkty końcowe dla domen.

  1. Wybierz prywatny punkt końcowy , który chcesz zatwierdzić, a następnie wybierz pozycję Zatwierdź na pasku narzędzi.

    Prywatny punkt końcowy — stan oczekiwania

  2. W oknie dialogowym Zatwierdzanie połączenia wprowadź komentarz (opcjonalnie) i wybierz pozycję Tak.

    Prywatny punkt końcowy — zatwierdzanie

  3. Upewnij się, że stan punktu końcowego jest wyświetlany jako Zatwierdzony.

    Prywatny punkt końcowy — stan zatwierdzony

Aby odrzucić prywatny punkt końcowy

Możesz odrzucić prywatny punkt końcowy, który znajduje się w stanie oczekiwania lub zatwierdzonym. Aby odrzucić, wykonaj następujące kroki:

Uwaga

Kroki przedstawione w tej sekcji dotyczą tematów. Możesz użyć podobnych kroków, aby odrzucić prywatne punkty końcowe dla domen.

  1. Wybierz prywatny punkt końcowy , który chcesz odrzucić, a następnie wybierz pozycję Odrzuć na pasku narzędzi.

    Zrzut ekranu przedstawiający pozycję

  2. W oknie dialogowym Odrzucanie połączenia wprowadź komentarz (opcjonalnie) i wybierz pozycję Tak.

    Prywatny punkt końcowy — odrzucanie

  3. Upewnij się, że stan punktu końcowego jest wyświetlany jako Odrzucono.

    Prywatny punkt końcowy — stan odrzucony

    Uwaga

    Nie można zatwierdzić prywatnego punktu końcowego w Azure Portal po jego odrzuceniu.

Interfejs wiersza polecenia platformy Azure

Aby utworzyć prywatny punkt końcowy, użyj metody az network private-endpoint create , jak pokazano w poniższym przykładzie:

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

Opisy parametrów używanych w przykładzie można znaleźć w dokumentacji polecenia az network private-endpoint create. Oto kilka kwestii, które należy zwrócić uwagę w tym przykładzie:

  • W polu private-connection-resource-idokreśl identyfikator zasobu tematu lub domeny. W poprzednim przykładzie użyto typu: temat.
  • dla group-idsparametru określ topic wartość lub domain. W poprzednim przykładzie topic jest używany.

Aby usunąć prywatny punkt końcowy, użyj metody az network private-endpoint delete , jak pokazano w poniższym przykładzie:

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

Uwaga

Kroki przedstawione w tej sekcji dotyczą tematów. Możesz użyć podobnych kroków, aby utworzyć prywatne punkty końcowe dla domen.

Wymagania wstępne

Zaktualizuj rozszerzenie Azure Event Grid dla interfejsu wiersza polecenia, uruchamiając następujące polecenie:

az extension update -n eventgrid

Jeśli rozszerzenie nie jest zainstalowane, uruchom następujące polecenie, aby go zainstalować:

az extension add -n eventgrid

Tworzenie prywatnego punktu końcowego

Aby utworzyć prywatny punkt końcowy, użyj metody az network private-endpoint create , jak pokazano w poniższym przykładzie:

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

Opisy parametrów używanych w przykładzie można znaleźć w dokumentacji polecenia az network private-endpoint create. Oto kilka kwestii, które należy zwrócić uwagę w tym przykładzie:

  • W polu private-connection-resource-idokreśl identyfikator zasobu tematu lub domeny. W poprzednim przykładzie użyto typu: temat.
  • dla group-idsparametru określ topic wartość lub domain. W poprzednim przykładzie topic jest używany.

Aby usunąć prywatny punkt końcowy, użyj metody az network private-endpoint delete , jak pokazano w poniższym przykładzie:

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

Uwaga

Kroki przedstawione w tej sekcji dotyczą tematów. Możesz użyć podobnych kroków, aby utworzyć prywatne punkty końcowe dla domen.

Przykładowy skrypt

Oto przykładowy skrypt, który tworzy następujące zasoby platformy Azure:

  • Grupa zasobów
  • Sieć wirtualna
  • Podsieć w sieci wirtualnej
  • temat Azure Event Grid
  • Prywatny punkt końcowy dla tematu

Uwaga

Kroki przedstawione w tej sekcji dotyczą tematów. Możesz użyć podobnych kroków, aby utworzyć prywatne punkty końcowe dla domen.

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

Zatwierdzanie prywatnego punktu końcowego

Poniższy przykładowy fragment kodu interfejsu wiersza polecenia pokazuje, jak zatwierdzić połączenie prywatnego punktu końcowego.

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

Odrzucanie prywatnego punktu końcowego

Poniższy przykładowy fragment kodu interfejsu wiersza polecenia pokazuje, jak odrzucić połączenie prywatnego punktu końcowego.

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

Wyłączanie dostępu do sieci publicznej

Domyślnie dostęp do sieci publicznej jest włączony dla tematu lub domeny usługi Event Grid. Aby zezwolić na dostęp tylko za pośrednictwem prywatnych punktów końcowych, wyłącz dostęp do sieci publicznej, uruchamiając następujące polecenie:

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

Korzystanie z programu PowerShell

W tej sekcji przedstawiono sposób tworzenia prywatnego punktu końcowego dla tematu lub domeny przy użyciu programu PowerShell. Oto przykładowy skrypt z komentarzami.


# 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  

Zatwierdzanie połączenia prywatnego punktu końcowego

Poniższy przykładowy fragment kodu programu PowerShell pokazuje, jak zatwierdzić prywatny punkt końcowy.

Uwaga

Kroki przedstawione w tej sekcji dotyczą tematów. Możesz użyć podobnych kroków, aby zatwierdzić prywatne punkty końcowe dla domen.


# 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

Odrzucanie połączenia prywatnego punktu końcowego

W poniższym przykładzie pokazano, jak odrzucić prywatny punkt końcowy przy użyciu programu PowerShell. Identyfikator GUID prywatnego punktu końcowego można pobrać z wyniku poprzedniego polecenia GET.

Uwaga

Kroki przedstawione w tej sekcji dotyczą tematów. Możesz użyć podobnych kroków, aby odrzucić prywatne punkty końcowe dla domen.

# 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

Połączenie można zatwierdzić nawet po jego odrzuceniu za pośrednictwem interfejsu API. Jeśli używasz Azure Portal, nie możesz zatwierdzić punktu końcowego, który został odrzucony.

Następne kroki