Sdílet prostřednictvím


Doručování událostí se spravovanou identitou

Tento článek popisuje, jak používat identitu spravované služby pro téma systému Azure Event Grid, vlastní téma nebo doménu. Slouží k předávání událostí do podporovaných cílů, jako jsou fronty a témata služby Service Bus, centra událostí a účty úložiště.

Požadavky

  1. Přiřaďte identitu přiřazenou systémem nebo identitu přiřazenou uživatelem k systémovému tématu, vlastnímu tématu nebo doméně.

  2. Přidejte identitu do příslušné role (například odesílatele dat služby Service Bus) v cíli (například fronta služby Service Bus). Podrobný postup najdete v tématu Přidání identity do rolí Azure v cílech.

    Poznámka:

    V současné době není možné doručovat události pomocí privátních koncových bodů. Další informace najdete v části Privátní koncové body na konci tohoto článku.

Vytvoření odběrů událostí, které používají identitu

Jakmile budete mít vlastní téma event Gridu nebo téma systému nebo doménu se spravovanou identitou a přidáte ji do příslušné role v cíli, jste připraveni vytvořit předplatná, která tuto identitu používají.

Použití portálu Azure Portal

Při vytváření odběru událostí se zobrazí možnost povolení použití identity přiřazené systémem nebo identity přiřazené uživatelem pro koncový bod v části PODROBNOSTI KONCOVÉHO BODU.

Tady je příklad povolení identity přiřazené systémem při vytváření odběru událostí s frontou Service Bus jako cílem.

Screenshot that shows how to enable an identity when creating an event subscription for a Service Bus queue.

Můžete také povolit použití identity přiřazené systémem pro nedoručených dopisů na kartě Další funkce .

Screenshot that shows how to enable a system-assigned identity for dead-lettering.

Spravovanou identitu můžete povolit v odběru událostí po jeho vytvoření. Na stránce Odběr událostí pro odběr události přepněte na kartu Další funkce a zobrazte možnost. Identitu můžete také povolit pro nedoručované dopisy na této stránce.

Screenshot that shows how to enable a system-assigned identity on an existing event subscription.

Pokud jste pro toto téma povolili identity přiřazené uživatelem, zobrazí se v rozevíracím seznamu možnost Identity přiřazené uživatelem pro typ spravované identity. Pokud vyberete možnost Přiřazený uživatelem pro typ spravované identity, můžete vybrat identitu přiřazenou uživatelem, kterou chcete použít k doručování událostí.

Screenshot that shows how to enable a user-assigned identity on an event subscription.

Použití Azure CLI – Fronta služby Service Bus

V této části se dozvíte, jak pomocí Azure CLI povolit použití identity přiřazené systémem k doručování událostí do fronty služby Service Bus. Identita musí být členem role odesílatele dat služby Azure Service Bus. Musí být také členem role Přispěvatel dat objektů blob služby Storage v účtu úložiště, který se používá pro nedoručených dopisů.

Definování proměnných

Nejprve zadejte hodnoty následujících proměnných, které se mají použít v příkazu rozhraní příkazového řádku.

subid="<AZURE SUBSCRIPTION ID>"
rg = "<RESOURCE GROUP of EVENT GRID CUSTOM TOPIC>"
topicname = "<EVENT GRID TOPIC NAME>"

# get the service bus queue resource id
queueid=$(az servicebus queue show --namespace-name <SERVICE BUS NAMESPACE NAME> --name <QUEUE NAME> --resource-group <RESOURCE GROUP NAME> --query id --output tsv)
sb_esname = "<Specify a name for the event subscription>" 

Vytvoření odběru událostí pomocí spravované identity pro doručování

Tento ukázkový příkaz vytvoří odběr událostí pro vlastní téma Event Gridu s typem koncového bodu nastaveným na frontu Service Bus.

az eventgrid event-subscription create  
    --source-resource-id /subscriptions/$subid/resourceGroups/$rg/providers/Microsoft.EventGrid/topics/$topicname
    --delivery-identity-endpoint-type servicebusqueue  
    --delivery-identity systemassigned 
    --delivery-identity-endpoint $queueid
    -n $sb_esname 

Vytvoření odběru událostí pomocí spravované identity pro doručování a nedoručování

Tento ukázkový příkaz vytvoří odběr událostí pro vlastní téma Event Gridu s typem koncového bodu nastaveným na frontu Service Bus. Určuje také, že se identita spravovaná systémem použije k nedoručenému dopisování.

storageid=$(az storage account show --name demoStorage --resource-group gridResourceGroup --query id --output tsv)
deadletterendpoint="$storageid/blobServices/default/containers/<BLOB CONTAINER NAME>"

az eventgrid event-subscription create  
    --source-resource-id /subscriptions/$subid/resourceGroups/$rg/providers/Microsoft.EventGrid/topics/$topicname 
    --delivery-identity-endpoint-type servicebusqueue
    --delivery-identity systemassigned 
    --delivery-identity-endpoint $queueid
    --deadletter-identity-endpoint $deadletterendpoint 
    --deadletter-identity systemassigned 
    -n $sb_esnameq 

Použití Azure CLI – Event Hubs

V této části se dozvíte, jak pomocí Azure CLI povolit použití identity přiřazené systémem k doručování událostí do centra událostí. Identita musí být členem role odesílatele dat služby Azure Event Hubs. Musí být také členem role Přispěvatel dat objektů blob služby Storage v účtu úložiště, který se používá pro nedoručených dopisů.

Definování proměnných

subid="<AZURE SUBSCRIPTION ID>"
rg = "<RESOURCE GROUP of EVENT GRID CUSTOM TOPIC>"
topicname = "<EVENT GRID CUSTOM TOPIC NAME>"

