This module takes a deeper look at AI Foundry’s organizational model: Hubs and Projects. You’ll learn enterprise patterns for structuring resources, configuring RBAC, managing networking, and applying governance policies at scale.
📖 Official docs: AI Foundry hubs and projects
As AI adoption scales across an enterprise, proper resource organization becomes critical for:
┌─────────────────────────────────────────────────────────┐
│ Hub = Governance + Infrastructure │
│ ├── Shared connections (OpenAI, AI Search, Storage) │
│ ├── Networking (VNet, private endpoints) │
│ ├── Identity (managed identity, RBAC) │
│ └── Policies (content filters, quotas) │
│ │
│ Project = Workspace + Isolation │
│ ├── Models and deployments │
│ ├── Data and evaluations │
│ ├── Prompt flows and agents │
│ └── Project-specific RBAC │
└─────────────────────────────────────────────────────────┘
Think of it like an office building:
| Pattern | Structure | Use Case |
|---|---|---|
| Single-hub, multi-project | 1 hub → N projects | Small org, shared infrastructure |
| Hub-per-environment | dev hub, staging hub, prod hub | Environment isolation |
| Hub-per-business-unit | marketing hub, engineering hub | Departmental separation |
| Hub-per-region | eastus hub, westeurope hub | Data residency compliance |
AI Foundry defines specific roles that map to hub and project operations:
| Role | Scope | Permissions |
|---|---|---|
| Azure AI Developer | Project | Deploy models, run evaluations, create flows |
| Azure AI Inference Deployment Operator | Project | Manage model deployments only |
| Contributor | Hub/Project | Full management (except RBAC) |
| Reader | Hub/Project | View resources only |
| Owner | Hub | Full control including RBAC |
# Assign AI Developer role to a user on a project
from azure.mgmt.authorization import AuthorizationManagementClient
from azure.identity import DefaultAzureCredential
import uuid
auth_client = AuthorizationManagementClient(
credential=DefaultAzureCredential(),
subscription_id="<subscription-id>"
)
# Azure AI Developer role definition ID
role_id = "/providers/Microsoft.Authorization/roleDefinitions/64702f94-c441-49e6-a78b-ef80e0188fee"
auth_client.role_assignments.create(
scope="/subscriptions/<sub>/resourceGroups/<rg>/providers/Microsoft.MachineLearningServices/workspaces/<project>",
role_assignment_name=str(uuid.uuid4()),
parameters={
"role_definition_id": role_id,
"principal_id": "<user-object-id>",
"principal_type": "User"
}
)
📖 Official docs: RBAC for AI Foundry
| Lesson | Topic |
|---|---|
| Lesson 1 | Creating and configuring hubs — Portal, CLI, Bicep, SDK, Terraform |
| Lesson 2 | Project management, RBAC, sharing, quotas |
| Lesson 3 | Private endpoints, managed VNet, Key Vault, diagnostics |
| Knowledge Check | 15 scenario-based review questions |
ml extension| Resource | URL |
|---|---|
| Hub and project overview | https://learn.microsoft.com/en-us/azure/ai-studio/concepts/ai-resources |
| RBAC roles | https://learn.microsoft.com/en-us/azure/ai-studio/concepts/rbac-ai-studio |
| Manage hubs | https://learn.microsoft.com/en-us/azure/ai-studio/how-to/create-azure-ai-resource |
| Networking | https://learn.microsoft.com/en-us/azure/ai-studio/how-to/configure-private-link |
| Managed network | https://learn.microsoft.com/en-us/azure/ai-studio/how-to/configure-managed-network |