Skip to main content

CAB Runbook: Sensitivity Labels and DLP Policies

This runbook supports a Change Advisory Board (CAB) submission for deploying a sensitivity label taxonomy and foundational Data Loss Prevention (DLP) policies in Microsoft Purview. Complete the bracketed fields before submitting to your CAB.

Change Summary​

FieldValue
Change TitleDeploy Microsoft Purview Sensitivity Label Taxonomy, Foundational DLP Policies, and SSN PII Baseline
Change TypeStandard: New Capability
Risk LevelMedium
Estimated DowntimeNone: configuration changes only; no service interruption expected
Rollback AvailableYes: labels and policies can be disabled or deleted within minutes
Implementation Window[Insert maintenance window date/time and duration]
Implementer[Insert name, title]
Backup Implementer[Insert name, title]
CAB Sponsor[Insert name, title]
Ticket / Change ID[Insert change management ticket number]

Business Justification​

CMMC Level 2 requires that Controlled Unclassified Information (CUI) be identified, marked, and protected from unauthorized disclosure. This change implements the technical controls required by:

  • NIST SP 800-171 Rev. 2 3.1.3: Control the flow of CUI in accordance with approved authorizations
  • NIST SP 800-171 Rev. 2 3.13.1: Monitor, control, and protect communications at external boundaries
  • NIST SP 800-171 Rev. 2 3.13.16: Protect the confidentiality of CUI at rest

Without sensitivity labels, the organization cannot consistently identify CUI across Microsoft 365, and the label-based controls in this change (encryption, container settings, and the DLP rules at Priorities 6 and 9) have nothing to act on. This change is the prerequisite for those controls. The sensitive-information-type rules in the same change (Priorities 2 and 12) evaluate content directly and do not depend on it.

Scope of Change​

In Scope, Stage A: Sensitivity Labels​

  1. Enable MIP container labels for Microsoft 365 Groups in Entra ID (one-time PowerShell command, no user-facing impact)
  2. Create the sensitivity label taxonomy in the Microsoft Purview compliance portal (GCC High: six label objects, the CUI parent and its three sublabels among them; Commercial: four labels)
LabelCUI MappingEncryptionContainer Support
PublicNot CUINoNo
InternalNot CUI: internal business informationNoYes
CUI (parent)Grouping only: holds the three sublabels and cannot be applied itselfn/an/a
CUI (Basic)CUI Basic: the authority does not specify handling, so the NIST SP 800-171 baseline appliesYes (All Employees)Yes
CUI//SP-CTICUI Specified: Controlled Technical Information under DFARS 252.204-7012Yes (All Employees)Yes
CUI//SP-EXPTCUI Specified under ITAR (22 CFR 120.21); other export authorities per the registry's authority table. US persons onlyYes (sg-us-persons)Yes, external sharing none

Users see three top-level choices (Public, Internal, CUI); CUI opens to the three sublabels. Basic and Specified are the two handling classes, and the class comes from the law behind the information. Basic means the law says protect it, so the NIST SP 800-171 baseline applies; Specified means the law says how, and the sublabels exist because those rules change both the banner and the permissions. The sublabel mechanics (a parent is a grouping and cannot be applied, each sublabel carries its own settings, a label policy or a DLP condition can select the parent to include every sublabel) are in Sensitivity Labels.

  1. Publish a label policy targeting all users with the following settings:
    • Default label for files and emails: Internal (never a parent label: the CUI parent cannot be applied)
    • Mandatory labeling: On: users must select a label before saving or sending
    • Justification required on downgrade or removal: On

In Scope, Stage B: Foundational DLP Policies​

Thirteen DLP policies deployed across Exchange, SharePoint, OneDrive, and Teams:

PriorityPolicy NameWorkloadInitial RolloutAction
0Exchange - Credential AlertExchangeEnforced, test group → All usersBlock send + alert
1OneDrive - Credential AlertOneDriveEnforced, test group → All usersBlock access + alert
2SharePoint - Credential AlertSharePointSimulation tenant-wide → EnforcedBlock access + alert
3Teams - Credential AlertTeamsEnforced, test group → All usersAlert only
4Exchange - CUI//SP / Restricted Label External SharingExchangeEnforced, test group → All usersBlock + override with justification (GCC High: two rules; the CUI//SP-EXPT rule blocks with no override)
5OneDrive - CUI//SP / Restricted Label External SharingOneDriveEnforced, test group → All usersBlock access + alert
6SharePoint - CUI//SP / Restricted Label External SharingSharePointEnforced tenant-wide (label-based condition is deterministic)Block access + alert
7Exchange - CUI (Basic) / Confidential Label External SharingExchangeEnforced, test group → All usersAlert
8OneDrive - CUI (Basic) / Confidential Label External SharingOneDriveEnforced, test group → All usersAlert
9SharePoint - CUI (Basic) / Confidential Label External SharingSharePointEnforced tenant-wide (label-based condition is deterministic)Alert
10Exchange - SSN AlertExchangeEnforced, test group → All usersAlert
11OneDrive - SSN AlertOneDriveEnforced, test group → All usersAlert
12SharePoint - SSN AlertSharePointSimulation tenant-wide for 30 days → Enforced (Alert action retained)Alert

