Copilot Won’t Create Your Data Problems. It Will Expose Them.

Microsoft 365 Copilot data security — permissions and governance
Microsoft 365 Copilot data security — permissions and governance

Maynor in the Cloud / Beyond the Tenant

Copilot does not have its own permission model. It answers using content the signed-in user is already entitled to open. That single fact is both the reassurance and the risk.

For years most organizations have relied on a control nobody ever approved: discovery friction. A finance workbook sitting in a site with broken inheritance was technically readable by three thousand people, but nobody found it because finding it required knowing it existed.

Copilot removes that friction. A question in plain language returns whatever the user is permissioned to see, in seconds, with citations.

In the readiness work I have done across health care and financial organizations, the finding is consistent. In one financial organization assessment, overall readiness scored at roughly half of target. The weakest areas were data governance, information protection and content sharing. Identity and access controls were partially implemented. Exchange and core services were mature.

None of that was caused by Copilot. All of it was made visible by it.

“Turn it on for a pilot group and see what happens.” This assumes the blast radius is the pilot group. It is not. The blast radius is everything that group is permissioned to reach, which in most tenants is far wider than anyone has documented.

“Fix the permissions first, then deploy.” Directionally correct, practically fatal. A complete permissions remediation in a large tenant is a multi-year programme. Treat it as a prerequisite and Copilot never ships.

“Buy the security add-ons.” Licensing enables controls. It does not configure them. A label that is never applied protects nothing.

The approach that works is narrower: scope the surface, remediate what is in scope, prove it, then widen. Restricted SharePoint Search exists to make exactly this possible.

DISCOVERInventory sites, teams, OneDrive accounts, sharing links, ownerless and overshared containers.
CLASSIFYSensitive information types, trainable classifiers, sensitivity labels, container labels.
PROTECTLabel-based encryption, DLP, Restricted SharePoint Search, site access review, link policy.
GOVERNOwners assigned, lifecycle policy, exception register, recertification cadence.
MONITORPurview audit, sharing and access reports, Copilot interaction audit, investigation runbook.

Figure 1. Discover, Classify, Protect — the readiness framework

Scope by container, not by user. Restricting which sites can ground responses is deterministic and reversible. Restricting licences is neither, because users share findings with colleagues.

The trade-off is that an allow-list creates a queue. Every business unit that wants their site added goes through a review. That queue is the control, but it needs an owner and a turnaround commitment, or it becomes the reason the programme is called a failure.

Labels before DLP. Rules that key off sensitivity labels are more stable than rules relying on content inspection alone. Labels also carry encryption, which continues to protect content after it leaves the tenant. The trade-off is that label rollout is change management, not configuration.

Ownerless content is a blocker, not a backlog item. A site with no owner has nobody to make an access decision. In every assessment I have run, ownerless collaboration spaces have been a meaningful share of the estate.

Audit before enablement. If the first interaction you can investigate is the one that caused the incident, you have no baseline.

Stakeholder alignment

Copilot readiness is not an IT project, and treating it as one is the most common cause of a stalled initiative. IT can configure controls. IT cannot decide whether the organization accepts the risk of a clinical or member-facing dataset being summarized on demand.

FunctionDecides
Executive sponsorWhether to proceed to each phase
Data owners (business)Which locations enter Copilot’s scope
SecurityControl standards and exception criteria
Privacy and LegalWhat data may be used with AI at all
IT platformHow controls are implemented

The most valuable artefact is the exception register. Every deviation with a named owner, a compensating control and a review date. Exceptions without those three fields are permanent by default.

  • Reduction in locations with organization-wide or anonymous sharing links
  • Ownerless container count, driven toward zero
  • Label coverage in scoped locations
  • Scope growth rate, meaning how many locations move from blocked to permitted per month
  • Copilot interaction audit coverage
  • Adoption within scope, so security is not the only story

Lessons learned

The assessment is the easy part. Producing a readiness score takes days. Converting findings into funded, owned remediation takes months, and that conversion is where programs succeed or fail.

“Copilot found it” is a governance win if you frame it correctly. The first time Copilot surfaces something it should not, the instinct is to call it a product failure. It is not. It is a control gap being reported by the only system that was ever going to find it at scale.

Readiness scores age. A tenant that scored well six months ago has since accumulated new sites, new sharing links and new departures.

Do not let licensing drive sequencing. Licences purchased ahead of readiness gates create pressure to enable before controls are in place, and that pressure always wins.


Most tenants before remediation look the same. Sites created on demand with inheritance broken at library, folder and item level over several years. OneDrive accounts holding business-critical content shared through links nobody has audited. Teams-created sites whose membership has diverged from the underlying site permissions. Labels published but applied to a small fraction of content. DLP thorough in Exchange and partial everywhere else. Audit at default retention with no investigation runbook.

