Organize your AI work within projects β the development workspace inside a hub.
A project is a workspace within a hub where you develop AI applications. Each project has its own:
π Docs: Create a Project
az ml workspace create \
--name my-project \
--resource-group rg-ai-foundry \
--kind project \
--hub-id /subscriptions/<sub>/resourceGroups/<rg>/providers/Microsoft.MachineLearningServices/workspaces/<hub>
from azure.ai.ml.entities import Project
project = Project(
name="my-project",
hub_id="<hub-resource-id>"
)
ml_client.workspaces.begin_create_or_update(project).result()
Azure AI Foundry uses Azure RBAC to control access. Key roles:
| Role | Permissions |
|---|---|
| Azure AI Developer | Full project access β deploy models, run evaluations, manage data |
| Azure AI Inference Deployment Operator | Deploy and manage endpoints only |
| Reader | View-only access to project resources |
| Owner | Full control including RBAC management |
# Assign AI Developer role to a user for a specific project
az role assignment create \
--assignee user@contoso.com \
--role "Azure AI Developer" \
--scope /subscriptions/<sub>/resourceGroups/<rg>/providers/Microsoft.MachineLearningServices/workspaces/<project>
π‘ Tip: Follow least-privilege principles β give developers the Azure AI Developer role, not Owner. Reserve Owner for platform admins.
π Docs: RBAC for AI Foundry
Each project contains:
| Asset | Description |
|---|---|
| Models | Deployed model endpoints (OpenAI, serverless, managed) |
| Data | Uploaded datasets, documents for RAG |
| Evaluations | Evaluation runs and results |
| Indexes | AI Search indexes connected to the project |
| Flows | Prompt Flow definitions |
| Endpoints | Deployed model and flow endpoints |
| Compute | Shared from hub or project-specific |
Models deployed at the hub level can be shared across multiple projects. This is useful when:
To share a connection:
| Resource | Limit |
|---|---|
| Projects per hub | 100 |
| Connections per project | 50 |
| Deployments per project | Varies by model |
| Data assets per project | 500 |
π‘ Tip: Use a naming convention like
{team}-{app}-{env}for projects (e.g.,platform-chatbot-dev). This makes it easy to find and manage projects at scale.
myapp-dev, myapp-staging, myapp-prodteam, application, cost-center