Policy names at Priorities 4 through 9 read GCC High / Commercial. The GCC High block tier (CUI//SP) conditions on the two Specified sublabels, CUI//SP-CTI and CUI//SP-EXPT, and the alert tier on CUI (Basic); the Commercial tiers condition on Restricted and Confidential.

Rollout pattern. Exchange, OneDrive, and Teams DLP support user/group scoping: deploy Enforced to the documented test group, observe real friction (override rates, helpdesk volume, alert count), then expand to All users. SharePoint DLP is site-scoped rather than user-scoped, so test-group enforcement is not available. For SharePoint policies with SIT-based conditions (Priority 2 Credential Alert and Priority 12 SSN Alert), use Simulation mode tenant-wide for 30 days to baseline false positives before promoting to Enforced. For SharePoint policies with label-based conditions (Priorities 6 and 9), the condition is deterministic (a file either carries the label or does not) and simulation is unnecessary; deploy Enforced from the start.

Block-with-override requires BOTH a Block action AND the override checkbox

The "Block + override with justification" pattern used at Priority 4 (Exchange highest-tier label external sharing; in GCC High the CUI//SP-CTI rule only, since the CUI//SP-EXPT rule blocks with no override) is two settings working together in the Purview DLP rule editor: an Action (Restrict access or encrypt the content in Microsoft 365 locations → Block everyone) AND the User overrides setting (Allow users to override policy restrictions + Require business justification to override). Configuring only the override without an Action results in pure alerting with no block: the override checkbox has no visible effect because there is no restriction to override. Per Microsoft Learn, DLP policy tips: "If you set the NotifyAllowOverride action to WithoutJustification or WithJustification or FalsePositives, make sure BlockAccess is set to true and BlockAccessScope has appropriate value. Otherwise, the policy tip comes up but the user doesn't find an option to override the email with justification."

Out of Scope: Reserved for a Follow-Up Submission​

The following capabilities are excluded from this change and will be addressed in a subsequent CAB submission:

  • Endpoint DLP (USB copy, cloud upload, print, RDP clipboard controls)
  • Microsoft 365 Copilot label enforcement
  • Client-side and service-side auto-labeling policies (in GCC High the follow-up maps the Classifiers chapter's custom SITs to sublabels: CUI Distribution Statement or CUI DoD Contract Number applies CUI//SP-CTI, CUI Export Control applies CUI//SP-EXPT, a bare CUI Designation Indicator token with no category applies CUI (Basic), that last rule simulated first)
  • Insider Risk Management integration
  • Finance SIT-based detection policies (the SSN PII baseline is included as Step B-4 below; additional PII SITs (driver's license, ITIN, bank account, passport) are reserved for the follow-up submission)

Prerequisites​

All prerequisites must be verified before the implementation window opens.

#PrerequisiteVerified ByNotes
1Microsoft Purview compliance portal access: Global Administrator or Compliance Administrator role[Name]Required to create labels and policies
2Exchange Online Administrator role[Name]Required for IPPS session during container label sync
3Microsoft Entra ID P1 or P2 license for at least one admin account[Name]Required for container label enablement
4Microsoft 365 E3/E5 or equivalent licenses for all in-scope users[Name]Sensitivity labels require M365 Apps for Enterprise; DLP for Exchange/SharePoint/OneDrive requires E3 minimum. DLP for Teams chat/channel messages (Priority 3) requires E5 per assigned user (see the Step B-2 callout)
5No existing conflicting label policies in the tenant[Name]Check in Purview portal → Information Protection → Label policies
6Approved list of partner/external domains authorized to receive CUI or sensitive content. One list, two consumers: the Recipient domain is exception on the Exchange rules and the Viewer domain entries on the CUI (Basic) and CUI//SP-CTI labels[Name]Required for Stage B DLP Allowed Domains configuration and for the label encryption entries in Stage A
7Security team distribution group or mailbox for DLP incident reports: substitute the client's real address everywhere the runbook shows [YOUR_DLP_ALERT_EMAIL][Name]Client-provided. Must be an active, monitored mailbox or group before Stage B begins.
8Change freeze status confirmed: no competing changes to Exchange transport rules or mail flow during window[Name]Avoid overlapping with mail flow configuration changes
9SharePoint Admin Center: unmanaged device access set to Allow limited, web-only access[Name]Required for sensitivity label container controls to restrict unmanaged device access. See SharePoint Admin Center — Unmanaged Device Access
10GCC High only: sg-us-persons exists as a mail-enabled security group and its membership has been reconciled against the HR or export-compliance record of verified US persons[Name]The CUI//SP-EXPT label grants Co-Author to this group; the label encryption picker rejects a security group that is not mail-enabled

Implementation Plan​

Estimated total implementation time: 90–120 minutes for a tenant with no pre-existing label configuration.

Stage A: Sensitivity Labels (≈45 minutes)​

Step A-1: Enable container labels in Entra ID (≈10 minutes)

  1. Open PowerShell as an account with Global Administrator or Entra roles.
  2. Run the following commands:
# Install required modules if not present
Install-Module Microsoft.Graph.Beta -Scope CurrentUser -Force
Install-Module ExchangeOnlineManagement -Scope CurrentUser -Force

# Choose the tenant cloud explicitly before connecting.
$cloud = 'GCCHigh' # Change to 'Commercial' for a commercial tenant.
if ($cloud -eq 'GCCHigh') {
Connect-MgGraph -Environment USGov -Scopes 'Directory.ReadWrite.All'
$ippsConnection = @{
ConnectionUri = 'https://ps.compliance.protection.office365.us/powershell-liveid/'
AzureADAuthorizationEndpointUri = 'https://login.microsoftonline.us/organizations'
}
} elseif ($cloud -eq 'Commercial') {
Connect-MgGraph -Environment Global -Scopes 'Directory.ReadWrite.All'
$ippsConnection = @{}
} else {
throw 'Choose GCCHigh or Commercial.'
}

# Preserve every existing Group.Unified value when enabling labels.
$setting = Get-MgBetaDirectorySetting -All | Where-Object DisplayName -eq 'Group.Unified'
if ($setting) {
$values = @($setting.Values | Where-Object Name -ne 'EnableMIPLabels' |
ForEach-Object { @{ Name = $_.Name; Value = $_.Value } })
$values += @{ Name = 'EnableMIPLabels'; Value = 'True' }
Update-MgBetaDirectorySetting -DirectorySettingId $setting.Id -BodyParameter @{ Values = $values }
} else {
$template = Get-MgBetaDirectorySettingTemplate -All | Where-Object DisplayName -eq 'Group.Unified'
if (-not $template) { throw 'Group.Unified template not found.' }
New-MgBetaDirectorySetting -BodyParameter @{
TemplateId = $template.Id
Values = @(@{ Name = 'EnableMIPLabels'; Value = 'True' })
}
}

$grpUnifiedSetting = Get-MgBetaDirectorySetting -All | Where-Object DisplayName -eq 'Group.Unified'
$grpUnifiedSetting.Values | Where-Object Name -eq 'EnableMIPLabels'
Connect-IPPSSession @ippsConnection
Execute-AzureADLabelSync
Disconnect-ExchangeOnline
  1. Verify: the Get-MgBetaDirectorySetting command above returns the Group.Unified setting's values: confirm EnableMIPLabels shows Value: True. This directory setting has no screen in the Entra portal; it is read and written only through the Microsoft Graph directory-settings cmdlets (reference).

Step A-2: Create sensitivity labels (≈20 minutes)

Navigate to Microsoft Purview compliance portal → Information Protection → Labels. Create labels in order from least to most sensitive: label priority is determined by creation order. In GCC High the CUI tier is a grouping that holds three sublabels, and the portal builds it one of two ways depending on the tenant's label scheme (Learn); check which one the Labels page shows before you start:

  • Modern label scheme: a tenant with no sensitivity labels yet, a tenant created from October 1, 2025, or one migrated to the scheme (the page shows a green message bar confirming the migration). The button reads + Create and offers Label or Label group. Create Public and Internal as labels, then create CUI as a Label group: the group carries only a name, display name, label group priority, description for users, and color, and it has no scope, protection, or container pages. Then select the CUI group, select ... under Actions, and choose Create label in group for each of the three sublabels. A tenant that has never had a label is on this scheme, so this is the path most readers of this runbook will see.
  • Classic label scheme: an older tenant that still carries parent labels. The button reads + Create a label. Create CUI as a label after Internal, then create each sublabel from the parent: select CUI in the label list, select ... under Actions, then Create sublabel. A label created from + Create a label is always top-level, so a sublabel created that way lands beside the parent instead of under it.

The table below lists every setting in wizard order. Fill in each row as you step through the wizard. The CUI column covers both schemes: a label group has only the name, display name, priority, description, and color rows, and a classic parent label shows the remaining wizard pages but never uses them.

SettingPublicInternalCUI (group or parent)CUI (Basic)CUI//SP-CTICUI//SP-EXPT
NamePublicInternalCUICUI-BasicCUI-SP-CTICUI-SP-EXPT
Display namePublicInternalCUICUI (Basic)CUI//SP-CTICUI//SP-EXPT
Priority012: the Label group priority field on the modern scheme, creation order on the classic; the grouping sits immediately before its sublabels345
Parent labelNoneNoneNone: this is the grouping itself (a label group on the modern scheme, a parent label on the classic), and it cannot be appliedCUICUICUI
Description for usersApproved for public release.Internal business information not cleared for external release. No special handling required.Controlled Unclassified Information. Choose the sublabel that matches the document's marking or the contract's CUI guidance.CUI whose authority does not specify handling. NIST SP 800-171 baseline applies.Controlled Technical Information under DFARS 252.204-7012. Carries a DoD distribution statement.Export controlled under ITAR or EAR. US persons only.
Label colorGreenBlueYellow: the one color for the CUI tier, since a sublabel has no color field and inherits the group's or parent's colorInherited from CUIInherited from CUIInherited from CUI
Scope - Files & other data assetsOnOnOn (classic parent only: a label group has no scope page)OnOnOn
Scope - EmailsOnOnOn (classic parent only)OnOnOn
Scope - MeetingsOffOffOff (classic parent only)OffOffOff
Scope - Groups & sitesOffOnOn (classic parent only)OnOnOn
Control accessOffOffn/a (group or parent)OnOnOn
Apply content markingOffOnn/a (group or parent)OnOnOn
Assign permissions now or let users deciden/an/an/a (group or parent)Assign permissions nowAssign permissions nowAssign permissions now
User access to content expiresn/an/an/a (group or parent)NeverNeverNever
Allow offline accessn/an/an/a (group or parent)30 days30 days7 days
Assigned users or groupsn/an/an/a (group or parent)All Employees: the Add all users and groups in your organization entry (tenant members, guests excluded)All Employeessg-us-persons (mail-enabled security group of verified US persons)
Permissionsn/an/an/a (group or parent)Co-Author (Editor in current portal naming)Co-AuthorCo-Author
Header text (designation indicator)n/an/an/a (group or parent)Controlled by: [Organization]. POC: [name, email]. Add the CUI category and any dissemination control when the contract's CUI guidance requires themControlled by: [Organization]. CUI Category: CTI. Distribution Statement [B through F, per contract]. POC: [name, email].Controlled by: [Organization]. CUI Category: EXPT. Export controlled: US persons only. POC: [name, email].
Footer text (banner)n/aInternaln/a (group or parent)CUICUI//SP-CTICUI//SP-EXPT
Auto-labeling for files and emailsOffOffOff (a label group has no auto-labeling page; never configure auto-labeling on a classic parent)OffOffOff
Privacy and external user access (check this protection setting)n/aOnn/a (group or parent)OnOnOn
External sharing and Conditional Access (check this protection setting)n/aOnn/a (group or parent)OnOnOn
Private teams discoverability and shared channel settings (check this protection setting)n/aOffn/a (group or parent)OffOffOff
Auto apply settingsn/aNonen/a (group or parent)NoneNoneNone
Privacyn/aPublic or Privaten/a (group or parent)PrivatePrivatePrivate
Let group owners add people outside the organization as guestsn/aOnn/a (group or parent)OffOffOff
External sharing - Content can be shared withn/aNew and existing guestsn/a (group or parent)Existing guestsOnly people in your organizationOnly people in your organization
Access from unmanaged devicesn/aFull accessn/a (group or parent)Allow limited, web-only accessBlock accessBlock access
Create sg-us-persons before this step

sg-us-persons must be a mail-enabled security group (or a Microsoft 365 group): the label encryption picker rejects a security group that is not email-enabled. Create it in the Exchange admin center (Recipients → Groups → Add a group → Mail-enabled security) and populate it from the HR or export-compliance record of verified US persons before running the wizard. A user added to the group later opens already-labeled files on the next attempt, once the Azure Rights Management group-membership cache refreshes (up to three hours per Learn): a refused user holds no use license, so there is nothing to wait out. A user removed from the group keeps cached access for up to the label's 7-day offline window, the revocation lag Sensitivity Labels describes.

What the CUI column means

The CUI column is the grouping that holds the three sublabels: a label group on the modern label scheme (a tenant with no labels yet, a tenant created from October 1, 2025, or one migrated to the scheme) and a parent label on the classic scheme. Either way it carries no marking or encryption of its own and cannot be applied to a file, an email, or a site. A label group has only the name, display name, priority, description, and color rows, so every other row reads n/a (group or parent); a classic parent label shows those wizard pages but never uses them. A sublabel inherits nothing from the grouping except the label color. The sublabel columns are the same under both schemes.

Why Public is not scoped to Groups & sites

Container labels exist to restrict: every Groups & sites setting (privacy, external sharing, unmanaged-device access) tightens access compared to tenant defaults. A Public container scope would either repeat tenant defaults or accidentally relax a stricter one: a downgrade footgun where a user picks Public to dodge friction and locks the site into the most permissive posture. Keeping Public at file/email scope only preserves its intended use (marking individual files and emails approved for public release) without making it pickable in the site-creation label dropdown.

Repeat the wizard for each label (six objects in GCC High, four in Commercial). After all labels are created, if container labels were enabled for the first time in Step A-1 above, run the post-enablement sync below: this forces Purview to push the new labels into Entra ID so they become available for application to SharePoint sites, M365 Groups, and Teams sites. For tenants stood up after September 2019 this happens automatically and the command is a no-op safety measure; for older tenants it is required.

Import-Module ExchangeOnlineManagement
# Reuse the cloud-specific connection settings from Step A-1 in this session.
if (-not (Test-Path variable:ippsConnection)) { throw 'Run Step A-1 cloud selection first.' }
Connect-IPPSSession @ippsConnection
Execute-AzureADLabelSync

The cmdlet does not influence the Purview-to-Azure-Rights-Management sync (encryption configuration) or label visibility in Office client apps: both of those are automatic on Microsoft's schedule. See Label Sync Timing for the full sync-path breakdown.

Verification: All six objects (five labels and the CUI label group on the modern scheme; six labels on the classic scheme) should appear in the Information Protection → Labels list with correct priority order (Public = 0, Internal = 1, CUI = 2, CUI (Basic) = 3, CUI//SP-CTI = 4, CUI//SP-EXPT = 5), the three sublabels nested under CUI and each label showing a green checkmark. From the IPPS session of Step A-1, Get-Label | Sort-Object Priority | Format-Table Priority, Name, DisplayName, ParentId confirms the nesting: the three sublabels carry the CUI object's GUID (the group's or the parent's) in ParentId; the other three rows are blank.

Step A-3: Publish label policy (≈15 minutes)

  1. Navigate to Information Protection → Label policies → Publish labels.
  2. Select the labels from the Step A-2 table. In GCC High, select the three CUI sublabels explicitly: on the classic scheme also select the CUI parent label (Learn: when you select a sublabel, make sure you also select its parent), and on the modern scheme the CUI label group is not selectable in a publishing policy, so the sublabels alone are published (Learn). Under both schemes the sublabels are what users apply, and CUI appears in the picker only as the entry that opens to them.
  3. Assign to: All users and groups (or a pilot group if a phased rollout is preferred; see Risk Register).
  4. Configure policy settings:
    • Require justification for label removal or downgrade: On (in GCC High the prompt does not fire between two CUI sublabels, which share their parent's priority for this setting; see test L-8)
    • Require users to apply a label to their emails and documents: On
    • Require users to apply a label to their Fabric and Power BI content: On
    • Provide a help link: [Insert link to internal data classification policy]
  5. Set default labels:
    • Default label for documents: Internal
    • Default label for emails: Internal
    • Never pick the CUI parent as a default: a parent cannot be applied, so never choose it as the default
  6. Name the policy: [ORG] - Standard Label Policy v1.0
Label propagation

Sensitivity labels appear in Office clients (Word, Excel, Outlook) within 24 hours of policy publication. Plan the communication timeline accordingly.

Step A-4: Enable co-authoring for encrypted files (≈5 minutes), Microsoft Docs

Without this setting, users on Office desktop apps must check out encrypted labeled files before editing, blocking real-time collaboration. Enabling it allows multiple users to edit encrypted files simultaneously and enables AutoSave for those files.

This setting is effectively irreversible

Once enabled, this setting cannot be turned off from the Purview portal. Disabling it requires PowerShell and will cause labeling metadata to be lost from any unencrypted Word, Excel, and PowerPoint files that were labeled while the setting was active. Enable only after confirming no scripts, Exchange mail flow rules, or third-party tools in your environment read sensitivity label metadata from the old custom document properties location. Standard Microsoft 365 services (DLP policies, auto-labeling, Defender for Cloud Apps) all support the new metadata format and require no changes.

  1. Navigate to Microsoft Purview portal → Settings → Solution settings → Information Protection → Co-authoring for files with sensitivity labels.
  2. Read the prerequisites and summary displayed on the page.
  3. Select Turn on co-authoring for files with sensitivity labels → Apply.
  4. Wait 24 hours before relying on co-authoring for encrypted documents.

Stage B: Foundational DLP Policies (≈45–75 minutes)​

Step B-1: Verify the security alert mailbox

Before creating policies, confirm that the security team mailbox or distribution group that will receive DLP incident reports is active and monitored: [YOUR_DLP_ALERT_EMAIL]

There is no separate global setting for this in the DLP portal. The recipient is configured within the Incident reports rows of each policy table in B-2 and B-3 below.

Alert deliverability: two field-tested gotchas

DLP incident-report emails arrive from a Microsoft service address that a mail-enabled security group or Microsoft 365 group treats as external, so the group silently drops every alert unless external senders are allowed, with no error surfaced in the Purview portal.

  1. Allow external senders on the alert group. If [YOUR_DLP_ALERT_EMAIL] is a mail-enabled security group or M365 group, enable it: Exchange admin center → Recipients → Groups → [group] → Settings → General settings → check Allow external senders to email this group (Microsoft Learn), or via PowerShell for an M365 group: Set-UnifiedGroup -Identity <group> -RequireSenderAuthenticationEnabled $false. The external-sender block is documented here.
  2. Inbound mail filtering can still drop it. Even with external senders allowed, we have repeatedly seen client third-party secure-email gateways block the alerts by sender IP or domain. If alerts still don't arrive, trace where they died: Exchange admin center → Mail flow → Message trace, then allow-list the Microsoft 365 alert sender at the upstream filter.

Step B-2: Create credential alert policies (Priorities 0–3)

For each policy: DLP → Policies → Create policy → Custom → Custom policy → full directory scope → single rule.

SettingExchange (P0)OneDrive (P1)SharePoint (P2)Teams (P3)
Policy nameExchange - Credential AlertOneDrive - Credential AlertSharePoint - Credential AlertTeams - Credential Alert
LocationsExchange emailOneDrive accountsSharePoint sitesTeams chat and channel messages
Included users/groupsEID_Sensitivity_Label_Test_Users, expand to All after validation← sameNot supported: SharePoint scopes by site URL, not by user/groupEID_Sensitivity_Label_Test_Users, expand to All after validation
Condition - Sensitive info typeAll credentials (bundled SIT: covers passwords, API keys, tokens, and secrets)← same← same← same
ActionBlock the email; notify the userRestrict access or encrypt the content → Block everyone except the content owner, last modifier, and site adminRestrict access or encrypt the content → Block everyone except the content owner, last modifier, and site adminAlert only
User notificationsOnOnOnOff
Incident reports - Admin alertOnOnOnOn
Incident reports - Recipients[YOUR_DLP_ALERT_EMAIL]← same← same← same
Incident reports - Alert frequencyEvery rule match← same← same← same
Alert severityHighHighHighMedium
Policy modeEnforced (test group) → Enforced (All)Enforced (test group) → Enforced (All)Simulation tenant-wide: promote to Enforced after reviewing alert logEnforced (test group) → Enforced (All)
Teams - Credential Alert (Priority 3) requires E5

The Teams chat-and-channel-messages DLP location needs an E5-tier license assigned to each in-scope user: Office 365 / Microsoft 365 E5/G5, E5 Compliance, or E5 Information Protection & Governance (Microsoft Learn: "Support for DLP protection in Teams Chat requires an E5 license"). Priorities 0–2 (Exchange/OneDrive/SharePoint) and the rest of this runbook work at E3. On an E3 tenant the Teams - Credential Alert policy silently fails to enforce and validation test V-3 never triggers, observed in the field. If Teams coverage is required, confirm E5 assignment first (the Information protection license report in the Teams admin center → Analytics & reports flags unlicensed users).

Step B-3: Create label-based external sharing policies (Priorities 4–9)

For each policy: DLP → Policies → Create policy → Custom → Custom policy → full directory scope → single rule.

Specified sublabel policies (Priorities 4-6): CUI//SP-CTI and CUI//SP-EXPT

The Exchange policy holds two rules, because the two Specified sublabels differ in two settings: a distribution statement can authorize a recipient of Controlled Technical Information, so the CUI//SP-CTI rule blocks with override and business justification and carries the approved partner-domain exception, while export-controlled content blocks with no override and no domain exception. OneDrive and SharePoint block absolutely for both sublabels with no domain exception, so one rule with both sublabels selected is enough there; the partner-domain exception exists only on the Exchange CTI rule. Select the sublabels themselves, never the CUI parent: the parent would pull CUI (Basic) into the block tier.

SettingExchange (P4)OneDrive (P5)SharePoint (P6)
Policy nameExchange - CUI//SP Label External SharingOneDrive - CUI//SP Label External SharingSharePoint - CUI//SP Label External Sharing
LocationsExchange emailOneDrive accountsSharePoint sites
Included users/groupsEID_Sensitivity_Label_Test_Users, expand to All after validation← sameNot supported: deploying Enforced across all sites; false positive risk is low given the tight condition (labeled content + shared externally)
RulesTwo rules in this one policy, EXPT - Block, no override ordered first, then CTI - Block with override; rows below name the rule where the two differOne ruleOne rule
Condition - Content is labeledEXPT rule: CUI//SP-EXPT. CTI rule: CUI//SP-CTICUI//SP-CTI or CUI//SP-EXPT (both sublabels selected in the one condition)← same
Condition - Content is sharedWith people outside the organization← same← same
Approved-domain allow listCTI rule: required, list approved GCC High partner domains (added in the Exceptions section of the rule, not within the Content is shared condition). EXPT rule: none (US persons only); add a domain only with the export-compliance officer's written approval. The same domains must appear as Viewer entries on the CUI//SP-CTI label; a domain on this exception and not on the label delivers a file the partner cannot openNot available: Recipient domain is exists only in Exchange and Teams rules. None is wanted here: the CUI//SP-CTI and CUI//SP-EXPT container labels set External sharing to Only people in your organization, so no external share reaches this rule; it is the backstop for a CUI//SP file that lands on a less restrictive site← same
ActionRestrict access or encrypt the content → Block everyone (email undelivered)Restrict access or encrypt the content → Block everyone except the content owner, last modifier, and site adminRestrict access or encrypt the content → Block everyone except the content owner, last modifier, and site admin
User overridesCTI rule: Allow users to override → Require business justification (override is logged via audit log X-header; the Block action MUST be configured for the override option to appear to users (see info callout below the Stage B summary table)). EXPT rule: Off, block with no overrideOff: Block is absolute for stored contentOff: Block is absolute for stored content
User notificationsOnOnOn
Incident reports - Admin alertOnOnOn
Incident reports - Recipients[YOUR_DLP_ALERT_EMAIL]← same← same
Incident reports - Alert frequencyEvery rule match← same← same
Alert severityHighHighHigh
Policy modeEnforcedEnforcedEnforced

CUI (Basic) label policies (Priorities 7-9)

SettingExchange (P7)OneDrive (P8)SharePoint (P9)
Policy nameExchange - CUI (Basic) Label External SharingOneDrive - CUI (Basic) Label External SharingSharePoint - CUI (Basic) Label External Sharing
LocationsExchange emailOneDrive accountsSharePoint sites
Included users/groupsEID_Sensitivity_Label_Test_Users, expand to All after validation← sameNot supported: deploying Enforced across all sites; alert-only action means false positives have no user impact
Condition - Content is labeledCUI (Basic)← same← same
Condition - Content is sharedWith people outside the organization← same← same
Approved-domain allow listRequired: list approved GCC High partner domains (added in the Exceptions section of the rule, not within the Content is shared condition). The same domains must appear as Viewer entries on the CUI (Basic) labelNot available in this location. The approved domains go in the SharePoint admin center: Policies > Sharing > More external sharing settings > Limit external sharing by domain > Allow only specific domains, the same list as the Exchange exception; it refuses a share to any other domain before DLP runs, and covers OneDrive. This alert-only rule then fires on shares to approved domains and on links that predate the setting; that alert is the CUI-flow record for AC.L2-3.1.3, not a false positive. If the CAB wants a hard block instead of the alert, the action sub-option Block access for specific external domains or users with Domain IS NOT set to the approved list is the per-rule allow list (present in the GCC High wizard; no user notification or override)← same, with the per-site subset under Active sites > site > Settings > More sharing settings for CUI (Basic) sites
ActionAlert onlyAlert onlyAlert only
User notificationsOnOnOn
Incident reports - Admin alertOnOnOn
Incident reports - Recipients[YOUR_DLP_ALERT_EMAIL]← same← same
Incident reports - Alert frequencyEvery rule match← same← same
Alert severityMediumMediumMedium
Policy modeEnforcedEnforcedEnforced

Step B-4: Create SSN alert policies (Priorities 10–12)

For each policy: DLP → Policies → Create policy → Custom → Custom policy → full directory scope → single rule.

SettingExchange (P10)OneDrive (P11)SharePoint (P12)
Policy nameExchange - SSN AlertOneDrive - SSN AlertSharePoint - SSN Alert
LocationsExchange emailOneDrive accountsSharePoint sites
Included users/groupsEID_Sensitivity_Label_Test_Users, expand to All after validation← sameNot supported: SharePoint scopes by site URL, not by user/group
Condition - Sensitive info typeU.S. social security number (SSN): high-confidence variant only (formatted SSN pattern ddd-dd-dddd + a keyword from Keyword_ssn within 300 characters; minimizes false positives from non-SSN nine-digit numbers)← same← same
ActionAlert only: do not restrict or block. This first submission is a baseline-and-tune period before deciding on enforcement← same← same
User notificationsOn: informs users that SSN content is now monitored and sets expectations for future enforcement← same← same
Incident reports - Admin alertOnOnOn
Incident reports - Recipients[YOUR_DLP_ALERT_EMAIL]← same← same
Incident reports - Alert frequencyEvery rule match← same← same
Alert severityMediumMediumMedium
Policy modeEnforced (test group) → Enforced (All)Enforced (test group) → Enforced (All)Simulation tenant-wide for 30 days: promote to Enforced (Alert action retained) after reviewing simulation log
Why high-confidence only

The SSN SIT has three confidence levels. High confidence requires a formatted SSN pattern (ddd-dd-dddd or ddd dd dddd) plus a keyword from Keyword_ssn (e.g., SSN, social security, SSA Number) within 300 characters. Medium and low confidence drop the formatting requirement and produce substantially higher false-positive volume from any nine-digit number (part numbers, invoice IDs, employee IDs). Starting with high-confidence only keeps initial alert volume manageable; expand to medium and low confidence in a subsequent CAB submission after baseline tuning. See U.S. social security number (SSN) for the full pattern definition.

Step B-5: Verify policy priority order

  1. Navigate to DLP → Policies.
  2. Confirm policies are ordered 0 through 12 as specified. Adjust priority manually if the portal has assigned different numbers.

Validation Plan​

Complete all validation steps before closing the change ticket. Document pass/fail for each test. The plan has five layers: DLP credential detection, per-label feature tests, container-vs-content matrix, cross-tier sanity tests, and audit visibility.

Validate blocking with a second account, never your own upload

The SharePoint/OneDrive block action exempts exactly who its wizard label says: "Block everyone except the content owner, last modifier, and site admin." They retain access by design as the remediation path (they get the policy tip and can fix the file). A validator who uploads a test file is its owner and last modifier, and admins are exempt outright, so testing against your own upload shows no blocking at all and reads as a broken policy (field-verified: this has confused a client's director). Confirm every blocked-access expectation with a second account holding none of those three roles; for that account the file vanishes from the library listing and direct links return Access Denied. Two related facts: the permission change persists even if the policy is later deleted (restoring visibility takes an override or manual re-permissioning), and where the owner must also lose access, that is the quarantine action, currently in preview.

Required Test Sites​

Each site holds 4–5 test files.

Provision Team Sites, not Communication Sites

Container labels on Team Sites exercise the full surface area: SharePoint-level controls (external sharing, unmanaged-device access, default sharing link type) plus Group-level controls (privacy public/private, Teams sensitivity inheritance, group mailbox external email). Communication Sites only exercise the SharePoint subset.

Cleanup: each Team Site provisions a Microsoft 365 Group, group mailbox, and Planner. When tearing down the test environment, delete the M365 Group (Entra admin center → Groups → [Group] → Delete), not just the SharePoint site.

No Test-Public site

The Public label is file/email-scope only and cannot be applied as a container label (see Stage A-2 above). In GCC High there is no Test-CUI site either: the CUI parent cannot be applied as a container label, so every site takes a sublabel.

#Site NameContainer LabelCarries Which Tests
S-1Test-InternalInternalL-2 (Internal per-label feature)
S-2Test-CUI-BasicCUI (Basic)L-3 (CUI (Basic) per-label feature); B-1 and B-2 (2×2 cells with labeled site); X-3 source; X-4 (Internal file external-share attempt)
S-3Test-CUI-SP-CTICUI//SP-CTIL-4 (CUI//SP-CTI per-label feature, includes the external-share block); X-2 (Public file in a CUI//SP-CTI site)
S-4Test-CUI-SP-EXPTCUI//SP-EXPTL-5, L-6, and L-7 (CUI//SP-EXPT banner and encryption, no-override external-share block, refusal of a user outside sg-us-persons)
S-5Test-Unlabeled(none)L-1 (Public per-label feature: site label irrelevant for a file-label test); L-6 SharePoint leg (CUI//SP-EXPT file shared from an unlabeled site so the DLP block is what fires); B-3 and B-4 (2×2 cells with unlabeled site); X-1 (CUI//SP-CTI file in unlabeled site); X-3 destination (move-out OneDrive personal can substitute)

Production sites follow the same rule as the test sites: a tented project site for contract work carries the sublabel that matches the contract (CUI//SP-CTI for technical work, CUI//SP-EXPT for export-controlled programs), never the parent.

Layer 1: DLP Credential and SSN Detection​

Validates DLP credential and SSN rules across Exchange, OneDrive, SharePoint, and Teams. Environment-agnostic: same expected behavior in Commercial and GCC High.

#TestExpected ResultValidated By
V-1Send an email containing a plaintext password to an external addressExchange - Credential Alert triggers; email is blocked; user receives policy tip[Name]
V-2Upload a file containing a test credential string to OneDrive and share externallyOneDrive - Credential Alert triggers; external sharing link is removed[Name]
V-3From a test-group member, post a message in a Teams channel containing a test credential stringTeams - Credential Alert triggers; incident report delivered to the security mailbox; the message is not blocked and no policy tip appears (Priority 3 is Alert-only with user notifications off). Requires E5 (see the Step B-2 callout)[Name]
V-4Send an email containing a test SSN (e.g., 123-45-6789 with the keyword SSN nearby) to an external addressExchange - SSN Alert triggers (Alert only, no block); incident report delivered to security mailbox; sender sees policy tip[Name]
V-5Upload a file containing the same test SSN string to OneDriveOneDrive - SSN Alert triggers; incident report delivered; file remains accessible (Alert action only)[Name]
V-6Upload a file containing the same test SSN string to a SharePoint siteSharePoint - SSN Alert match appears in the policy's simulation log (DLP → Policies → SharePoint - SSN Alert → View matches); no user-facing alert during the 30-day simulation period[Name]

Layer 2: Per-Label Feature Tests​

Confirms each label's specific enforcement (markings, encryption, external-share block, downgrade justification) behaves as designed. The presence of every label in the Office client picker (in GCC High, the CUI entry opening to its three sublabels) is implicitly validated: if the label cannot be applied, the test cannot be run.

#TestExpected ResultValidated By
L-1In Test-Unlabeled (S-5), apply Public to a test document; save and reopenSave succeeds; no header/footer/watermark; no encryption[Name]
L-2In Test-Internal (S-1), apply Internal to a test document; save and reopenSave succeeds; "Internal" footer text appears; no encryption[Name]
L-3In Test-CUI-Basic (S-2), apply CUI (Basic) (picker path CUI → CUI (Basic)) to a test document; save, then open it as a second internal account and as a guestSave succeeds with encryption; "CUI" footer and the Controlled by: [Organization]. POC: ... header appear; the internal account opens it (All Employees, Co-Author); the guest cannot decrypt[Name]
L-4In Test-CUI-SP-CTI (S-3), apply CUI//SP-CTI to a test document; share it externally via SharePointEncryption applies; "CUI//SP-CTI" footer and the header carrying CUI Category: CTI and the distribution statement appear; the external share is blocked by SharePoint - CUI//SP Label External Sharing (P6); alert to the security mailbox[Name]
L-5In Test-CUI-SP-EXPT (S-4), apply CUI//SP-EXPT to a test document as a member of sg-us-persons; save, then reopen as a second member of sg-us-personsEncryption applies; "CUI//SP-EXPT" footer and the header carrying CUI Category: EXPT and Export controlled: US persons only appear; the second member opens it with Co-Author rights[Name]
L-6Copy the L-5 file into Test-Unlabeled (S-5) and share it externally from there via SharePoint, so DLP and not the container setting is what blocks (a share from S-4 is refused by the site's container label before any DLP rule runs; X-2 covers that mechanism); then email the file as an attachment to an external addressSharePoint: SharePoint - CUI//SP Label External Sharing (P6) blocks access and offers no override. Exchange: the EXPT - Block, no override rule of Exchange - CUI//SP Label External Sharing (P4) blocks the send and the policy tip offers no override (a CUI//SP-CTI attachment sent the same way offers override with business justification). Alert to the security mailbox for both[Name]
L-7As an internal account that is outside sg-us-persons, did not apply the label (the Rights Management issuer keeps Full Control), and is not an Azure Rights Management super user, open the L-5 file from the libraryThe file stays listed with its label visible, but Office refuses the content (the not-signed-in-with-permission message on desktop, a generic error in Office for the web). Encryption produced the refusal, not DLP: no DLP alert fires[Name]
L-8Downgrade a CUI//SP-CTI document to PublicJustification prompt appears; downgrade is recorded in Activity Explorer and Unified Audit Log. A change between two CUI sublabels (for example CUI//SP-EXPT to CUI (Basic)) does not prompt: sublabels share their parent's priority for this setting[Name]

Layer 3: Container vs Content Boundary (2×2)​

Validates that container labels and content labels enforce independently. This is the highest-confusion area in Purview audits: each cell isolates one observable behavior.

#SiteFile LabelExpected ResultValidated By
B-1Test-CUI-Basic (S-2)CUI (Basic)Site blocks external sharing; file is encrypted; DLP matches on label condition[Name]
B-2Test-CUI-Basic (S-2)(unlabeled)Site blocks external sharing; file is not encrypted: confirms the container label does not auto-protect content. Mandatory labeling normally prevents this state in production; this cell demonstrates the gap if mandatory labeling is bypassed[Name]
B-3Test-Unlabeled (S-5)CUI (Basic)Site permits external sharing of the link; file remains encrypted: the external recipient is outside All Employees and cannot open the content even though the link is shareable. Confirms encryption travels with the file[Name]
B-4Test-Unlabeled (S-5)(unlabeled)No protection at any layer. Baseline / control case: the "shadow CUI" risk that mandatory labeling and auto-labeling are designed to eliminate[Name]

Layer 4: Cross-Tier Sanity​

Validates that file labels travel with the file, container labels apply to all content regardless of file label, and tier mismatches behave defensibly.

#TestExpected ResultValidated By
X-1Place a CUI//SP-CTI file in Test-Unlabeled (S-5)File encryption persists; a guest or external recipient cannot decrypt regardless of permissive site sharing settings (All Employees excludes guests)[Name]
X-2Place a Public file in Test-CUI-SP-CTI (S-3); attempt external shareSite-level container restrictions block the external share even though the file itself imposes no sharing restriction of its own[Name]
X-3Move a CUI (Basic) file from Test-CUI-Basic (S-2) to OneDrive personalFile label and encryption persist across the move; permission scope unchanged[Name]
X-4Place an Internal file in Test-CUI-Basic (S-2); attempt to share it with a new external recipientThe site's external-sharing restriction (existing guests only) blocks the new external share, even though the Internal file carries no sharing restriction of its own, confirming container controls apply to all content regardless of file label[Name]

Layer 5: Audit Visibility​

#TestExpected ResultValidated By
A-1Open Activity Explorer in Purview and confirm the Layer 1–4 test events (the V-, L-, B-, and X-series) are visibleAll test events appear with user, workload, label, and justification data[Name]

30-Day Post-Deployment Review​

Within 30 days of implementation:

  1. Review DLP Alerts dashboard for false-positive alert volume on credential policies across the test group.
  2. Review the SharePoint simulation logs for Priority 2 (Credential Alert) and Priority 12 (SSN Alert). If false-positive rates are acceptable, promote each to Enforced tenant-wide (SSN retains Alert-only action) and submit a minor change request.
  3. Promote the test-group-scoped policies (Exchange, OneDrive, Teams credential and label-sharing alerts; Exchange and OneDrive SSN alerts) from the test group to All users once friction metrics are acceptable.
  4. Categorize SSN false-positive sources (employee IDs, invoice IDs, part numbers, etc.) and decide whether to: (a) keep Alert-only, (b) author a custom SIT excluding known false-positive number formats, or (c) promote to Block once volume is manageable.
  5. Export Activity Explorer data to confirm label adoption rates are trending upward.
  6. Present findings to the CAB sponsor before the follow-up submission.

Rollback Plan​

Labels and DLP policies can be reversed without service interruption.

ScenarioRollback ProcedureEstimated Time
Label policy causes user disruption (help desk volume spike)Set mandatory labeling to Off in the label policy settings; this removes the forced prompt while leaving labels available5 minutes
DLP policy causes legitimate mail to be blockedSet the affected policy to Simulation mode or disable the specific rule; does not require deleting the policy5 minutes
Labels need to be removed entirelyUnpublish the label policy first; wait 24 hours for client propagation to clear; then delete labels. Labels cannot be deleted while active in a policy.24+ hours
Container label sync causes Groups configuration issueRevert EnableMIPLabels to False via the Entra directory settings PowerShell commands10 minutes
Label deletion is permanent

Sensitivity labels that have been applied to files cannot be removed by deleting the label definition: the label metadata persists in the file. Rollback of the label policy only affects new labeling behavior, not already-labeled content. Do not delete label definitions unless directed by Microsoft support.

Risk Register​

RiskLikelihoodImpactMitigation
Mandatory labeling generates help desk volume in the first weekHighLowPre-deployment communication with brief user guidance; set a 5-business-day support buffer
Credential DLP blocks a legitimate automated process (service account, pipeline)LowHighAudit Exchange transport rules and known automation accounts before deployment; add sender exclusions for identified service accounts
CUI//SP-EXPT encryption refuses a US person who is missing from sg-us-personsMediumMediumReconcile sg-us-persons against the HR or export-compliance record before deployment (Prerequisite 10); the Co-Author grant is to the group, so adding the user restores access on the user's next open attempt, once the Azure Rights Management group-membership cache refreshes (up to three hours), without relabeling; the 7-day offline window governs removal, not addition
Block access from unmanaged devices on CUI//SP-CTI and CUI//SP-EXPT sites locks out a legitimate user on a personal deviceMediumMediumCommunicate that CUI project sites require a managed device; confirm Prerequisite 9 and the Intune enrollment path for the affected users before go-live
External partner blocks due to Allowed Domains list being incompleteMediumMediumConfirm the approved partner domain list with the security team before deployment; test with a known partner tenant before go-live
Labels do not appear in Office clients within expected timeframeLowLowPolicy propagation can take up to 24 hours; inform users not to expect immediate availability; verify via test account
SSN policy generates false positives on non-SSN nine-digit numbers (employee IDs, part numbers, invoice IDs, etc.)MediumLowAlert-only action prevents user impact during baseline period; high-confidence-only SIT variant requires formatted pattern + keyword within 300 characters to mitigate; review 30-day baseline volume before deciding on enforcement

Communication Plan​

AudienceMessageTimingDelivered By
All Microsoft 365 usersNew sensitivity labels are being added to Office applications. You will be asked to select a label when saving documents or sending email. A brief guide is available at [link].5 business days before go-live[Name / Communication channel]
IT Help DeskSensitivity label training brief: expected user questions, where labels appear, how to reset a label, and escalation path for legitimate DLP blocks3 business days before go-live[Name]
Security / Compliance teamDLP incident report mailbox is live as of [date]. Review the alert dashboard at [Purview portal link] within 48 hours of go-live. Escalation path for enforcement disputes: [Name/ticketing queue].Day of go-live[Name]
CAB SponsorPost-implementation summary within 5 business days of go-live confirming validation results and help desk ticket volumeWithin 5 business days[Name]

Change Record​

FieldValue
Submitted by[Name]
Submission date[Date]
CAB review date[Date]
CAB decision[ ] Approved [ ] Approved with conditions [ ] Deferred [ ] Rejected
Conditions / Notes
Approved by[Name, title]
Implementation date (actual)
Closed by[Name]
Closure date

📩 Don't Miss the Next Solution

Join the list to see the real-time solutions I'm delivering to my GCC High clients.