Konfigurowanie prywatnych punktów końcowych dla niestandardowych tematów lub domen usługi Azure Event Grid
Za pomocą prywatnych punktów końcowych można bezpiecznie zezwalać 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 niestandardowych tematów 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 pokazano, jak za pomocą witryny Azure Portal utworzyć prywatny punkt końcowy 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 pokazano, jak włączyć dostęp 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.
Na stronie Podstawy kreatora Tworzenie tematu wybierz pozycję Dalej: Sieć w dolnej części strony po wypełnieniu wymaganych pól.
Aby zezwolić na dostęp do tematu usługi Event Grid za pośrednictwem prywatnego punktu końcowego, wybierz opcję Dostęp prywatny .
W sekcji Połączenia prywatnego punktu końcowego wybierz przycisk + Prywatny punkt końcowy.
Na stronie Tworzenie prywatnego punktu końcowego wykonaj następujące kroki:
- W polu Nazwa wprowadź nazwę prywatnego punktu końcowego.
- Wybierz sieć wirtualną. Na liście rozwijanej są wyświetlane tylko sieci wirtualne w aktualnie wybranej subskrypcji i lokalizacji.
- Wybierz podsieć w wybranej sieci wirtualnej.
- Wybierz, czy prywatny punkt końcowy ma być zintegrowany z prywatną strefą DNS.
- Wybierz przycisk OK.
Teraz na stronie Tworzenie tematu wybierz pozycję Przejrzyj i utwórz w dolnej części strony.
Na stronie Przeglądanie i tworzenie wybierz pozycję Utwórz.
W przypadku istniejącego tematu
Zaloguj się do witryny Azure Portal i przejdź do tematu lub domeny.
Przejdź do karty Sieć na stronie tematu. Na karcie Dostęp publiczny wybierz pozycję Tylko prywatne punkty końcowe.
Przejdź do karty Połączenia prywatnego punktu końcowego, a następnie wybierz pozycję + Prywatny punkt końcowy na pasku narzędzi.
Na stronie Podstawowe wykonaj następujące kroki:
Wybierz subskrypcję platformy Azure, w której chcesz utworzyć prywatny punkt końcowy.
Wybierz grupę zasobów platformy Azure dla prywatnego punktu końcowego.
Wprowadź nazwę punktu końcowego.
W razie potrzeby zaktualizuj nazwę interfejsu sieciowego.
Wybierz region 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).
Następnie wybierz przycisk Dalej: Zasób > w dolnej części strony.
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: Sieć > wirtualna w dolnej części strony.
Na stronie Sieć wirtualna wybierz podsieć w sieci wirtualnej, w której chcesz wdrożyć prywatny punkt końcowy.
Wybierz sieć wirtualną. Na liście rozwijanej są wyświetlane tylko sieci wirtualne w aktualnie wybranej subskrypcji i lokalizacji.
Wybierz podsieć w wybranej sieci wirtualnej.
Określ, czy adres IP ma być przydzielany statycznie, czy dynamicznie.
Wybierz istniejącą grupę zabezpieczeń aplikacji lub utwórz grupę, a następnie skojarz z prywatnym punktem końcowym.
Wybierz przycisk Dalej: DNS > w dolnej części strony.
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.
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.
W obszarze Przeglądanie + tworzenie przejrzyj wszystkie ustawienia i wybierz pozycję Utwórz , aby utworzyć prywatny punkt końcowy.
Zarządzanie połączeniem łącza prywatnego
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 |
---|---|---|
None | Oczekiwanie | Połączenie jest tworzone ręcznie i oczekuje na zatwierdzenie od właściciela zasobu private Link. |
Zatwierdzanie | Zatwierdzona | Połączenie zostało automatycznie lub ręcznie zatwierdzone i jest gotowe do użycia. |
Odrzuć | Odrzucona | 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.
- Zaloguj się w witrynie Azure Portal.
- Na pasku wyszukiwania wpisz tematy usługi Event Grid lub domeny usługi Event Grid.
- Wybierz temat lub domenę, którą chcesz zarządzać.
- Wybierz kartę Sieć.
- Jeśli istnieją oczekujące połączenia, zostanie wyświetlone połączenie z komunikatem Oczekujące w stanie 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.
Wybierz prywatny punkt końcowy, który chcesz zatwierdzić, a następnie wybierz pozycję Zatwierdź na pasku narzędzi.
W oknie dialogowym Zatwierdzanie połączenia wprowadź komentarz (opcjonalnie) i wybierz pozycję Tak.
Upewnij się, że stan punktu końcowego jest wyświetlany jako 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.
Wybierz prywatny punkt końcowy, który chcesz odrzucić, a następnie wybierz pozycję Odrzuć na pasku narzędzi.
W oknie dialogowym Odrzucanie połączenia wprowadź komentarz (opcjonalnie) i wybierz pozycję Tak.
Upewnij się, że stan punktu końcowego jest wyświetlany jako Odrzucone.
Uwaga
Nie można zatwierdzić prywatnego punktu końcowego w witrynie 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 <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
Opisy parametrów używanych w tym przykładzie można znaleźć w dokumentacji polecenia az network private-endpoint create. Oto kilka kwestii, które należy zauważyć w tym przykładzie:
- W polu
private-connection-resource-id
określ identyfikator zasobu tematu lub domeny. W poprzednim przykładzie użyto typu: temat. - dla
group-ids
, określtopic
lubdomain
. W poprzednim przykładzietopic
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 <RESOURCE 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 usługi 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 <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
Opisy parametrów używanych w tym przykładzie można znaleźć w dokumentacji polecenia az network private-endpoint create. Oto kilka kwestii, które należy zauważyć w tym przykładzie:
- W polu
private-connection-resource-id
określ identyfikator zasobu tematu lub domeny. W poprzednim przykładzie użyto typu: temat. - dla
group-ids
, określtopic
lubdomain
. W poprzednim przykładzietopic
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 <RESOURCE 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 usługi Azure Event Grid
- Prywatny punkt końcowy 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
Użyj PowerShell
W tej sekcji pokazano, jak utworzyć prywatny punkt końcowy 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 przedstawia sposób zatwierdzania prywatnego punktu końcowego.
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 witryny Azure Portal, nie możesz zatwierdzić punktu końcowego, który został odrzucony.
Powiązana zawartość
- Aby dowiedzieć się więcej o sposobie konfigurowania ustawień zapory adresów IP, zobacz Konfigurowanie zapory IP dla tematów lub domen usługi Azure Event Grid.
- Aby rozwiązać problemy z łącznością sieciową, zobacz Rozwiązywanie problemów z łącznością sieciową