Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Este artigo explica como habilitar identidades de serviço gerenciado para tópicos do sistema de Grade de Eventos do Azure, tópicos personalizados e domínios. Ele também explica como usar identidades gerenciadas para entregar eventos para destinos suportados, como filas e tópicos do Service Bus, hubs de eventos e contas de armazenamento.
Pré-requisitos
Atribua uma identidade atribuída pelo sistema ou pelo usuário a um tópico do sistema, tópico personalizado ou domínio.
- Para tópicos e domínios personalizados, consulte Habilitar identidade gerenciada para tópicos e domínios personalizados.
- Para tópicos do sistema, consulte Habilitar identidade gerenciada para tópicos do sistema.
Adicione a identidade a uma função adequada, como Service Bus Data Sender, no recurso de destino, como uma fila do Service Bus. Para obter etapas detalhadas, consulte Adicionar identidade a funções do Azure em destinos.
Observação
Atualmente, não pode entregar eventos usando endpoints privados. Para obter mais informações, consulte a seção Pontos de extremidade privados no final deste artigo.
Criar subscrições de eventos que utilizam uma identidade
Depois de configurar um tópico personalizado da Grade de Eventos, um tópico do sistema ou um domínio com uma identidade gerenciada e adicionar a identidade à função apropriada no destino, você estará pronto para criar assinaturas que usem a identidade.
Utilizar o portal do Azure
Quando cria uma subscrição de eventos, verá uma opção para ativar uma identidade atribuída pelo sistema ou pelo utilizador para um ponto final na secção DETALHES DO PONTO FINAL.
Este exemplo mostra como habilitar uma identidade atribuída ao sistema ao criar uma assinatura de evento com uma fila do Service Bus como destino.
Você também pode habilitar uma identidade atribuída ao sistema para letras mortas na guia Recursos Adicionais .
Habilite uma identidade gerenciada em uma assinatura de evento depois que ela for criada. Na página Assinatura de Evento, mude para o separador Funcionalidades Adicionais para ver a opção. Você também pode habilitar a identidade para letras mortas nesta página.
Se ativar identidades atribuídas pelo utilizador para o tópico, verá a opção de identidade atribuída pelo utilizador ativada na lista suspensa de Tipo de Identidade Gerida. Se você selecionar Usuário Atribuído para Tipo de Identidade Gerenciada, poderá selecionar a identidade atribuída pelo usuário que deseja usar para entregar eventos.
Utilize a CLI do Azure — fila do Service Bus
Nesta secção, aprende a usar a CLI do Azure para permitir que uma identidade atribuída ao sistema entregue eventos a uma fila de Service Bus. A identidade tem de ser membro da função Emissor de Dados do Azure Service Bus e da função Contribuidor de Dados de Blobs de Armazenamento na conta de armazenamento utilizada para o processamento de mensagens mortas.
Definir variáveis
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>"
Criar uma assinatura de evento usando uma identidade gerenciada para entrega
Este comando cria uma subscrição de eventos para um tópico personalizado do Event Grid com o tipo de ponto final definido como fila do 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
Criar uma assinatura de evento usando uma identidade gerenciada para entrega e letras mortas
Este comando de exemplo cria uma subscrição de evento para um tópico personalizado do Evento Grid com um tipo de ponto de extremidade definido como fila do Bus de Serviço. Também especifica que o Event Grid utiliza a identidade gerida atribuída pelo sistema para o dead-lettering.
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_esname
Usar a CLI do Azure - Hubs de Eventos
Nesta secção, aprende como usar a CLI do Azure para permitir que uma identidade atribuída ao sistema entregue eventos a um hub de eventos. A identidade deve ser membro da função Remetente de Dados dos Hubs de Eventos do Azure . Deve também ser membro da função Contribuidor de Dados de Blobs de Armazenamento na conta de armazenamento que utiliza para mensagens mortas.
Definir variáveis
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>"
Criar uma assinatura de evento usando uma identidade gerenciada para entrega
Este comando de exemplo cria uma subscrição de evento para um tópico personalizado do Grid de Eventos, com o tipo de ponto de extremidade definido para Hubs de Eventos.
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 $eh_esname
Criar uma assinatura de evento usando uma identidade gerenciada para entrega e letras mortas
Este comando de exemplo cria uma subscrição de evento para um tópico personalizado do Grid de Eventos, com o tipo de ponto de extremidade definido para Hubs de Eventos. Também especifica que a identidade gerida atribuída pelo sistema trata de dead-lettering.
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 eventhub \
--delivery-identity systemassigned \
--delivery-identity-endpoint $hubid \
--deadletter-identity-endpoint $deadletterendpoint \
--deadletter-identity systemassigned \
-n $eh_esname
Usar a CLI do Azure - fila de armazenamento do Azure
Nesta secção, aprende a usar a CLI do Azure para permitir que uma identidade atribuída ao sistema entregue eventos para uma fila do Armazenamento do Azure. A identidade deve ser membro da função Remetente de Mensagem de Dados da Fila de Armazenamento na conta de armazenamento. Deve também ser membro da função Contribuidor de Dados de Blobs de Armazenamento na conta de armazenamento que utiliza para mensagens mortas.
Definir variáveis
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>"
Criar uma assinatura de evento usando uma identidade gerenciada para entrega
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
Criar uma assinatura de evento usando uma identidade gerenciada para entrega e letras mortas
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
Terminais privados
Atualmente, não pode entregar eventos usando endpoints privados. Ou seja, não há suporte se você tiver requisitos rígidos de isolamento de rede em que o tráfego de eventos entregues não deve sair do espaço IP privado.
No entanto, se os seus requisitos exigirem uma forma segura de enviar eventos usando um canal encriptado e uma identidade conhecida do remetente (neste caso, Event Grid) usando espaço IP público, pode entregar eventos para Event Hubs, Service Bus ou serviço Armazenamento do Azure usando um tópico personalizado do Azure Event Grid ou um domínio com identidade gerida, como mostrado neste artigo. Em seguida, você pode usar um link privado configurado no Funções do Azure ou um webhook implantado em sua rede virtual para extrair eventos. Consulte o tutorial: Ligue-se a pontos de extremidade privados com Funções do Azure.
Nesta configuração, o tráfego passa pelo IP/internet público do Event Grid para os Event Hubs, Service Bus ou Armazenamento do Azure, mas pode encriptar o canal e usar uma identidade gerida chamada Event Grid. Se você configurar o Funções do Azure ou um webhook implantado em sua rede virtual para usar Hubs de Eventos, Service Bus ou Armazenamento do Azure por meio de link privado, essa seção do tráfego permanecerá no Azure.
Conteúdo relacionado
Para saber mais sobre identidades gerenciadas, consulte o que são identidades gerenciadas para recursos do Azure.