Prepstellar
Get it on Google Play

AI-103 · Setting Up and Deploying in Foundry

20 cards

Designing Foundry Infrastructure

Swipe, scroll or use ← →
  1. Plan the boundaries before the resources

    Before anyone creates a Foundry resource, someone has to decide who shares what. Skip that step and the bill, the permissions and the incidents all end up tangled together.

    A structured deployment plan helps you avoid security gaps, cost overruns, and access sprawl when you adopt Microsoft Foundry at scale. The plan starts with isolation boundaries, then capability needs, then the resource topology, and only then the security baseline and the agent data layer.

    For the common organization, the recommended sequence has four steps:

    1. First, define nonnegotiable sharing boundaries across business units, data domains, product ownership, and environment tiers.
    2. Second, set a production policy that defaults to isolation, unless a written exception allows colocation.
    3. Third, set an exploration policy that defaults to colocation for faster experimentation, unless compliance or validation requires isolation.
    4. Fourth, assign ownership for each boundary, including security, cost, and incident response ownership.
    1 / 20
  2. Plan the boundaries before the resources

    Notice that steps two and three point in opposite directions. That contrast is the heart of the topic:

    Environment Default Exception
    Production Isolation Colocation, with a written exception
    Exploration Colocation Isolation, when compliance or validation requires it

    So production starts separated and has to justify sharing, while exploration starts shared and has to justify separation. Ownership closes the loop: every boundary needs a named owner for security, cost, and incident response.

    2 / 20
  3. Quick check

    A platform team is writing two policies, one for production and one for exploration. Which pair of defaults matches the recommended sequence?

    1. AColocation in both, with isolation added only once incidents occur

      Production does not start shared. It defaults to isolation and needs a written exception to colocate, so waiting for incidents reverses the order.

    2. BIsolation by default for production, and colocation by default for exploration

      Right. Production defaults to isolation unless a written exception allows colocation, and exploration defaults to colocation for faster experimentation unless compliance or validation requires isolation.

    3. CIsolation in both, with colocation for experiments that have a budget

      Exploration is the side that defaults to colocation, because shared resources speed up experimentation. A budget is not what decides it.

    3 / 20

  4. Co-located or fully isolated topology

    Once the boundaries exist, you choose how many Foundry resources to run. There are only two paths, and each buys something at a price.

    In the co-located path, you run one Foundry resource with multiple projects, typically one project per use case. It fits experimentation-heavy environments, early prototypes, and teams that benefit from shared deployments and shared connected data or tools. Its main tradeoff is a shared blast radius for production incidents, quota exhaustion, and misconfiguration.

    In the fully isolated path, you run one Foundry resource per production workload boundary, often with one primary project per workload. It fits production workloads that require strict operational containment, independent access control, and independent quota or cost boundaries. Its main tradeoff is that self-serve enablement gets harder, with more resources to manage and higher setup overhead.

    4 / 20
  5. Co-located or fully isolated topology

    Path Setup Buys you Costs you
    Co-located One resource, many projects Shared deployments, data and tools A shared blast radius
    Fully isolated One resource per workload Containment, own access and quota More resources, more setup

    For production, treat isolation as the default. Use colocation as a deliberate exception only when workload boundaries, data requirements, and risk acceptance are aligned.

    A quick example: an innovation lab running a dozen small prototypes on non-production data wants to reuse the same model deployments and pre-connected tools. That is the co-located path, with one project per idea. A funded customer-facing workload that needs its own quota and access control is the isolated path.

    5 / 20
  6. Quick check

    A shared Foundry resource hosts many projects. One project's traffic burst exhausts quota and slows every other team. Which property of the topology explains this?

    1. AThe shared blast radius of a co-located resource

      Right. Co-location shares deployments, data and tools, and with them a blast radius for production incidents, quota exhaustion, and misconfiguration.

    2. BThe setup overhead of the fully isolated path

      Setup overhead is the price of isolation. It makes self-serve harder, but it is what prevents one workload from draining another's quota.

    3. CProjects that each own an independent quota boundary

      Independent quota or cost boundaries come from a separate Foundry resource per workload, not from projects inside one shared resource.

    6 / 20

  7. Capability scope shapes the boundary

    The topology must also fit what each API can do. Projects can isolate some capabilities and not others, so the capability mix can force a decision on its own.

    When use cases share one Foundry resource, Foundry projects act as isolated workspaces for each use case. Most newer, agent-centric Foundry APIs support project-scope permissioning. Some traditional Foundry Tools APIs (former Azure AI Services), such as speech-to-text, still require parent resource-scope access.

    So confirm the capability mix before you finalize the topology. If a required API only works at Foundry resource scope, assign roles at that scope or isolate workloads into separate Foundry resources.

    7 / 20
  8. Capability scope shapes the boundary

    Three capability areas are worth memorizing, because each one points to a different design:

    Capability Project RBAC isolation Design consequence
    Agent capabilities Yes Project per use case works in a shared resource
    Fine-tune training No, default project only Separate resources for independent fine-tuning
    Content Understanding No Separate resources for strict per-use-case isolation

    Agent capabilities support project organization and project-level RBAC isolation, which makes them a good fit for project-per-use-case segmentation in shared environments. Fine-tune training runs in the default project only, without project-level RBAC isolation, so if each team needs independent fine-tuning, use separate Foundry resources. Fine-tuned deployments are shared and consumable across projects within a resource. Content Understanding has no project-level RBAC isolation, so if strict per-use-case access isolation is required, prefer separate Foundry resources.

    8 / 20
  9. Quick check

    Two teams in one shared Foundry resource each want their own fine-tuning, kept apart from the other team. What does that require?

    1. AA separate project for each team inside the shared resource

      Projects segment agent capabilities well, but fine-tune training runs only in the default project, so a second project cannot host independent training.

    2. BA separate Foundry resource for each of the two teams

      Right. Fine-tune training has no project-level RBAC isolation, so independent fine-tuning per team means separate Foundry resources.

    3. CA fine-tuned deployment shared across both projects

      Fine-tuned deployments are indeed shared across projects within a resource. Sharing is the opposite of what these teams asked for.

    9 / 20

  10. Keep your progress in the app

    That’s 3 of 7 quick checks. In the app they stay answered, and every lesson remembers where you left off.

    Get it on Google Play Keep reading here
  11. Security baseline and the two access planes

    With the topology chosen, the security baseline fills in four decisions:

    • Identity and access. Map admin, project manager, and project user personas to least-privilege roles and Microsoft Entra ID groups.
    • Networking. For networking, use a managed virtual network for a more secure, straightforward setup, and a bring-your-own virtual network for advanced network control and custom routing requirements.
    • Keys. Decide whether Microsoft-managed keys meet policy requirements or whether customer-managed keys are required.
    • Authentication. Prefer Microsoft Entra ID and RBAC for people and services, and use API keys only where role granularity isn't required.

    Connections can be created at the parent Foundry resource level or at the child project level, depending on the isolation scope you want. Connections configured at the parent level are available to all projects.

    10 / 20
  12. Security baseline and the two access planes

    One permission trap catches many teams. Foundry separates control plane RBAC actions, for resource management, from data plane RBAC actions, for development workloads.

    Management roles such as Owner or Contributor aren't sufficient for all development scenarios: a user can manage resources but still need data plane roles to chat with an agent in Foundry.

    Think of it as two doors. The control plane door lets you create, configure and delete the resource. The data plane door lets you work inside it, for example chatting with an agent. Holding the key to the first door says nothing about the second.

    11 / 20
  13. Quick check

    A developer with the Contributor role can configure the Foundry resource but gets denied when chatting with an agent. Why?

    1. AContributor covers resource management, not data plane development work

      Right. Contributor is a control plane role for managing resources. Chatting with an agent is development work that needs a data plane role.

    2. BContributor is blocked because the project uses a managed virtual network

      A managed virtual network shapes network isolation; the developer already reaches the resource, and the denial is about the role, not the network.

    3. CContributor only applies once customer-managed keys are configured

      Customer-managed keys decide who controls encryption keys. They do not switch roles on or off for development work.

    12 / 20

  14. Basic or standard agent setup

    Agents produce data: conversations, uploaded files and vector stores. The setup you choose decides whose resources hold it.

    The basic agent setup uses Microsoft-managed resources for agent data. Standard agent setup uses customer-managed, single-tenant Azure resources to store agent state and keep all agent data under your control. Use standard setup when you need full data sovereignty, compliance with enterprise security policies, or project-level isolation.

    In a standard agent setup, the Foundry project sends conversations to Cosmos DB, vector stores to AI Search, and files to Storage, all inside your own tenant.YOUR AZURE TENANTFoundryprojectAgent ServiceCosmos DBconversationsAI Searchvector storesStoragefiles
    Basic setup keeps the same three kinds of data in Microsoft-managed resources. Standard setup moves each one into a resource you own.
    13 / 20
  15. Basic or standard agent setup

    Standard setup brings three of your own resources:

    • Azure Storage stores files uploaded by developers and end users.
    • Azure AI Search stores the vector stores created by the agent.
    • Azure Cosmos DB stores messages, conversation history, and agent metadata.

    The Azure Cosmos DB for NoSQL account must have a total throughput limit of at least 3000 RU/s, and both provisioned throughput and serverless modes are supported. Insufficient RU/s capacity in the Cosmos DB account causes provisioning failures during deployment. An Azure Key Vault resource manages secrets and connection strings for the agent infrastructure. Standard setup enforces project-level data isolation by default.

    Microsoft recommends using separate Foundry accounts and projects for standard agent setup and basic agent setup, and avoiding mixing setup types within the same Foundry account.

    14 / 20
  16. Quick check

    A team moves to standard agent setup. Where will the agent's conversation history live?

    1. AIn an Azure AI Search index the team owns

      AI Search holds the vector stores created by the agent. Conversations go to the thread store instead.

    2. BIn a Microsoft-managed store inside the project

      Microsoft-managed storage is the basic setup. Standard setup exists precisely to move agent data into resources you own.

    3. CIn the team's own Azure Cosmos DB for NoSQL account

      Right. In standard setup, Azure Cosmos DB stores messages, conversation history, and agent metadata, and it needs at least 3000 RU/s in total.

    15 / 20

  17. Capability settings and capability hosts

    How does a project know which Cosmos DB, AI Search and Storage to use? Through its capability settings.

    Capability settings are properties on the Foundry account and the project that declare which Azure resources hold agent state, vector data, and files. You set them on the account to establish defaults for its projects, and override an individual store on a project when that project needs a different resource.

    Capability settings use the 2026-07-15-preview API and are currently available in UK South and Canada Central. Check availability before choosing this provisioning path for a workload in another region.

    The connections that capability settings manage are immutable while in use, so you can't edit or delete them directly. You can't update capability settings on an existing project: to change which resources a project uses, delete and recreate the project with the desired settings.

    16 / 20
  18. Capability settings and capability hosts

    You will also meet the older name. Capability hosts are the earlier mechanism for the same job, and their article is now retained for reference. They are sub-resources at the account and project scopes, managed through the REST API.

    Three rules carried over to the way people work with them:

    • Updating a capability host isn't supported, so you delete it and recreate it.
    • Each account and each project can have only one active capability host.
    • You can't create a project capability host unless an account-level capability host already exists.

    The common thread with capability settings: once agent storage is wired to a project, you change it by recreating, not by editing.

    17 / 20
  19. Quick check

    A project in standard setup must switch to a different Azure AI Search service for its vector stores. What is the supported path?

    1. AEdit the existing AI Search connection to point at the new service

      The connections that capability settings manage are immutable while in use, so they cannot be edited in place.

    2. BUpdate the project's capability settings with the new resource

      Capability settings cannot be updated on an existing project. The override has to be chosen when the project is created.

    3. CDelete the project and recreate it with the desired settings

      Right. To change which resources a project uses, you delete the project and recreate it with the desired capability settings.

    18 / 20

  20. Provisioning and runtime permissions

    Standard setup involves two different identities, and mixing them up is the most common failure after a deployment succeeds.

    The identity that runs a capability settings deployment needs Storage Blob Data Contributor on the storage account and Cosmos DB Operator on the Cosmos DB account, while Azure AI Search doesn't require a caller role. Runtime access is a separate set of roles on the project managed identity, and one doesn't substitute for the other.

    For example, the project managed identity needs Storage Blob Data Contributor on the blobstore container and Storage Blob Data Owner on the agent container, or the agent gets 403 Forbidden when it reads or writes files. Developers who create or edit agents need the Foundry User role on the project scope; without it, they get AuthorizationFailed.

    Symptom Whose roles to check
    Deployment fails before anything is provisioned The deploying identity
    Agents get 403 on files The project managed identity
    Developers get AuthorizationFailed creating agents The developer's Foundry User role
    19 / 20
  21. Quick check

    A Bicep deployment with capability settings succeeded, but agents now return 403 Forbidden on file operations. Which identity needs new roles?

    1. AThe deploying principal that ran the Bicep template

      The deploying principal already did its job: the deployment succeeded. Its caller roles never stand in for runtime access.

    2. BThe project managed identity that agents use at runtime

      Right. Runtime access belongs to the project managed identity, which needs Storage Blob Data Contributor on the blobstore container and Storage Blob Data Owner on the agent container.

    3. CThe developer account that created the agents

      A missing Foundry User role shows up as AuthorizationFailed when creating or editing agents, not as 403 on the agent's own file operations.

    20 / 20

  22. 7 quick checks · then the test

    In the app, finishing the quick checks opens this lesson’s 10-question test, and the ones you miss come back exactly when you’re about to forget them.

← Previous Get it on Google Play Next card →

The whole course, on your phone

Lessons you can read, audio you can listen to on the way to work, and practice that remembers what you got wrong.

Get it on Google Play

“This app is the ‘One Lake’ for preparing the certification exams. Really worth it.”

Abdelhak Y. Google Play review