Skip to content

Commit c7fe19a

Browse files
authored
Merge pull request #290252 from MicrosoftDocs/release-ignite-2024-event-grid
[Ignite 2024 ship room] Azure Event Grid - 317201
2 parents 5d3682f + 2675bc7 commit c7fe19a

File tree

44 files changed

+355
-18
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

44 files changed

+355
-18
lines changed
Lines changed: 86 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,86 @@
1+
---
2+
title: Network security perimeter in Azure Event Grid
3+
description: This article shows how to configure network security perimeter in Azure Event Grid. This feature is currently in preview.
4+
ms.topic: how-to
5+
ms.date: 11/18/2024
6+
# Customer intent: I want to know how to configure network security perimeter in Azure Event Grid.
7+
---
8+
9+
# Network security perimeter in Azure Event Grid (Preview)
10+
Network security perimeter is a framework created to manage public traffic to Azure Platform-as-a-Service (PaaS) resources, and traffic between those PaaS resources. The basic building block is a **perimeter**, a group of PaaS resources that can communicate freely with each other. The perimeter defines a boundary with implicit trust access between each resource. This perimeter can have sets of inbound and outbound access rules.
11+
12+
This article shows you how to associate a network security perimeter with an Event Grid topic or a domain.
13+
14+
> [!NOTE]
15+
> The Network security perimeter configuration is currently available only for topics and domains under the **Networking** setting.
16+
17+
## Prerequisites
18+
The following procedure assumes that you have the following Azure resources:
19+
20+
- An Event Grid topic or a domain
21+
- An Event Hubs namespace with an event hub. The event hub is used as an event handler in the example.
22+
23+
## Create a network security perimeter
24+
First, you create a network security perimeter and add the Event Grid domain and the Event Hubs namespace resources to it.
25+
26+
1. In the [Azure portal](https://portal.azure.com), search for and navigate to the **Network Security Perimeters** page, and select **Create** on the toolbar or **Create network security perimeter** on the page.
27+
28+
:::image type="content" source="./media/configure-network-security-perimeter/create-network-security-perimeter-button.png" alt-text="Screenshot that shows Network Security Perimeters page with Create button selected." lightbox="./media/configure-network-security-perimeter/create-network-security-perimeter-button.png":::
29+
1. On the **Create a network security perimeter** wizard, follow these steps:
30+
1. Select your Azure subscription, resource group, and region in which you want to create the network security perimeter.
31+
1. Enter a **name** for the perimeter.
32+
1. For **profile name**, enter a name for the default profile.
33+
1. Select **Next** at the bottom of the page.
34+
35+
:::image type="content" source="./media/configure-network-security-perimeter/create-network-security-perimeter-page.png" alt-text="Screenshot that shows Create a network security perimeter page." lightbox="./media/configure-network-security-perimeter/create-network-security-perimeter-page.png":::
36+
1. On the **Resources** page, select **Add**. Then, on the **Select resources** page, select resources you want in your perimeter. For example, you can add an Azure Event Grid domain and an Azure Event Hubs namespace that's used as an event handler or destination. Then, select **Next**.
37+
38+
:::image type="content" source="./media/configure-network-security-perimeter/perimeter-resources.png" alt-text="Screenshot that shows Select resources page for a perimeter." lightbox="./media/configure-network-security-perimeter/perimeter-resources.png":::
39+
1. On the **Inbound access rules** page, select **Add inbound access rule**.
40+
1. On the **Add inbound access rule** page, select the source type. You can use this setting to allow inbound access to specific IP address ranges or subscriptions. When you're done, select **Next** at the bottom of the page.
41+
42+
:::image type="content" source="./media/configure-network-security-perimeter/add-inbound-access-rule.png" alt-text="Screenshot that shows Add inbound access rule." lightbox="./media/configure-network-security-perimeter/add-inbound-access-rule.png":::
43+
1. On the **Outbound access rules** page, if you want to allow egress access, select **Add outbound access rule**.
44+
1. On the **Add outbound access rule** page, select the fully qualified domain (FQDN) destination.
45+
46+
:::image type="content" source="./media/configure-network-security-perimeter/add-outbound-access-rule.png" alt-text="Screenshot that shows Add outbound access rule." lightbox="./media/configure-network-security-perimeter/add-outbound-access-rule.png":::
47+
1. Select **Next** to navigate to the **Tags**, and then select **Next** again to move on to the **Review + create** page.
48+
1. On the **Review + create** page, review the configuration, and select **Create** to create the security perimeter.
49+
50+
:::image type="content" source="./media/configure-network-security-perimeter/review-create-page.png" alt-text="Screenshot that shows the Review + create page." lightbox="./media/configure-network-security-perimeter/review-create-page.png":::
51+
1. Once the network security perimeter resource is created, you find it in the resource group you specified.
52+
53+
:::image type="content" source="./media/configure-network-security-perimeter/resource-group-page.png" alt-text="Screenshot that shows the Resource group page with the network security perimeter resource." lightbox="./media/configure-network-security-perimeter/resource-group-page.png":::
54+
55+
56+
## Configure the network security perimeter
57+
In this step, you associate the network security perimeter you created in the previous step with the Event Grid domain. To configure network security perimeter for a topic or a domain, use the **Networking** tab on **Event Grid Topic** or **Event Grid Domain** page.
58+
59+
1. On the **Event Grid Topic** or **Event Grid Domain** page, select **Networking** under **Settings** on the left navigation menu. The screenshots and steps in this article use an example Azure Event Grid domain. The steps for the topic are identical.
60+
1. On the **Networking** page, select **Manage**.
61+
62+
:::image type="content" source="./media/configure-network-security-perimeter/networking-page-manage-button.png" alt-text="Screenshot that shows the Networking page with the Manage button selected." lightbox="./media/configure-network-security-perimeter/networking-page-manage-button.png":::
63+
1. On the **Public network access** page, select **Secured by perimeter (Most restricted)**, and then select **Save**.
64+
65+
:::image type="content" source="./media/configure-network-security-perimeter/secured-by-perimeter-setting.png" alt-text="Screenshot that shows the selection of Secured by perimeter setting." lightbox="./media/configure-network-security-perimeter/secured-by-perimeter-setting.png":::
66+
67+
**Network security perimeter** restricts inbound and outbound access offering the greatest level of inbound and outbound restriction to secure the Azure Event Grid resource.
68+
1. Now, it’s time to associate the network security perimeter with the Azure Event Grid domain or topic in the **Networking** settings by selecting **Associate**.
69+
70+
:::image type="content" source="./media/configure-network-security-perimeter/associate-button.png" alt-text="Screenshot that shows the Networking page with Associate button selected." lightbox="./media/configure-network-security-perimeter/associate-button.png":::
71+
1. On the **Associate a network security perimeter** page, choose **Select network security perimeter**.
72+
73+
:::image type="content" source="./media/configure-network-security-perimeter/select-perimeter-link.png" alt-text="Screenshot that shows the Associate a network security perimeter page with the Select network security perimeter link selected.":::
74+
1. Search for the network security perimeter resource, and select the resource.
75+
76+
:::image type="content" source="./media/configure-network-security-perimeter/select-perimeter.png" alt-text="Screenshot that shows the Select network security perimeter page.":::
77+
1. Now, on the **Associate a network security perimeter** page, select the **profile**, and then select **Associate**.
78+
79+
:::image type="content" source="./media/configure-network-security-perimeter/select-profile.png" alt-text="Screenshot that shows the Select network security perimeter page with a profile selected.":::
80+
1. Now you see the network security perimeter associated with your Azure Event Grid domain or topic resource.
81+
82+
:::image type="content" source="./media/configure-network-security-perimeter/network-security-perimeter-filled.png" alt-text="Screenshot that shows the Networking page with the perimeter selected." lightbox="./media/configure-network-security-perimeter/network-security-perimeter-filled.png":::
83+
84+
## Considerations when using network security perimeter
85+
This article discusses a scenario involving Azure Event Grid domains and Azure Event Hubs as destination. In this scenario, you enable managed identity for the Azure Event Grid domain, and then assign identity the Event Hubs Data Sender role on the Event Hubs namespace. For more information, see [Event delivery, managed service identity, and private link](managed-service-identity.md#use-the-azure-cli---event-hubs).
86+
Lines changed: 97 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,97 @@
1+
---
2+
title: Cross-tenant delivery in Azure Event Grid
3+
description: Describes how to publish and deliver events across tenants using an Azure Event Grid topic with a user-assigned identity.
4+
ms.topic: how-to
5+
ms.custom: devx-track-azurecli
6+
ms.date: 11/18/2024
7+
# Customer intent: As a developer, I want to know how to delivery events using managed identity to a destination in another tenant.
8+
---
9+
10+
# Cross-tenant event delivery using a managed identity
11+
This article provides information on delivery of events where Azure Event Grid basic resources like topics, domains, system topics, and partner topics are in one tenant and the Azure destination resource is in another tenant.
12+
13+
The following sections show you how to implement a sample scenario where an Azure Event Grid topic with a user-assigned identity as a federated credential delivers events to an Azure Storage Queue destination hosted in another tenant. Here are the high-level steps:
14+
15+
1. Create an Azure Event Grid topic with a user-assigned managed identity in Tenant A.
16+
1. Create a multitenant app with a federated client credential.
17+
1. Create an Azure Storage Queue destination in Tenant B.
18+
1. While creating an event subscription to the topic, enable cross-tenant delivery and configure an endpoint.
19+
20+
> [!NOTE]
21+
> - This feature is currently in preview.
22+
> - Cross-tenant delivery is currently available for the following endpoints: Service Bus topics and queues, Event Hubs, and Storage queues.
23+
24+
## Create a topic with a user-assigned identity (Tenant A)
25+
Create a user-assigned identity by following instructions in the [Manage user-assigned managed identities](/entra/identity/managed-identities-azure-resources/how-manage-user-assigned-managed-identities) article. Then, enable a user-assigned managed identity while creating a topic or updating an existing topic by using steps in the following procedure.
26+
27+
### Enable user-assigned identity for a new topic
28+
1. On the **Security** page of the topic or domain creation wizard, select **Add user assigned identity**.
29+
1. In the **Select user assigned identity** window, select the subscription that has the user-assigned identity, select the **user-assigned identity**, and then choose **Select**.
30+
31+
:::image type="content" source="./media/managed-service-identity/create-page-add-user-assigned-identity-link.png" alt-text="Screenshot showing the Enable user-assigned identity option selected." lightbox="./media/managed-service-identity/create-page-add-user-assigned-identity-link.png":::
32+
33+
34+
### Enable user-assigned identity for an existing topic
35+
1. On the **Identity** page, switch to the **User assigned** tab in the right pane, and then select **+ Add** on the toolbar.
36+
37+
:::image type="content" source="./media/managed-service-identity/user-assigned-identity-add-button.png" alt-text="Screenshot showing the User Assigned Identity tab.":::
38+
1. In the **Add user managed identity** window, follow these steps:
39+
1. Select the **Azure subscription** that has the user-assigned identity.
40+
1. Select the **user-assigned identity**.
41+
1. Select **Add**.
42+
1. Refresh the list in the **User assigned** tab to see the added user-assigned identity.
43+
44+
45+
For more information, see the following articles:
46+
- [Enable user-assigned identity for a system topic](enable-identity-system-topics.md)
47+
- [Enable user-assigned identity for a custom topic or a domain](enable-identity-custom-topics-domains.md)
48+
49+
## Create a multitenant Application
50+
51+
1. Create a Microsoft Entra app and update the registration to be multitenant. For details, see [Enable multitenant registration](/entra/identity-platform/howto-convert-app-to-be-multi-tenant#update-registration-to-be-multitenant).
52+
53+
:::image type="content" source="./media/cross-tenant-delivery-using-managed-identity/multi-tenant-app.png" alt-text="Screenshot that shows the Microsoft Entra app authentication setting set to Multitenant." lightbox="./media/cross-tenant-delivery-using-managed-identity/multi-tenant-app.png":::
54+
1. Create the federated identity credential relationship between multitenant app and the user-assigned identity of the Event Grid topic using Graph API.
55+
56+
:::image type="content" source="./media/cross-tenant-delivery-using-managed-identity/federated-identity-credential-post-api.png" alt-text="Screenshot that shows the sample POST method to enable federated identity credential relationship between multitenant app and user-assigned identity." lightbox="./media/cross-tenant-delivery-using-managed-identity/federated-identity-credential-post-api.png":::
57+
58+
- In the URL, use the multitenant app object ID.
59+
- For **Name**, provide a unique name for the federated client credential.
60+
- For **Issuer**, use `https://login.microsoftonline.com/TENANTAID/v2.0` where `TENANTAID` is the ID of the tenant where the user-assigned identity is located.
61+
- For **Subject**, specify the client ID of the user-assigned identity.
62+
63+
Verify and wait for the API call to succeed.
64+
1. Once the API call succeeds, proceed to verify that the federated client credential is set up correctly on the multitenant app.
65+
66+
:::image type="content" source="./media/cross-tenant-delivery-using-managed-identity/certificates-secrets-federated-credential.png" alt-text="Screenshot that shows the certificates and secrets page of the multitenant app." lightbox="./media/cross-tenant-delivery-using-managed-identity/certificates-secrets-federated-credential.png":::
67+
68+
> [!NOTE]
69+
> The subject identifier is the client ID of the user-assigned identity on the topic.
70+
71+
## Create destination storage account (Tenant B)
72+
Create a storage account in a tenant that's different from the tenant that has the source Event Grid topic and user-assigned identity. You create an event subscription to the topic (in tenant A) using the storage account (in tenant B) later.
73+
74+
1. Create a storage account by following instructions from the [Create a storage account](../storage/common/storage-account-create.md#create-a-storage-account) article.
75+
1. Using the **Access Control (IAM)** page, add the multitenant app to the appropriate role so that the app can send events to the storage account. For example: Storage Account Contributor, Storage Queue Data Contributor, Storage Queue Data Message Sender. For instructions, see [Assign an Azure role for an Azure queue](../storage/queues/assign-azure-role-data-access.md#assign-an-azure-role).
76+
77+
:::image type="content" source="./media/cross-tenant-delivery-using-managed-identity/storage-role.png" alt-text="Screenshot that shows the Access Control (IAM) page for the storage account." lightbox="./media/cross-tenant-delivery-using-managed-identity/storage-role.png":::
78+
79+
80+
## Enable cross-tenant delivery and configure the endpoint
81+
Create an event subscription on the topic with federated client credential information passed to deliver to the destination storage account.
82+
83+
1. While creating an event subscription, enable **cross-tenant delivery** and select **Configure an endpoint**.
84+
85+
:::image type="content" source="./media/cross-tenant-delivery-using-managed-identity/create-subscription-cross-tenant.png" alt-text="Screenshot that shows the Create Event Subscription page with Cross-tenant delivery option enabled." lightbox="./media/cross-tenant-delivery-using-managed-identity/create-subscription-cross-tenant.png":::
86+
1. On the **Endpoint** page, specify the subscription ID, resource group, storage account name, and the queue name in Tenant B.
87+
88+
:::image type="content" source="./media/cross-tenant-delivery-using-managed-identity/endpoint.png" alt-text="Screenshot that shows the Endpoint page." lightbox="./media/cross-tenant-delivery-using-managed-identity/endpoint.png":::
89+
1. Now, in the **Managed Identity for Delivery** section, do these steps:
90+
1. For **Managed identity type**, select **User Assigned**.
91+
1. Select the **user-assigned identity** from the drop-down list.
92+
1. For **Federated identity credentials**, enter the multitenant application ID.
93+
94+
:::image type="content" source="./media/cross-tenant-delivery-using-managed-identity/managed-identity-for-delivery.png" alt-text="Screenshot that shows the Create Event Subscription page with the managed identity specified." lightbox="./media/cross-tenant-delivery-using-managed-identity/managed-identity-for-delivery.png":::
95+
1. Select **Create** at the bottom of the page to create the event subscription.
96+
97+
Now, publish event to topic and verify event is delivered successfully to destination storage account.

articles/event-grid/custom-domains-namespaces.md

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,7 @@
22
title: Custom domains for Azure Event Grid hostnames
33
description: This article describes how custom domain names can be assigned to your Event Grid namespace's MQTT and HTTP host names along with the default host names.
44
ms.topic: how-to
5-
ms.custom:
6-
- build-2024
7-
ms.date: 05/21/2024
5+
ms.date: 11/18/2024
86
author: george-guirguis
97
ms.author: geguirgu
108
---
@@ -14,8 +12,6 @@ The Event Grid namespace is automatically assigned an HTTP hostname at the time
1412

1513
You can assign your custom domain names to your Event Grid namespace’s MQTT and HTTP host names, along with the default host names. Custom domain configurations not only help you to meet your security and compliance requirements, but also eliminates the need to modify your clients that are already linked to your domain.
1614

17-
> [!NOTE]
18-
> This feature is currently in preview.
1915

2016
## High-level steps
2117

0 commit comments

Comments
 (0)