09-02-04 — Private networking: VNet, Entra Agent Identity, Managed Identity
TL;DR
Para clientes enterprise (Vale, TIM, Michelin), networking privado não é opcional — é requisito. O AI Foundry suporta Managed VNet com Private Endpoints para isolar todo o tráfego. Entra Agent Identity dá ao agente uma identidade Entra para acessar recursos Azure sem secrets. Managed Identity (system-assigned ou user-assigned) elimina chaves hardcoded no código. Conjunto completo resolve LGPD, ISO 27001 e auditoria de acesso.
Arquitetura de networking privado
/*
Topologia típica enterprise:
Corp Network (on-prem) ──── ExpressRoute/VPN ──── Azure VNet
│
┌────────────────┐
│ Subnet Foundry │
│ │
│ AI Foundry Hub │
│ (Private EP) │
└────────┬────────┘
│ Private Endpoints
┌───────────────┼───────────────┐
▼ ▼ ▼
Azure OpenAI Azure Search Key Vault
(Private EP) (Private EP) (Private EP)
Sem tráfego passando pela internet pública.
*/
Configurando Managed VNet no Hub
Três modos de isolamento:
- Disabled: acesso público (OK para dev/teste)
- AllowInternetOutbound: Private Endpoints para serviços Azure, mas pode acessar internet (NPM, pip)
- AllowOnlyApprovedOutbound: só destinos aprovados — máximo isolamento para produção enterprise
// Bicep: Hub com networking privado máximo
resource hub 'Microsoft.MachineLearningServices/workspaces@2024-10-01' = {
name: 'impar-ai-hub-prod'
location: 'brazilsouth'
kind: 'Hub'
identity: { type: 'SystemAssigned' }
properties: {
managedNetwork: {
isolationMode: 'AllowOnlyApprovedOutbound'
outboundRules: {
// Regra de saída aprovada: apenas Azure AI Search interno
search: {
type: 'PrivateEndpoint'
destination: {
serviceResourceId: aiSearchResource.id
subresourceTarget: 'searchService'
}
}
}
}
// Desabilita endpoint público do Hub
publicNetworkAccess: 'Disabled'
}
}
Private Endpoint para o Hub
// Criar Private Endpoint para acessar o Hub de dentro da VNet
resource hubPrivateEndpoint 'Microsoft.Network/privateEndpoints@2023-11-01' = {
name: 'pe-foundry-hub'
location: 'brazilsouth'
properties: {
subnet: { id: privateSubnet.id }
privateLinkServiceConnections: [{
name: 'foundry-hub-connection'
properties: {
privateLinkServiceId: hub.id
groupIds: ['amlworkspace']
}
}]
}
}
Entra Agent Identity
O Entra Agent ID cria uma identidade de workload no Microsoft Entra para cada agente. Diferente de um service principal genérico, o Agent ID é projetado para workloads de agente e aparece no Entra com tipo "Agent".
Isso habilita:
- Audit logs no Entra mostrando ações do agente (não apenas "service xyz")
- Conditional Access policies específicas para agentes
- RBAC granular: o agente tem apenas as permissões que precisa, nada mais
- Revogação imediata de acesso via Entra, sem mexer no código
Managed Identity no código .NET
using Azure.Identity;
using Azure.AI.Projects;
// DefaultAzureCredential usa automaticamente:
// - Managed Identity quando rodando em Azure (AKS, App Service, Functions)
// - Azure CLI credential quando rodando local
// - Environment variables (AZURE_CLIENT_ID, AZURE_TENANT_ID, AZURE_CLIENT_SECRET)
var credential = new DefaultAzureCredential();
// Nenhuma chave hardcoded — identidade gerenciada pelo Azure
var client = new AgentsClient(
endpoint: Environment.GetEnvironmentVariable("AZURE_AI_FOUNDRY_ENDPOINT"),
credential: credential
);
// Para AKS: use Workload Identity (federated credential)
// Para App Service: ative System-Assigned Managed Identity no portal
// Para Azure Functions: mesmo — System-Assigned MI
Permissões necessárias para o agente
Atribua ao Managed Identity do seu app apenas o que precisa:
| Resource | Role mínima | Para quê |
|---|---|---|
| AI Foundry Hub | Azure AI Developer | Criar/gerenciar agents, runs, threads |
| Azure OpenAI | Cognitive Services OpenAI User | Invocar inferência |
| Azure AI Search | Search Index Data Reader | Ler índice para RAG |
| Azure Blob Storage | Storage Blob Data Reader | Ler arquivos para file search |
| Key Vault | Key Vault Secrets User | Acessar segredos (connection strings) |
Conectividade on-prem → Foundry
Para sistemas on-premises (ERPs, bancos de dados legados) precisarem ser acessados pelo agente como tool:
- Azure VPN Gateway: túnel site-to-site para a VNet do Foundry
- ExpressRoute: conexão dedicada, latência previsível, ideal para clientes financeiros e industriais
- Azure Private Link: expõe serviço on-prem como Private Endpoint na VNet