Ga naar inhoud

AI-platform: toegang en RBAC

Toegang tot een Foundry project wordt gegeven aan drie Entra ID-groepen per project (owner, contributor, reader) en aan de identiteiten van het project en van je applicatie. Alle rollen zijn Azure RBAC-rollen die Terraform toewijst. Er zijn geen keys: het Foundry account heeft local authentication uitgeschakeld en de verbindingen gebruiken Entra ID.

Voor de generieke werking van groepen, PIM en access reviews op het platform, zie Toegang, groepen en PIM en het identiteits- en toegangsmodel.

Groepen

Groep Doel
Owner Het project en de bijbehorende data beheren. Krijgt ook data-plane-rechten op de projectstorage, search en Cosmos DB.
Contributor Bouwen in het project: agents aanmaken, bestanden uploaden, werken met de vector store.
Reader Leestoegang tot de search index.

De projectmodule neemt de object-ID's van de groepen als inputs owner_group_id, contributor_group_id en reader_group_id.

Rollen voor de groepen

Resource Owner-groep Contributor-groep Reader-groep
Foundry project Azure AI User Azure AI User
Project storage account Storage Blob Data Owner Storage Blob Data Contributor
AI Search service Search Service Contributor, Search Index Data Contributor Search Service Contributor, Search Index Data Contributor Search Index Data Reader
Cosmos DB account Cosmos DB Operator, plus de SQL-datarol op de collections van het project Cosmos DB Operator, plus de SQL-datarol op de collections van het project

De reader-groep krijgt in de module geen rol op het project zelf, alleen op de search index. Of dat genoeg is voor jouw gebruik van de reader-groep is een open punt: Bekende problemen.

Groepsinputs zijn feitelijk verplicht

De drie groepsinputs hebben standaard null, maar de roltoewijzingen in de module hebben geen voorwaarde. Als een groeps-ID niet wordt meegegeven, mislukt het plan. Geef alle drie mee.

Rollen voor de projectidentiteit

Het project heeft een eigen user-assigned managed identity. Die krijgt de rollen die de agent service nodig heeft op de data stores:

Resource Rollen van de projectidentiteit
Storage account Storage Blob Data Owner
AI Search Search Service Contributor, Search Index Data Contributor
Cosmos DB account Cosmos DB Operator, en de SQL-datarol op de vijf collections van het project in database enterprise_memory

De SQL-rol die voor Cosmos DB wordt gebruikt is de ingebouwde rol met ID 00000000-0000-0000-0000-000000000002. De collectionrollen worden toegewezen nadat de capability host bestaat, omdat de host de collections aanmaakt. De module wacht 60 seconden op de andere roltoewijzingen voordat hij de capability host aanmaakt.

Rollen voor de workloadidentiteit

De module workload_identity maakt een user-assigned managed identity aan voor je applicatie en een lijst met roltoewijzingen, elk met een scope en een role_definition_name. De README van de module geeft deze patronen:

Behoefte Rol
Bestanden in storage Storage Blob Data Contributor (en Storage Queue Data Contributor voor queues)
Vector store Search Index Data Contributor, Search Service Contributor
State in Cosmos DB Cosmos DB Operator, DocumentDB Account Contributor
Secrets Key Vault Secrets User
Container Apps-omgeving Contributor

Dit zijn voorbeelden uit de README van de module, geen vaste set. Geef de applicatie alleen de rollen die hij nodig heeft, op de kleinste scope. Het repositoryoverzicht noemt de rol "Cognitive Services User" als voorbeeld voor het aanroepen van het account, maar de module wijst die niet zelf toe: voeg hem toe aan role_assignments waar nodig.

Contributor op de omgeving

Het README-voorbeeld geeft de workloadidentiteit Contributor op de Container Apps-omgeving. Dat is breed. Beschouw het als voorbeeld en spreek met je platformteam af of je het nodig hebt.