The target state for a controlled enablement is grounding restricted to an explicit allow-list of curated locations, every in-scope location with a named owner and a completed access review, labels applied through a combination of default policy, auto-labelling and user action, DLP scoped to the same locations, and audit retention aligned to the investigation requirement.

  1. Licensing. Copilot, plus the compliance licensing required for auto-labelling, endpoint DLP and extended audit retention. Confirm which controls depend on which SKU before committing to a sequence.
  2. Identity. Conditional Access enforcing MFA and device compliance for the resources Copilot reaches. Copilot honours the session, it does not create a separate one.
  3. Container ownership. Ownerless sites must be resolved before they can be scoped.
  4. Audit. Unified audit logging enabled, retention aligned to the investigation requirement.
NOTE: Restricted SharePoint Search affects grounding, not the underlying permissions. It is a scoping control, not an access control. Nothing about the permissions changes when a site is excluded.

The behaviour that causes most surprises is the interaction between three permission surfaces: the Microsoft 365 group behind a team, the SharePoint groups on the site, and item-level unique permissions created whenever someone shares a single document.

The failure pattern is consistent. A document is shared with a broad link for a legitimate short-term reason. The link is never revoked. The item now carries unique permissions that no longer inherit from the site. A later site-level tightening does not touch it, and site-level remediation reports show the site as clean.

Two things follow. Auditing at site level is insufficient, so item-level sharing reports are required. And “People in your organization” links are the ones that quietly widen Copilot’s reach, because every licensed user qualifies.

NOTE: Restoring inheritance is destructive. It removes the unique permissions, which may include the only access some legitimate users have. It should never be the first remediation action.

Labels operate at two levels and the distinction is frequently missed.

Item labels apply to files and emails and can enforce encryption and usage rights that travel with the content. Copilot honours those rights. If the user does not have EXTRACT rights on an encrypted document, its content will not be used to ground a response.

Container labels apply to sites, groups and teams and control privacy, external sharing and unmanaged-device access. They do not encrypt content and do not apply a label to items within.

The recommendation is a small taxonomy of three to five labels, container labels on all in-scope sites, auto-labelling run in simulation before enforcement, and DLP rules built on labels first and sensitive information types second.

The usage right that determines Copilot’s behaviour is EXTRACT. A label whose encryption grants a user VIEW but not EXTRACT allows that user to open the document and prevents its content being used to ground a response. This is the only mechanism that stops content the user can legitimately open from being summarized, and it is why encryption — rather than classification alone — is the load-bearing control.

Connect-IPPSSession
# Inspect which labels actually apply encryption, and with which rights.
Get-Label | Select-Object DisplayName, Name,
@{n='Encrypted';e={ $_.EncryptionEnabled }},
@{n='RightsDef';e={ ($_.EncryptionRightsDefinitions |
ForEach-Object { "$($_.Identity):$($_.Rights)" }) -join ' | ' }},
ContentType | Format-Table -AutoSize

A rights definition granting VIEW,VIEWRIGHTSDATA,DOCEDIT,EDIT,PRINT,EXTRACT,REPLY includes EXTRACT, so Copilot will use the content. Removing EXTRACT from the definition is what excludes it — at the cost of also preventing legitimate copy and paste, which is a business decision rather than a technical one.

USER
IDENTITY GATE
GROUNDING
CONTENT
PROTECTION
RESPONSE
User promptSigned-in identity
Entra ID + Conditional AccessDevice, MFA, session state
Semantic indexPer-user permission trimmed
Restricted Content DiscoverySite-level discoverability control
SharePoint / OneDriveACLs, inheritance, links
Exchange / TeamsMailbox and chat scope
Sensitivity labelEncryption + usage rights
DLP for CopilotExcludes labelled content
Grounded responseCitations to source items

Figure 2. How Copilot resolves what a user may see — every gate is an existing control

Restricted SharePoint Search limits organization-wide search and Copilot grounding to an explicit allow-list of sites, while users retain access to their own OneDrive content and to sites they have used recently. It is the single most useful control for shipping a governed pilot.

Connect-SPOService -Url "https://<tenant>-admin.sharepoint.com"
# Enable the restriction, then build the allow-list from reviewed sites only.
Set-SPOTenantRestrictedSearchMode -Mode Enabled
Import-Csv .\gate1-approved-sites.csv | ForEach-Object {
Add-SPOTenantRestrictedSearchAllowedList -SitesListFileUrl $_.Url
}
# Confirm the effective mode and the current allow-list.
Get-SPOTenantRestrictedSearchMode
Get-SPOTenantRestrictedSearchAllowedList
NOTE: The allow-list is a scoping control on grounding, not on access. A user who navigates directly to an excluded site still opens it with their existing permissions. The restriction removes it from search and from Copilot’s grounding surface only.

Two behaviours to communicate before enablement. Users retain search over their own OneDrive and over sites they have interacted with recently, so the experience is not as restrictive as the configuration sounds. And content in excluded sites will be genuinely undiscoverable through Copilot, which users will report as a fault unless it has been explained as a deliberate control.

Start with the built-in data governance and sharing reports for a baseline, then supplement where the native reports stop.

