SC-500 Microsoft Security Copilot: Workspaces, Roles, Plugins and Agents
Implementing Microsoft Security Copilot means setting up the workspaces, capacity, roles, plugins and agents that decide where Copilot's data lives, what it costs, who can use it and which security data and tools it can reach. This lesson covers the four SC-500 skills for the platform: configuring workspaces (data storage and prompt evaluation location, Security Compute Unit capacity and product routing), managing Copilot owner and contributor roles alongside the service roles that on-behalf-of authentication needs, enabling preinstalled and custom plugins, and setting up Microsoft agents and partner agents from Microsoft Security Store.
On this page10 sections
- What Security Copilot workspaces are and why you create more than one
- Data storage location vs prompt evaluation location
- Capacity and Security Compute Units: provisioned, overage and throttling
- Per-workspace vs tenant-wide settings, and routing embedded experiences and agents
- Copilot owner and contributor: platform roles, not data access
- Assigning Copilot roles: Recommended Microsoft Security roles, Everyone and custom
- What owners can do that contributors can't
- Enabling and controlling plugins
- Custom plugin manifests: GPT, KQL and API skills
- Microsoft agents, agent identities and Security Store agents
- Create a Security Copilot workspace with the right data storage location and prompt evaluation location for a residency requirement
- Size and manage capacity with provisioned and overage Security Compute Units, and pause a workspace without losing its data
- Route embedded experiences and Microsoft agents to the correct workspace, and move agents between workspaces safely
- Assign Copilot owner and contributor roles with role-assignable groups, and give users the service roles on-behalf-of authentication needs
- Control preinstalled and custom plugins, and write custom plugin manifests with KQL and API skills
- Set up Microsoft and Security Store agents with agent identities, the right approvals and least-privilege access
What Security Copilot workspaces are and why you create more than one
A Security Copilot workspace is a self-contained environment inside one tenant that has its own data storage location, its own capacity of Security Compute Units (SCUs), its own role assignments and its own plugin and owner settings. You give each workspace a name that must be unique in the tenant and can't be changed after it is created. Every session, promptbook run and agent run happens in a workspace, and the workspace decides where that data is stored, which compute pays for it and which tools Copilot can use.
Organizations create several workspaces when teams need different answers to those questions. Typical reasons are:
- Data residency: one team's prompts and responses must be stored in a different geography from the rest of the company.
- Cost separation: a SOC and a compliance team each get their own capacity, so one team's burst of usage can't exhaust the other's units.
- Different tool sets: a sandbox workspace can run experimental plugins that are never turned on in the production SOC workspace.
- Different administrators: each workspace can have its own Copilot owners.
Because workspaces are independent, nothing you configure in one appears in another. A plugin turned on and tested in a sandbox is still off in the SOC workspace until someone turns it on there (Manage plugins, or Sources in the prompt bar). Users switch between the workspaces they hold a role in from the standalone portal.
Data storage location vs prompt evaluation location
When you create a workspace you choose two separate geographic settings: the data storage location, which decides where session data rests, and the prompt evaluation location, which decides where prompts are processed. Compliance requirements often name one but not the other, so read which one the requirement actually covers.
| Setting | What it controls | Options | Can it change later? |
|---|---|---|---|
| Data storage location | Where prompts, responses and other customer data for the workspace are stored at rest | A set of supported geographies: Australia/New Zealand (ANZ), the EU, Switzerland (CH), the UK and the US | No. It is fixed when the workspace is created |
| Prompt evaluation location | Where the model processes prompts | Match the storage geography, or evaluate anywhere with available capacity | Set with the workspace's capacity |
Key consequences:
- Storage is immutable. If an existing workspace stores data in the US and one team now needs EU storage, you can't edit the location: you create a second workspace with EU storage for that team and leave the original one alone.
- Storage alone doesn't keep processing in-region. "Evaluate anywhere" routes prompts to the least-busy datacenter globally to improve responsiveness, so a policy that says data must stay in the EU both at rest and during processing needs EU storage and EU prompt evaluation.
- Evaluate anywhere is the right choice when speed matters and processing elsewhere is acceptable; the storage location still stays where you set it.
Capacity and Security Compute Units: provisioned, overage and throttling
A capacity is the Azure resource that supplies Security Compute Units to a workspace, and each capacity serves exactly one workspace at a time. SCUs are not shared or pooled: spare units in a sandbox workspace can't help a busy SOC workspace, and you can't attach two capacities to one workspace or one capacity to two workspaces. If a new workspace needs compute, you create a new capacity for it (or disassociate an existing one, which leaves its previous workspace without compute).
| Unit type | How it's billed | Use it for |
|---|---|---|
| Provisioned SCUs | Every hour, whether used or not | The steady, always-on baseline |
| Overage SCUs | Only when consumed, after the provisioned units for the hour are used up | Spikes such as incident surges, without raising the baseline |
When a workspace runs out of units in an hour, users are throttled and see errors that capacity is unavailable until the next billing hour. Raising provisioned units fixes this at a higher fixed cost; allowing (more) overage units absorbs bursts and is billed only when used.
Managing capacity needs Azure Owner or Contributor on the subscription or resource group plus the Copilot owner role (Security Administrator or higher in the tenant when you first provision). Owners monitor consumption, split into provisioned and overage units, on the usage dashboard in owner settings, which is a Copilot owner page inside Security Copilot.
Pausing a workspace: disassociate vs delete
| Action | Billing | Workspace data |
|---|---|---|
| Disassociate the capacity from the workspace | Stops: no billing occurs while a workspace has no assigned capacity | Kept; you can assign a capacity again later |
| Delete the capacity (needs the Security Administrator role) | Stops | Permanent loss of session history, feedback and other workspace-specific data |
| Lower provisioned or overage units | Provisioned units still bill every hour | Kept |
Disassociating stops charges but doesn't stop people trying to use the workspace; to keep everyone out while it's paused, also remove the users' Copilot roles in that workspace.
Per-workspace vs tenant-wide settings, and routing embedded experiences and agents
Most owner settings, including roles, plugins, data sharing, file uploads and capacity, apply only to the workspace in which they are set; a few decisions are made once for the whole tenant. Knowing which is which tells you whether a workspace owner can make one workspace behave differently from another.
| Setting | Scope |
|---|---|
| Role assignments (owners, contributors) | Per workspace |
| Plugins turned on, preinstalled plugin availability, custom plugin permissions | Per workspace |
| Data sharing options (whether prompts and responses are shared to improve the service) | Per workspace |
| Who can upload files | Per workspace |
| Capacity assignment | Per workspace |
| Audit logging of Copilot activity to Microsoft Purview | Tenant-wide: applies across all workspaces; only a Security Administrator can change it |
| Which workspace receives each product's embedded and agent traffic | Tenant-wide, one choice per product |
| Data storage location | Per workspace, but fixed at creation |
Copilot used inside other portals (Microsoft Defender, Microsoft Purview, Microsoft Intune, Microsoft Entra) and the Microsoft agents that run there are routed to a workspace by a tenant-wide assignment made per product; until you change it, the default is the oldest workspace. A user picking a workspace in the standalone portal only affects their standalone sessions. It doesn't move Copilot in Defender.
For example, if a SOC workspace was created first and a compliance team's workspace later, compliance analysts using Copilot in the Microsoft Purview portal consume the SOC workspace's units until an owner assigns the Purview product to the compliance workspace in owner settings.
Routing changes have two follow-on effects:
- Users need a role in the target workspace. Once a product is routed to a workspace, every user's embedded requests for that product land there, so each of them needs contributor (or owner) access in that workspace. Workspace access controls whether a request succeeds; only the product assignment decides where it goes.
- Agent setups don't move by themselves. An agent's configuration lives in a workspace. Before reassigning a product, turn off the agents' scheduled and automatic triggers so the old setup doesn't keep running (and duplicate work), then set the agents up again in the new workspace. Agent memory and feedback are not carried across.
Copilot owner and contributor: platform roles, not data access
Security Copilot has two roles of its own, Copilot owner and Copilot contributor, and neither is a Microsoft Entra role or grants any access to security data. They control what someone can do on the Copilot platform: owners administer the workspace, contributors use it.
Data access comes from on-behalf-of authentication: when Copilot calls a Microsoft plugin, it uses the signed-in user's own permissions in that service. Copilot never goes beyond the access the user already has, so each plugin needs its own service role:
| Data the user wants in Copilot | Role needed in the service (example) |
|---|---|
| Microsoft Sentinel incidents | An Azure RBAC role on the Sentinel workspace, such as Microsoft Sentinel Reader |
| Intune devices, policies and posture | An Intune role, such as Endpoint Security Manager |
| Microsoft Defender XDR data | A Defender XDR (unified RBAC) role |
| Microsoft Purview data | A Purview role, such as Compliance Administrator |
A contributor whose prompts return nothing from Sentinel is missing a Sentinel role, not a Copilot role. Least privilege means granting the narrowest service role that covers what Copilot must read: for reading incidents, a reader role on the Sentinel workspace.
Shared sessions
The Copilot contributor role is the only requirement to share a session link or view one in the same tenant. The plugin access that produced a response is not re-evaluated when someone views the shared session, so a colleague without Intune access can read Intune results that a session creator shared with them. Shared sessions are read-only, contain all their prompts and responses, and forwarding a link doesn't grant access: only the session creator decides who can see it.
Assigning Copilot roles: Recommended Microsoft Security roles, Everyone and custom
You assign Copilot roles in Security Copilot (Role assignment > Add members), and the default contributor assignment is the Recommended Microsoft Security roles bundle, which gives platform access to people who already hold security roles.
| Assignment | Strength | Weakness |
|---|---|---|
| Recommended Microsoft Security roles (default for new instances) | Low-effort, secure: only users who already have security permissions through Entra (and service roles such as Defender XDR roles that include Security Copilot) get access | All or nothing: to exclude one role in the bundle you remove the whole bundle |
| Everyone | Simple; it was the original default | Users with no security data access get confusing, empty sessions. If removed, it can't be added back |
| Custom users and groups | Complete control | More administrative effort |
Rules that decide many scenarios:
- Remove Everyone before you add the recommended bundle. Removing Everyone is one-way.
- Only role-assignable groups are supported. Role-assignable groups in Entra ID use assigned membership, so a dynamic-membership group can't be used.
- Use security groups, not individuals, and not privileged Entra roles. Some Entra roles automatically inherit Copilot owner: Global Administrator, Security Administrator, Billing Administrator, Compliance Administrator and Intune Administrator, plus Purview roles such as Compliance Administrator and Organization Management. Don't hand out those privileged roles just for Copilot. Put the person in a security group that holds the Copilot owner or contributor role.
- Security Copilot always keeps at least two owners, so the last owners can't be removed by accident.
- Platform access can be layered with Conditional Access, but Conditional Access doesn't replace a correct role assignment.
What owners can do that contributors can't
Contributors can use everything a user needs (sessions, promptbooks, file uploads by default), while owners alone change settings that affect everyone in the workspace.
| Capability | Owner | Contributor |
|---|---|---|
| Create sessions; run promptbooks; manage personal promptbooks; select language | Yes | Yes |
| Share a promptbook with the tenant | Yes | Yes |
| Upload files as knowledge sources | Yes | Yes by default |
| Manage who can upload files | Yes | No |
| Manage personal custom plugins | Yes | No by default |
| Allow contributors to add personal custom plugins or publish custom plugins for the tenant | Yes | No |
| Change availability of preinstalled plugins | Yes | No |
| Update data sharing and feedback options | Yes | No |
| Capacity management | Yes (with the Azure role on the capacity) | No |
| View the usage dashboard | Yes | No |
To stop file uploads without disrupting work, an owner sets who can upload files to no one; removing contributor roles would also stop sessions and promptbooks.
Enabling and controlling plugins
Plugins are the sources Copilot can use. Preinstalled Microsoft and partner plugins are controlled by an availability setting, and custom plugins by two owner permissions and an upload scope.
Preinstalled plugins
- Owners set each preinstalled plugin's availability to All users or Owners only. Restrictions also affect embedded experiences: restricting the Microsoft Defender XDR and Natural language to KQL plugins degrades Copilot in the Defender portal for contributors, who can't override an owner restriction. The fix is to make the plugins available to all users again.
- After an owner has restricted any preinstalled plugin, new preinstalled plugins that Microsoft adds later arrive as Owners only. An owner must set each new one to All users before contributors see it.
- Plugins with a gear or Set up button, such as Microsoft Sentinel (subscription, resource group, workspace name), are configured per user. An owner completing the setup doesn't configure it for analysts; each analyst enters the values for themselves, and still needs their own Sentinel role.
Custom plugins
| Owner setting | Scope | Effect |
|---|---|---|
| Who can add and manage their own custom plugins | User | Owners only by default; set to Owners and Contributors to let contributors build plugins for themselves |
| Who can add and manage custom plugins for everyone in the organization | Tenant | Can be opened to contributors only after the user-scope setting allows them |
- A custom plugin is uploaded either as a Security Copilot plugin (a YAML or JSON manifest file) or as an OpenAI plugin (a link to the plugin's published manifest).
- At upload you choose Just me (a private plugin, the way to vet a new plugin) or Anyone in my organization (available to everyone straight away).
- Custom plugins uploaded by owners can't be edited by contributors. Only an owner can fix a shared plugin's file, from its gear icon. A contributor's private copy fixes only their own sessions.
- Plugins are turned on per workspace (Manage plugins / Sources).
Custom plugin manifests: GPT, KQL and API skills
A custom plugin is a YAML or JSON manifest with a Descriptor (name, description, settings) and one or more SkillGroups, each with a Format that decides what its skills do.
| Format | What a skill does | Key settings |
|---|---|---|
| GPT | Sends a prompt template to the model; it doesn't query data or call an API | Template |
| KQL | Runs a fixed KQL query (an inline Template) against a data store | Target plus the settings that locate the data |
| API | Calls a REST API described by an OpenAPI specification | OpenApiSpecUrl pointing to a hosted spec |
KQL targets
| Target | Queries | Settings it needs |
|---|---|---|
| Defender | Microsoft Defender XDR advanced hunting tables (for example EmailEvents) | No workspace values: just the template |
| Sentinel | A Microsoft Sentinel workspace | TenantId, SubscriptionId, ResourceGroupName, WorkspaceName |
| SentinelDataLake | The Microsoft Sentinel data lake | Template only in Microsoft's example |
| LogAnalytics | A Log Analytics workspace | See the KQL plugin reference |
| Kusto | An Azure Data Explorer cluster | Cluster URL and Database |
A fixed hunting query with no Sentinel workspace is the simplest case: a KQL skill with the Defender target.
API plugins support OpenAPI 3.0 or 3.0.1 only. An API described in Swagger 2.0 must be converted to OpenAPI 3.0.x and hosted before an API skill group can reference it; the OpenAPI version limit applies to the spec the skill group references.
Microsoft agents, agent identities and Security Store agents
Security Copilot agents are autonomous or scheduled AI workflows: Microsoft builds some (they appear under Active agents and inside product portals) and partners publish others, which you buy in Microsoft Security Store. Setting one up means choosing its identity, granting that identity the access it needs, turning on the plugins it depends on and setting its triggers.
Choosing the agent's identity
| Option | What the agent can do | When it fits |
|---|---|---|
| Create an agent identity (Microsoft Entra Agent ID) | Only what you grant it at setup; no person's credentials involved | Recommended by Microsoft for Microsoft-built agents |
| Connect an existing user account | Everything that account can do, and it fails when that user's access changes | Legacy approach; avoid personal or shared admin accounts |
An agent identity starts with no service access, so grant exactly what the agent reads. For example, the Threat Intelligence Briefing Agent's exposure data comes from Microsoft Defender for Endpoint, which scopes data both by role permissions (such as Vulnerability Management and Advanced Hunting read) and by device group. Missing either one leaves the exposure report unavailable or showing zero CVEs. A privileged Entra role is far broader than that read access.
Agents that ran as a user before agent identities existed failed whenever that user's privileged role was only eligible through Privileged Identity Management and not activated. The durable fix is to create an agent identity from the agent's identity and permissions settings, not to make the user's role permanent or activate it before every run.
Conditional Access Optimization Agent (Microsoft Entra)
- Security Administrator activates the agent the first time; Conditional Access Administrators review and apply its suggestions; reader roles can only view.
- By default it only suggests. It doesn't create policies. If you want it to set up new protections itself, turn on its capability to create policies, which it creates in report-only mode. An administrator switches each one on only after reviewing its impact. Changes to existing policies also wait for approval.
- Applied suggestions are ordinary Conditional Access policies: removing the agent removes its own data, and the policies stay in force.
Security Store (partner) agents
- Procurement is separate from operations. Partner agents are bought, and cancelled, in Security Store. Removing the agent in Security Copilot doesn't stop the partner's charge. SCUs the agent consumes are billed separately on your capacity.
- A partner agent that uses Microsoft product data (Sentinel, Defender and so on) needs a Global Administrator to approve its requested permissions. Until then, Set up is unavailable and a consent banner shows; the requester sends the link to a Global Administrator, then finishes the identity and trigger settings.
- Plugins the agent depends on are enabled but not configured when it's installed. Complete their settings (for example an API key) from Manage sources, or runs fail.
Tip. Expect short Microsoft-style scenarios describing a company's Copilot setup and one constraint (data residency, a cost ceiling, least privilege, no Entra directory roles, least administrative or development effort, no personal credentials), followed by which setting, role or action meets it. Items hinge on near-twins: data storage vs prompt evaluation location, provisioned vs overage units, disassociate vs delete, per-workspace vs tenant-wide settings, Copilot roles vs service roles, Recommended roles vs Everyone, user-scope vs tenant-scope custom plugin settings, KQL targets, agent identity vs user account, and Security Store procurement vs Security Copilot operations. Some items ask you to select two actions that together solve the problem.
- Data storage location is fixed when a workspace is created; new residency needs mean a new workspace, and in-region processing also needs prompt evaluation set to that geography instead of evaluate anywhere.
- One capacity serves one workspace and SCUs are never shared; provisioned units bill every hour, overage units bill only when used, and exhausted units throttle users until the next billing hour.
- Disassociating a capacity stops billing and keeps the workspace's data; deleting it permanently loses session history and feedback.
- Embedded and agent traffic is routed per product, tenant-wide, to the oldest workspace by default; users need a role in the target workspace, and agents must be stopped and set up again when you move them.
- Copilot owner and contributor aren't Entra roles and grant no data; on-behalf-of authentication means each plugin needs the user's own service role, such as Microsoft Sentinel Reader.
- Assign Copilot roles to role-assignable security groups (no dynamic membership); remove Everyone before adding the Recommended Microsoft Security roles, and know that Everyone can't come back.
- Owners alone change workspace-wide settings: plugin availability, upload permissions, data sharing, capacity and the usage dashboard; audit logging to Purview is tenant-wide and only a Security Administrator can change it.
- Restricting preinstalled plugins can break embedded Copilot and makes later new preinstalled plugins Owners only; plugins with a Set up button are configured per user.
- Custom plugins use a Descriptor and SkillGroups; KQL skills pick a Target (Defender needs no workspace values, Sentinel needs four), and API skills need an OpenAPI 3.0 or 3.0.1 spec.
- Prefer an agent identity over a user account, grant it exactly the service access it reads, buy and cancel partner agents in Security Store, and have a Global Administrator approve partner access to Microsoft data.
Frequently asked questions
Can you change a Security Copilot workspace's data storage location?
No. The data storage location of a Security Copilot workspace is chosen when the workspace is created and can't be changed afterwards. If a team needs its prompts and responses stored in a different geography, you create a new workspace with that storage location for the team, and existing workspaces and their sessions stay where they are.
What is the difference between provisioned and overage Security Compute Units?
Provisioned Security Compute Units (SCUs) are the always-on baseline of a Security Copilot capacity and are billed every hour whether or not they're used. Overage SCUs are only used after the provisioned units for the hour run out, and they're billed only when consumed, so they absorb usage spikes without raising the fixed baseline.
Does the Copilot contributor role give access to security data?
No. Copilot owner and Copilot contributor are Security Copilot platform roles, not Microsoft Entra roles, and they grant no security data. Security Copilot uses on-behalf-of authentication, so a user also needs the relevant service role (for example Microsoft Sentinel Reader for Sentinel incidents, or an Intune role for device data) before Copilot can return that data.
Can you use a dynamic group to assign Security Copilot roles?
No. Security Copilot only supports assigning its roles to role-assignable groups, and role-assignable groups in Microsoft Entra ID use assigned membership, not dynamic membership. Microsoft recommends assigning Copilot roles to security groups rather than to individual users or through privileged Entra roles.
Which workspace does Copilot in the Microsoft Defender portal use?
Embedded Security Copilot experiences and Microsoft agents are routed to a workspace by a tenant-wide setting made per product (Defender XDR, Purview, Intune, Microsoft Entra). Until an owner changes it, the oldest workspace receives the traffic. Users need a Copilot role in whichever workspace their product is routed to.
Why should a Security Copilot agent use an agent identity instead of a user account?
An agent identity (Microsoft Entra Agent ID) gives the agent only the permissions granted to it at setup and doesn't depend on any person's credentials. A connected user account lets the agent do everything that user can do, and its runs fail when the user's access changes, such as when a privileged role is only eligible in Privileged Identity Management.
How do you stop paying for a partner agent from Security Store?
Cancel the partner agent's subscription in Microsoft Security Store. Procurement of partner agents is handled in Security Store, separate from operations in Security Copilot, so removing the agent from Security Copilot doesn't cancel the partner's charge.
What versions of OpenAPI do Security Copilot API plugins support?
Security Copilot API plugins support OpenAPI 3.0 and 3.0.1 specifications. An API described in Swagger 2.0 must be converted to OpenAPI 3.0.x and hosted, then referenced from the plugin manifest's API skill group with OpenApiSpecUrl.
Source
This lesson covers the "Manage and monitor security posture" domain of the official SC-500 exam guide. Vendors revise their guides — check the source for the current version.
- Microsoft SC-500 study guide — Microsoft Learn
Sign up free to mark lessons complete, bookmark topics and track your exam readiness.