09-01-02 — Hub, projetos e organização: RBAC e networking
TL;DR
Foundry usa dois níveis: Hub (infraestrutura compartilhada, governança central, um por departamento/empresa) e Projeto (espaço de trabalho isolado por time/produto, filho do Hub). O Hub detém os recursos Azure (storage, key vault, compute) e os projetos herdam mas operam com isolamento de dados. RBAC via Entra tem roles específicas do Foundry. Networking via Managed VNet com Private Endpoints.
Hierarquia: Hub → Projeto
// Estrutura conceitual no ARM
Hub "impar-ai-hub" (East US)
├── Storage Account (compartilhado)
├── Key Vault (segredos compartilhados)
├── Container Registry (imagens compartilhadas)
├── Application Insights (telemetria)
├── Azure OpenAI Connection (shared)
│
├── Projeto: "customer-support-agent"
│ ├── Thread storage isolado
│ ├── Vector stores isolados
│ ├── Deployments: gpt-4o (herdado do Hub)
│ └── Entra Agent IDs do projeto
│
└── Projeto: "code-review-agent"
├── Thread storage isolado
└── Deployments: gpt-4o, phi-4 (herdados)
O que fica no Hub
- Connections para Azure OpenAI, AI Search, Blob Storage externos
- Compute instances para fine-tuning e notebooks
- Políticas de networking (Managed VNet)
- Política de content safety padrão
- Billing: os custos de recursos Azure são por subscription, não por Hub
O que fica no Projeto
- Agents, threads, runs, files — completamente isolados por projeto
- Evaluations específicas do projeto
- Prompt flows e datasets
- Colaboradores (membros do projeto, não do Hub inteiro)
RBAC: roles do Foundry
| Role | Escopo | Pode fazer |
|---|---|---|
| Azure AI Developer | Hub ou Projeto | Criar/gerenciar agents, runs, deployments. Não gerencia infra. |
| Azure AI Inference Deployment Operator | Hub | Deploy de modelos. Sem acesso a dados dos projetos. |
| Azure Machine Learning Workspace Contributor | Hub | Gerenciamento completo do Hub (infra + dados) |
| Reader | Projeto | Visualização. Não cria nem modifica. |
Aplique o princípio do menor privilégio: devs recebem "Azure AI Developer" no Projeto específico. Só a equipe de platform recebe acesso ao Hub.
Networking: Managed VNet
Por padrão, o Foundry Hub usa endpoint público. Para ambientes corporativos com requisitos de compliance (LGPD, ISO 27001, clientes enterprise), configure Managed Virtual Network:
- Internet Outbound: padrão, tráfego pode sair para internet
- Allow Only Approved Outbound: só destinos aprovados (Azure services via Private Endpoints)
- Disabled (totalmente privado): sem outbound público, ideal para sovereign/regulated
Com Managed VNet ativa, o Hub cria automaticamente Private Endpoints para:
- Azure Storage (blob, file)
- Azure Key Vault
- Azure Container Registry
- Azure OpenAI
- Azure AI Search
Criando Hub e Projeto via Bicep
// bicep simplificado - crie via az deployment group create
resource hub 'Microsoft.MachineLearningServices/workspaces@2024-10-01' = {
name: 'impar-ai-hub'
location: 'eastus'
kind: 'Hub'
identity: { type: 'SystemAssigned' }
properties: {
friendlyName: 'Impar AI Hub'
managedNetwork: {
isolationMode: 'AllowOnlyApprovedOutbound'
}
}
}
resource project 'Microsoft.MachineLearningServices/workspaces@2024-10-01' = {
name: 'customer-support-project'
location: 'eastus'
kind: 'Project'
properties: {
hubResourceId: hub.id
friendlyName: 'Customer Support Agent'
}
}