# Sites with no valid owner. These cannot be scoped until resolved.
Connect-PnPOnline -Url "https://<tenant>-admin.sharepoint.com" -Interactive
Get-PnPTenantSite -IncludeOneDriveSites:$false | ForEach-Object {
$owners = @()
if ($_.GroupId -ne [guid]::Empty) {
$owners = Get-PnPMicrosoft365GroupOwner -Identity $_.GroupId -ErrorAction SilentlyContinue
}
if (-not $owners) {
[pscustomobject]@{
Url = $_.Url
Title = $_.Title
Sharing = $_.SharingCapability
StorageMB = $_.StorageUsageCurrent
LastModified = $_.LastContentModifiedDate
}
}
} | Sort-Object StorageMB -Descending | Export-Csv .\ownerless-sites.csv -NoTypeInformation
# Confirm Copilot interactions are being recorded before enablement, not after.
Connect-ExchangeOnline
Search-UnifiedAuditLog -StartDate (Get-Date).AddDays(-7) -EndDate (Get-Date) `
-RecordType CopilotInteraction -ResultSize 500 |
Select-Object CreationDate, UserIds, Operations |
Export-Csv .\copilot-interactions.csv -NoTypeInformation

The Graph equivalent for the ownership sweep, where the PowerShell modules are restricted:

GET https://graph.microsoft.com/v1.0/groups?$filter=groupTypes/any(c:c eq 'Unified')
&$select=id,displayName&$expand=owners($select=id,userPrincipalName)&$top=999

Filter the response for groups where the owners collection is empty, then correlate with the connected site URL.

SymptomLikely causeFirst check
Copilot returns content the user should not seeItem-level unique permissions or a broad sharing linkItem sharing report; inheritance at item, folder and library level
Copilot cannot find content the user can openLocation outside the allow-list, or not yet indexedAllow-list membership; indexing status
Labelled document still summarizedLabel applies no encryption, or user holds EXTRACT rightsLabel protection settings and rights assignment
DLP does not block a surfaced itemPolicy scope excludes the location, or rule in test modePolicy locations and enforcement mode
No audit record for an interactionAudit not enabled at the time, or retention elapsedUnified audit status and retention
Content excluded from search still citedSite removed from the allow-list after the index was builtAllow-list membership; re-crawl status
Encrypted document summarized anywayRights definition includes EXTRACT for that userLabel rights definition
Ownerless site cannot be remediatedNo owner to make the access decisionOwnership campaign before scoping

The investigation runbook needs to answer four questions: what was surfaced, to whom, from where, and under what permissions. The audit record answers the first two directly; the third and fourth require correlation.

Connect-ExchangeOnline
# Retrieve interactions for a specific user over an incident window,
# and expand the accessed-resource detail from the audit payload.
Search-UnifiedAuditLog -StartDate (Get-Date).AddDays(-30) -EndDate (Get-Date) `
-RecordType CopilotInteraction -UserIds "user@corporate.example" -ResultSize 1000 |
ForEach-Object {
$d = $_.AuditData | ConvertFrom-Json
foreach ($r in $d.CopilotEventData.AccessedResources) {
[pscustomobject]@{
When = $_.CreationDate
User = $_.UserIds
App = $d.CopilotEventData.AppHost
Resource = $r.Name
SiteUrl = $r.SiteUrl
Sensitivity = $r.SensitivityLabelId
Action = $d.Operation
}
}
} | Export-Csv .\incident-interactions.csv -NoTypeInformation

Then correlate each SiteUrl against the sharing report to establish why the user had access. In practice the answer is almost always a sharing link or an item-level permission rather than a site-level grant, which is what makes the item-level sharing report the second half of the runbook.

The recommendation is a canary approach. Place synthetic content carrying representative sensitive patterns in locations with known permission configurations. Run a scripted prompt set as a scoped test user and record which canaries are surfaced. Confirm every surfaced canary produced an audit record, and that labelled and encrypted canaries were excluded as designed.

Re-run after each scope change. This becomes the regression suite.

Rollback must be defined before enablement, in this order:

  1. Remove the location from the allow-list. Fast, and does not alter permissions.
  2. Remove the user from the licence group.
  3. Revoke sharing links and restore inheritance. Most invasive, most likely to break legitimate access. Never the first move.
NOTE: Each of these should be rehearsed once before go-live. The rollback you have never executed is a hypothesis, not a control.
Control domainDiscoveryClassificationEnforcementMonitoringReadiness
Identity and accessCompleteN/APartialPartialAmber
SharePoint sharingCompleteGapGapPartialRed
OneDrive exposurePartialGapGapPartialRed
Sensitivity labelsPartialGapGapGapRed
Data loss preventionCompletePartialPartialPartialAmber
Exchange and mail flowCompleteCompleteCompleteCompleteGreen
Device complianceCompleteN/APartialPartialAmber
Audit and investigationPartialN/APartialGapAmber

Red domains block broad enablement. Amber domains are permitted in a scoped pilot with compensating controls.

Figure 3. Readiness heat map — sanitized composite from health care and financial assessments

AI did not create a governance problem. It exposed one. The foundational controls required to protect and manage information, including inheritance, labels, DLP, audit, and scoped search, are mature and well understood. What is new is the urgency. For the first time, senior leadership has a tangible business driver to invest in getting governance right.

Discover more from Beyond the Tenant

Subscribe now to keep reading and get access to the full archive.

Continue reading