Skip to content

Commit 5c2d160

Browse files
authored
Merge pull request #18411 from Susmitha221/LP156462-3
Fixed Feedback bugs
2 parents 87322e2 + 9baed1d commit 5c2d160

27 files changed

Lines changed: 404 additions & 0 deletions
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
### YamlMime:ModuleUnit
2+
uid: learn.wwl.manage-secure-ai-ready-infrastructure.introduction
3+
title: "Introduction"
4+
metadata:
5+
title: "Introduction"
6+
description: "Introduction."
7+
ms.date: 02/02/2026
8+
author: wwlpublish
9+
ms.author: bradj
10+
ms.topic: unit
11+
durationInMinutes: 5
12+
content: |
13+
[!include[](includes/1-introduction.md)]
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
### YamlMime:ModuleUnit
2+
uid: learn.wwl.manage-secure-ai-ready-infrastructure.configure-azure-rbac-infrastructure-components
3+
title: "Configure Azure RBAC for AI infrastructure components"
4+
metadata:
5+
title: "Configure Azure RBAC for AI infrastructure components"
6+
description: "Configure Azure RBAC for AI infrastructure components."
7+
ms.date: 02/02/2026
8+
author: wwlpublish
9+
ms.author: bradj
10+
ms.topic: unit
11+
durationInMinutes: 13
12+
content: |
13+
[!include[](includes/2-configure-azure-rbac-infrastructure-components.md)]
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
### YamlMime:ModuleUnit
2+
uid: learn.wwl.manage-secure-ai-ready-infrastructure.implement-keyless-authentication-microsoft
3+
title: "Implement keyless authentication with Microsoft Entra ID Managed Identities"
4+
metadata:
5+
title: "Implement keyless authentication with Microsoft Entra ID Managed Identities"
6+
description: "Implement keyless authentication with Microsoft Entra ID Managed Identities."
7+
ms.date: 02/02/2026
8+
author: wwlpublish
9+
ms.author: bradj
10+
ms.topic: unit
11+
durationInMinutes: 14
12+
content: |
13+
[!include[](includes/3-implement-keyless-authentication-microsoft.md)]
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
### YamlMime:ModuleUnit
2+
uid: learn.wwl.manage-secure-ai-ready-infrastructure.deploy-azure-cosmos-agent
3+
title: "Deploy Azure Cosmos DB for NoSQL as an agent conversation store"
4+
metadata:
5+
title: "Deploy Azure Cosmos DB for NoSQL as an agent conversation store"
6+
description: "Deploy Azure Cosmos DB for NoSQL as an agent conversation store."
7+
ms.date: 02/02/2026
8+
author: wwlpublish
9+
ms.author: bradj
10+
ms.topic: unit
11+
durationInMinutes: 12
12+
content: |
13+
[!include[](includes/4-deploy-azure-cosmos-agent.md)]
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
### YamlMime:ModuleUnit
2+
uid: learn.wwl.manage-secure-ai-ready-infrastructure.exercise-configure-secure-infrastructure-azure
3+
title: "Configure Secure Infrastructure Azure"
4+
metadata:
5+
title: "Configure Secure Infrastructure Azure"
6+
description: "Configure Secure Infrastructure Azure."
7+
ms.date: 02/02/2026
8+
author: wwlpublish
9+
ms.author: bradj
10+
ms.topic: unit
11+
durationInMinutes: 50
12+
content: |
13+
[!include[](includes/5-exercise-configure-secure-infrastructure-azure.md)]

learn-pr/wwl-azure/manage-secure-ai-ready-infrastructure/6-knowledge-check.yml