hubid=$(az eventhubs eventhub show --name <EVENT HUB NAME> --namespace-name <NAMESPACE NAME> --resource-group <RESOURCE GROUP NAME> --query id --output tsv)
eh_esname = "<SPECIFY EVENT SUBSCRIPTION NAME>" 

Vytvoření odběru událostí pomocí spravované identity pro doručování

Tento ukázkový příkaz vytvoří odběr událostí pro vlastní téma Event Gridu s typem koncového bodu nastaveným na Službu Event Hubs.

az eventgrid event-subscription create  
    --source-resource-id /subscriptions/$subid/resourceGroups/$rg/providers/Microsoft.EventGrid/topics/$topicname 
    --delivery-identity-endpoint-type eventhub 
    --delivery-identity systemassigned 
    --delivery-identity-endpoint $hubid
    -n $sbq_esname 

Vytvoření odběru událostí pomocí spravované identity pro doručování + deadletter

Tento ukázkový příkaz vytvoří odběr událostí pro vlastní téma Event Gridu s typem koncového bodu nastaveným na Službu Event Hubs. Určuje také, že se identita spravovaná systémem použije k nedoručenému dopisování.

storageid=$(az storage account show --name demoStorage --resource-group gridResourceGroup --query id --output tsv)
deadletterendpoint="$storageid/blobServices/default/containers/<BLOB CONTAINER NAME>"

az eventgrid event-subscription create
    --source-resource-id /subscriptions/$subid/resourceGroups/$rg/providers/Microsoft.EventGrid/topics/$topicname 
    --delivery-identity-endpoint-type servicebusqueue  
    --delivery-identity systemassigned 
    --delivery-identity-endpoint $hubid
    --deadletter-identity-endpoint $eh_deadletterendpoint
    --deadletter-identity systemassigned 
    -n $eh_esname 

Použití Azure CLI – fronta Azure Storage

V této části se dozvíte, jak pomocí Azure CLI povolit použití identity přiřazené systémem k doručování událostí do fronty služby Azure Storage. Identita musí být členem role Odesílatel zprávy data fronty úložiště v účtu úložiště. Musí být také členem role Přispěvatel dat objektů blob služby Storage v účtu úložiště, který se používá pro nedoručených dopisů.

Definování proměnných

subid="<AZURE SUBSCRIPTION ID>"
rg = "<RESOURCE GROUP of EVENT GRID CUSTOM TOPIC>"
topicname = "<EVENT GRID CUSTOM TOPIC NAME>"

# get the storage account resource id
storageid=$(az storage account show --name <STORAGE ACCOUNT NAME> --resource-group <RESOURCE GROUP NAME> --query id --output tsv)

# build the resource id for the queue
queueid="$storageid/queueservices/default/queues/<QUEUE NAME>" 

sa_esname = "<SPECIFY EVENT SUBSCRIPTION NAME>" 

Vytvoření odběru událostí pomocí spravované identity pro doručování

az eventgrid event-subscription create 
    --source-resource-id /subscriptions/$subid/resourceGroups/$rg/providers/Microsoft.EventGrid/topics/$topicname 
    --delivery-identity-endpoint-type storagequeue  
    --delivery-identity systemassigned 
    --delivery-identity-endpoint $queueid
    -n $sa_esname 

Vytvoření odběru událostí pomocí spravované identity pro doručování + deadletter

storageid=$(az storage account show --name demoStorage --resource-group gridResourceGroup --query id --output tsv)
deadletterendpoint="$storageid/blobServices/default/containers/<BLOB CONTAINER NAME>"

az eventgrid event-subscription create  
    --source-resource-id /subscriptions/$subid/resourceGroups/$rg/providers/Microsoft.EventGrid/topics/$topicname 
    --delivery-identity-endpoint-type storagequeue  
    --delivery-identity systemassigned 
    --delivery-identity-endpoint $queueid
    --deadletter-identity-endpoint $deadletterendpoint 
    --deadletter-identity systemassigned 
    -n $sa_esname 

Privátní koncové body

V současné době není možné doručovat události pomocí privátních koncových bodů. To znamená, že pokud máte přísné požadavky na izolaci sítě, kdy provoz doručených událostí nesmí opustit privátní prostor IP adres.

Pokud ale vaše požadavky vyžadují bezpečný způsob odesílání událostí pomocí šifrovaného kanálu a známé identity odesílatele (v tomto případě Event Gridu) pomocí veřejného prostoru IP adres, můžete události doručovat do služby Event Hubs, Service Bus nebo Azure Storage pomocí vlastního tématu služby Azure Event Grid nebo domény se spravovanou identitou, jak je znázorněno v tomto článku. Pak můžete použít privátní propojení nakonfigurované ve službě Azure Functions nebo webhook nasazený ve virtuální síti k vyžádání událostí. Projděte si kurz: Připojení k privátním koncovým bodům pomocí Azure Functions.

V rámci této konfigurace prochází provoz přes veřejnou IP adresu nebo internet z Event Gridu do služby Event Hubs, Service Bus nebo Azure Storage, ale kanál je možné šifrovat a použít spravovanou identitu služby Event Grid. Pokud nakonfigurujete službu Azure Functions nebo webhook nasazenou do vaší virtuální sítě tak, aby používala službu Event Hubs, Service Bus nebo Azure Storage prostřednictvím privátního propojení, zůstane tato část provozu zjevně v Rámci Azure.

Další kroky

Další informace o spravovaných identitách najdete v tématu Co jsou spravované identity pro prostředky Azure.