Lines changed: 48 additions & 0 deletions
Large diffs are not rendered by default.
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
### YamlMime:ModuleUnit
2+
uid: learn.wwl.manage-secure-ai-ready-infrastructure.summary
3+
title: "Summary"
4+
metadata:
5+
title: "Summary"
6+
description: "Summary."
7+
ms.date: 02/02/2026
8+
author: wwlpublish
9+
ms.author: bradj
10+
ms.topic: unit
11+
durationInMinutes: 5
12+
content: |
13+
[!include[](includes/7-summary.md)]
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
## Learning objectives
2+
3+
- Configure Azure RBAC role assignments to enforce least-privilege access for AI infrastructure components
4+
- Implement system-assigned managed identities to enable keyless authentication between Azure services
5+
- Deploy and configure Azure Cosmos DB for NoSQL as a conversation and metadata store for AI agents
6+
- Evaluate security and governance considerations for production AI workloads on Azure
7+
8+
9+
In this module, you configure the secure infrastructure that Contoso's AI agents require. You assign RBAC roles to grant specific permissions without over-provisioning access, enable managed identities to eliminate connection string management, and deploy Cosmos DB as a scalable conversation store with optimized partition keys and time-to-live policies. By the end of this module, you have hands-on experience building production-ready AI infrastructure that satisfies security auditors and supports global-scale deployments.
10+
11+
## More resources
12+
13+
- [What is Azure Role-Based Access Control (Azure RBAC)?](/azure/role-based-access-control/overview) - Comprehensive overview of RBAC concepts, scope hierarchy, and built-in roles
14+
- [What are managed identities for Azure resources?](/entra/identity/managed-identities-azure-resources/overview) - Introduction to system-assigned and user-assigned managed identities with use case examples
15+
- [Welcome to Azure Cosmos DB](/azure/cosmos-db/introduction) - Overview of Cosmos DB capabilities, consistency levels, and global distribution features
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
When Contoso's development team first deployed their AI agents, they granted every service account Contributor permissions at the subscription level. This approach delivered fast deployment velocity during the prototype phase, but it also gave agents the ability to delete production databases, modify network security rules, and access resources across unrelated projects. Security audits revealed that over-privileged access increased the blast radius of potential breaches by 300%, turning what should have been isolated incidents into organization-wide security events.
2+
3+
Azure Role-Based Access Control (RBAC) solves this problem by letting you assign permissions at precisely the scope required for each job task. With RBAC, you define who can access which resources and what actions they can perform, enforcing the principle of least privilege across your entire infrastructure. The system uses a hierarchy of scopes—subscription, resource group, and individual resource—where permissions assigned at a higher level automatically inherit to child resources. For example, granting Reader access at the resource group level means that identity can view all resources within that group without requiring separate assignments for each database, storage account, or virtual machine.
4+
5+
Building on this hierarchical model, Azure provides built-in roles tailored to common job functions. The Contributor role grants full management permissions for resources within a scope but prevents the assignment of roles to other users—ideal for DevOps engineers who deploy and configure infrastructure but don't manage access policies. In contrast, the Cosmos DB Data Contributor role allows reading and writing data within Cosmos DB containers without granting permissions to modify the database account configuration, networking rules, or billing settings. This separation becomes critical when your AI agents need to persist conversation logs but shouldn't have the ability to delete entire databases or change throughput settings.
6+
7+
:::image type="content" source="../media/hierarchical-model-azure-built-in-roles.png" alt-text="Diagram showing how hierarchical models provide built-in roles tailored to common job functions.":::
8+
9+
At the same time, operations teams need visibility into resource configurations without the risk of accidental modifications. The Reader role provides read-only access across all resource types, enabling security auditors to review configurations, developers to troubleshoot issues by inspecting resource properties, and compliance teams to validate policy adherence. With Reader permissions scoped to specific resource groups, you create safe audit trails without exposing production environments to unauthorized changes.
10+
11+
Consider what happens when you assign roles to managed identities representing AI agent applications. You navigate to the Access Control (IAM) blade of your Cosmos DB account, select **Add role assignment**, choose Cosmos DB Data Contributor from the Role tab, then specify the agent's system-assigned managed identity as the assignee on the Members tab. After confirming the assignment, the agent can immediately write conversation documents and query session history without storing any credentials in configuration files. This pattern eliminates the risk of leaked connection strings—a vulnerability responsible for 40% of cloud data breaches according to Microsoft security telemetry.
12+
13+
:::image type="content" source="../media/pattern-eliminates-risk-leaked-connection-string.png" alt-text="Diagram showing how a pattern can eliminate the risk of leaked connection strings.":::
14+
15+
This becomes especially important when you operate across multiple environments. Traditional approaches require duplicating service accounts and rotating credentials separately in development, staging, and production environments. With RBAC and managed identities, you define role assignments once per environment using infrastructure-as-code templates, and Azure handles credential lifecycle automatically. Your operations team reduces permission management overhead by 70% while simultaneously improving security posture.
16+
17+
Now that you understand how RBAC enforces least-privilege access through built-in roles and scope hierarchy, let's explore how managed identities eliminate the need for credential storage entirely. The next unit demonstrates enabling managed identities on Azure App Service and configuring the token acquisition flow that powers keyless authentication.
18+
19+
:::image type="content" source="../media/role-assignment-subscription-resource-group.png" alt-text="Diagram showing how role assignments across subscription, resource group, and resources scopes.":::
20+
21+
22+
*Azure RBAC role assignments across subscription, resource group, and resource scopes for Contoso's AI agent infrastructure*
23+
24+
## More resources
25+
26+
- [Azure built-in roles](/azure/role-based-access-control/built-in-roles) - Complete reference of all Azure built-in roles with detailed permission lists and scope recommendations
27+
- [Assign Azure roles using the Azure portal](/azure/role-based-access-control/role-assignments-portal) - Step-by-step guide for assigning roles through the Access Control (IAM) blade with screenshots
28+
- [Best practices for Azure RBAC](/azure/role-based-access-control/best-practices) - Recommendations for scope selection, custom role creation, and audit logging strategies
29+
30+

0 commit comments

Comments
 (0)