Control 1.15: Encryption: Data in Transit and at Rest
Overview
Control ID: 1.15 Control Name: Encryption: Data in Transit and at Rest Pillar: Security Regulatory Reference: GLBA 501(b), SOX 404, FINRA 4511, SEC Rule 17a-4, PCI DSS 4.0 Setup Time: 1-2 hours
Purpose
Encryption is a foundational security control ensuring that all data processed by Copilot Studio agents is protected both when stored (at rest) and when transmitted (in transit). For financial services, encryption provides critical protection for customer financial information, trading data, and personally identifiable information (PII). This control covers Microsoft's default encryption, customer-managed keys (CMK), and hardware security module (HSM) integration for regulated environments.
This control addresses key FSI requirements:
- Data in Transit: TLS 1.2+ for all agent communications
- Data at Rest: AES-256 encryption for stored data
- Key Management: Customer-managed keys for sensitive data
- Regulatory Compliance: SEC 17a-4 WORM requirements with encryption
Prerequisites
Primary Owner Admin Role: Entra Security Admin Supporting Roles: SharePoint Admin
Required Licenses
| License | Purpose |
|---|---|
| Microsoft 365 E3/E5 | Service encryption (default) |
| Microsoft 365 E5 or E5 Compliance | Customer Key feature |
| Azure Key Vault Premium | HSM-backed key storage |
| Power Platform | Dataverse encryption at rest |
Required Permissions
| Permission | Scope | Purpose |
|---|---|---|
| Global Administrator | Initial setup | Configure Customer Key |
| Key Vault Administrator | Azure Key Vault | Create and manage encryption keys |
| Compliance Administrator | Microsoft Purview | Configure encryption policies |
| Exchange Administrator | Exchange Online | Configure service encryption |
| SharePoint Administrator | SharePoint Online | Configure site encryption |
Dependencies
- Control 1.5: DLP and Sensitivity Labels - Label-based encryption
- Control 1.16: IRM for Documents - Document encryption
- Control 2.1: Managed Environments - Environment encryption
Pre-Setup Checklist
- [ ] Verify TLS 1.2+ enforcement at network level
- [ ] Create Azure subscription for Key Vault
- [ ] Establish key management procedures
- [ ] Document encryption key rotation schedule
- [ ] Identify data requiring customer-managed keys
Governance Levels
Baseline (Level 1)
Ensure all agent data is encrypted in transit (TLS 1.2+) and at rest using Microsoft defaults.
Recommended (Level 2-3)
Double encryption for sensitive data; customer-managed keys (CMK) for Tier 2/3 (team/enterprise-managed).
Regulated/High-Risk (Level 4)
Mandatory CMK with hardware security module (HSM) backing; key rotation quarterly; audit trail.
Setup & Configuration
Step 1: Verify TLS 1.2+ Enforcement
Portal Path: Microsoft 365 Admin Center → Settings → Org settings → Security & privacy
- Navigate to Microsoft 365 Admin Center (admin.microsoft.com)
- Select Settings → Org settings
- Click Security & privacy tab
- Locate Modern authentication and verify enabled
- Verify TLS version requirements:
- All Microsoft 365 services require TLS 1.2 by default
- Legacy TLS 1.0/1.1 should be disabled
- Network-Level Verification:
- Check Azure Load Balancer/Application Gateway settings
- Verify firewall TLS inspection supports 1.2+
- Test with SSL Labs or similar tool
Step 2: Configure Service Encryption
Portal Path: Microsoft Purview → Information protection → Encryption
- Navigate to Microsoft Purview (compliance.microsoft.com)
- Select Information protection from left navigation
- Click Encryption tab
- Verify Default Encryption Status:
- Service encryption: Enabled (automatic)
- BitLocker for data centers: Enabled (automatic)
- Distributed Key Manager (DKM): Enabled
- Review encryption status for each workload:
- Exchange Online: Encrypted
- SharePoint Online: Encrypted
- OneDrive for Business: Encrypted
- Microsoft Teams: Encrypted
Step 3: Configure Customer Key for Microsoft 365
Portal Path: Microsoft Purview → Information protection → Customer Key
Note
Customer Key requires Microsoft 365 E5 or E5 Compliance license and involves Azure Key Vault setup.
- Create Azure Key Vaults (2 required for redundancy):
- Create Key Vault 1 in Region A (e.g., East US)
- Create Key Vault 2 in Region B (e.g., West US)
-
Both must use Premium SKU for HSM support
-
Configure Key Vault Access:
- Navigate to Azure Portal → Key Vaults → [Vault Name]
- Select Access configuration → ensure RBAC or Access Policies
-
Grant Microsoft 365 Data-At-Rest service access
-
Create Customer Keys:
- In each Key Vault, select Keys → Generate/Import
- Key type: RSA-HSM (for regulated environments)
- Key size: 2048 or 4096 bits
-
Set expiration per your rotation policy
-
Register Customer Key with Microsoft 365:
- Navigate to Microsoft Purview → Information protection → Customer Key
- Click + Create
- Provide Key Vault URIs and key names
-
Complete validation process
-
Create Data Encryption Policy (DEP):
- Click + Create DEP
- Assign to mailboxes and/or SharePoint sites
- Apply to Tier 2/3 agent data locations
Step 4: Configure Power Platform Encryption
Portal Path: Power Platform Admin Center → Environments → [Environment] → Settings → Encryption
- Navigate to Power Platform Admin Center (admin.powerplatform.microsoft.com)
- Select Environments → choose environment
- Click Settings → expand Product → select Encryption
- Customer Managed Key Configuration:
- Click Manage encryption key
- Select Customer-managed key
- Provide Azure Key Vault URI
- Select the encryption key
- Verify Encryption:
- Status should show "Encryption key managed by customer"
- Key vault name and key name displayed
- Configure for Each Environment:
- Repeat for all Tier 2/3 production environments
- Document key-to-environment mapping
Step 5: Configure SharePoint Encryption with Customer Key
Portal Path: SharePoint Admin Center → Settings → Encryption
- Navigate to SharePoint Admin Center (admin.sharepoint.com)
- Select Settings → Encryption
- Apply Customer Key DEP:
- Select sites containing agent knowledge sources
- Apply Data Encryption Policy created in Step 3
- OneDrive Encryption:
- Customer Key DEP applies to user OneDrive locations
- Verify agent-accessed OneDrive locations are covered
- Verify Encryption Status:
- Use PowerShell to check individual sites:
Get-SPOSite -Identity "https://tenant.sharepoint.com/sites/AgentKB" | Select-Object Url, SensitivityLabel, EncryptionStatus
Step 6: Configure Sensitivity Label Encryption
Portal Path: Microsoft Purview → Information protection → Labels
- Navigate to Microsoft Purview → Information protection
- Select Labels → choose label or create new
- Click Edit label → Encryption
- Configure Encryption Settings:
- Enable Apply encryption
- Choose Assign permissions now or Let users assign permissions
- For Agent-Accessed Content:
- Select Assign permissions now
- Add service accounts used by agents
- Grant View permission minimum
- Double Key Encryption (for highly sensitive):
- Enable Use Double Key Encryption
- Configure DKE endpoint
- Note: May limit some agent functionality
Step 7: Verify Dataverse Encryption
Portal Path: Power Platform Admin Center → Environments → [Environment] → Settings → Database
- Navigate to Power Platform Admin Center
- Select Environments → choose production environment
- Click Settings → Features
- Verify Encryption Settings:
- Dataverse uses Azure SQL encryption by default
- TDE (Transparent Data Encryption) is enabled
- For Customer-Managed Keys:
- CMK configured in Step 4 applies to Dataverse
- Verify key status is "Active"
Step 8: Configure Key Rotation Schedule
Create Key Rotation Process:
- Establish Rotation Schedule:
- Tier 1: Annual key rotation
- Tier 2: Semi-annual key rotation
-
Tier 3: Quarterly key rotation
-
Configure Automated Rotation (Azure):
Azure Key Vault → Keys → [Key] → Rotation policy → Enable Set rotation frequency per zone requirements Configure notification 30 days before expiration -
Document Rotation Procedures:
- Key creation process
- DEP update procedure
- Validation steps
- Rollback procedure
PowerShell Configuration
Verify Microsoft 365 Encryption Status
# Connect to Exchange Online
Connect-ExchangeOnline
# Check organization encryption configuration
Get-OrganizationConfig | Select-Object *Encryption*, *TLS*
# Verify Customer Key DEP status
Get-DataEncryptionPolicy | Format-Table Name, State, AzureKeyVaultConfig -AutoSize
# Check mailbox encryption
$testMailbox = "user@domain.com"
Get-MailboxStatistics $testMailbox | Select-Object DisplayName, ItemCount, TotalItemSize
# Verify TLS enforcement
Get-TransportConfig | Select-Object TLSReceiveDomainSecureList, TLSSendDomainSecureList
# Disconnect
Disconnect-ExchangeOnline -Confirm:$false
Configure Customer Key with PowerShell
# Install required modules
Install-Module -Name ExchangeOnlineManagement
Install-Module -Name Az.KeyVault
# Connect to services
Connect-ExchangeOnline
Connect-AzAccount
# Create Data Encryption Policy
$keyVault1 = "https://keyvault1.vault.azure.net/keys/M365CustomerKey/version1"
$keyVault2 = "https://keyvault2.vault.azure.net/keys/M365CustomerKey/version2"
New-DataEncryptionPolicy -Name "FSI-AgentData-DEP" `
-AzureKeyIDs @($keyVault1, $keyVault2) `
-Description "Customer Key DEP for agent data"
# Verify DEP creation
Get-DataEncryptionPolicy "FSI-AgentData-DEP"
# Apply DEP to mailboxes (for agent conversation storage)
$agentMailbox = "copilot-agents@domain.com"
Set-Mailbox -Identity $agentMailbox -DataEncryptionPolicy "FSI-AgentData-DEP"
# Verify application
Get-Mailbox $agentMailbox | Select-Object DataEncryptionPolicy
Verify SharePoint Encryption
# Connect to SharePoint Online
Connect-SPOService -Url "https://yourtenant-admin.sharepoint.com"
# Get all sites with agent access
$agentSites = @(
"https://yourtenant.sharepoint.com/sites/AgentKnowledgeBase",
"https://yourtenant.sharepoint.com/sites/CustomerData",
"https://yourtenant.sharepoint.com/sites/TradingDocuments"
)
# Check encryption status for each site
foreach ($site in $agentSites) {
$siteInfo = Get-SPOSite -Identity $site
Write-Host "Site: $site" -ForegroundColor Cyan
Write-Host " Sensitivity Label: $($siteInfo.SensitivityLabel)"
Write-Host " Conditional Access Policy: $($siteInfo.ConditionalAccessPolicy)"
}
# Apply Customer Key to specific site
Set-SPOSite -Identity "https://yourtenant.sharepoint.com/sites/AgentKnowledgeBase" `
-DataEncryptionPolicy "FSI-AgentData-DEP"
Key Vault Health Check
# Connect to Azure
Connect-AzAccount
# Get Key Vault information
$vaultName = "FSI-M365-KeyVault"
$vault = Get-AzKeyVault -VaultName $vaultName
Write-Host "=== Key Vault Status ===" -ForegroundColor Cyan
Write-Host "Name: $($vault.VaultName)"
Write-Host "SKU: $($vault.Sku)"
Write-Host "Soft Delete: $($vault.EnableSoftDelete)"
Write-Host "Purge Protection: $($vault.EnablePurgeProtection)"
# List encryption keys
$keys = Get-AzKeyVaultKey -VaultName $vaultName
Write-Host "`n=== Encryption Keys ===" -ForegroundColor Cyan
foreach ($key in $keys) {
$keyDetails = Get-AzKeyVaultKey -VaultName $vaultName -Name $key.Name
Write-Host "Key: $($key.Name)"
Write-Host " Type: $($keyDetails.KeyType)"
Write-Host " Size: $($keyDetails.KeySize)"
Write-Host " Created: $($keyDetails.Created)"
Write-Host " Expires: $($keyDetails.Expires)"
Write-Host " Enabled: $($keyDetails.Enabled)"
# Check if rotation needed
if ($keyDetails.Expires -and $keyDetails.Expires -lt (Get-Date).AddDays(30)) {
Write-Host " WARNING: Key expires within 30 days!" -ForegroundColor Red
}
}
Financial Sector Considerations
Regulatory Alignment
| Regulation | Requirement | Encryption Implementation |
|---|---|---|
| GLBA 501(b) | Safeguard customer NPI | TLS 1.2+ in transit, AES-256 at rest |
| SOX 404 | Internal controls for financial data | CMK for financial record storage |
| FINRA 4511 | Books and records protection | Encrypted storage with audit trail |
| SEC 17a-4 | Non-rewritable, non-erasable | WORM storage with encryption |
| PCI DSS 4.0 | Protect cardholder data | Strong cryptography for transmission |
| FFIEC Guidelines | Encryption for sensitive data | Multi-layer encryption approach |
Zone-Specific Configuration
| Configuration | Zone 1 (Personal Productivity) | Zone 2 (Team Collaboration) | Zone 3 (Enterprise Managed) |
|---|---|---|---|
| Encryption at Rest | Microsoft-managed | Customer-managed key | CMK with HSM |
| Encryption in Transit | TLS 1.2 | TLS 1.2+ MTLS optional | TLS 1.3 + MTLS required |
| Key Storage | Microsoft managed | Azure Key Vault Standard | Azure Key Vault Premium (HSM) |
| Key Rotation | Microsoft managed | Annual | Quarterly |
| Double Encryption | Not required | Optional | Required for MNPI |
| Key Recovery | N/A | Documented procedure | Tested annually |
FSI Use Case Example
Scenario: Trading Floor Agent with Customer Key
Requirements:
- Agent accesses MNPI (Material Non-Public Information)
- SEC 17a-4 compliance required
- Quarterly key rotation mandated
Implementation:
- Azure Key Vault Premium with HSM backing
- Customer Key DEP applied to:
- Agent Dataverse environment
- SharePoint knowledge base sites
- User mailboxes storing agent conversations
- Key Rotation:
- Quarterly rotation schedule configured
- 30-day advance notification
- Documented rotation procedure
- Audit Trail:
- Key Vault diagnostic logs to SIEM
- Access logged for all key operations
Regulatory Benefit:
- Customer-controlled encryption meets GLBA requirements
- Key rotation documentation satisfies examiner inquiries
- HSM backing meets SOX 404 internal control requirements
Verification & Testing
Verification Steps
- TLS Verification:
- [ ] Test endpoint with SSL Labs (ssllabs.com)
- [ ] Verify TLS 1.2+ for all agent communications
- [ ] Confirm legacy TLS disabled
-
[ ] Check certificate validity
-
At-Rest Encryption:
- [ ] Verify Dataverse encryption status
- [ ] Check SharePoint site encryption
- [ ] Confirm Exchange mailbox encryption
-
[ ] Validate CMK DEP assignment
-
Key Management:
- [ ] Verify Key Vault accessibility
- [ ] Check key expiration dates
- [ ] Test key rotation procedure
-
[ ] Validate backup/recovery process
-
Audit Trail:
- [ ] Key Vault logs flowing to SIEM
- [ ] Encryption events captured in audit
- [ ] Access attempts logged
- [ ] Rotation events documented
Compliance Checklist
- [ ] TLS 1.2+ enforced for all agent communications
- [ ] Customer-managed keys configured for Tier 2/3
- [ ] Key rotation schedule documented
- [ ] HSM backing for Tier 3 keys
- [ ] Encryption audit logs retained per policy
- [ ] Annual key management review completed
Troubleshooting & Validation
Issue 1: Customer Key DEP Creation Fails
Symptoms: Error creating Data Encryption Policy
Resolution:
- Verify Key Vault access permissions
- Check that both Key Vaults are in different regions
- Ensure keys are RSA-HSM type for Premium SKU
- Validate Microsoft 365 service registration
- Check Azure subscription isn't suspended
Issue 2: Agent Cannot Access CMK-Protected Content
Symptoms: Agent errors accessing SharePoint or Dataverse
Resolution:
- Verify agent service account permissions
- Check Key Vault availability
- Validate DEP is active (not revoked)
- Review agent connection permissions
- Check for key rotation in progress
Issue 3: Key Vault Unavailable
Symptoms: Services degraded, encryption operations failing
Resolution:
- Check Azure Key Vault service health
- Verify network connectivity to Key Vault
- Review access policies for changes
- Check for soft-delete or purge actions
- Initiate failover to secondary Key Vault
Issue 4: Key Rotation Disrupts Service
Symptoms: Service errors after key rotation
Resolution:
- Allow time for key propagation (up to 24 hours)
- Verify new key is properly associated
- Check DEP update completed successfully
- Roll back if critical services affected
- Schedule rotation during maintenance window
Additional Resources
- Service encryption overview
- Customer Key for Microsoft 365
- Power Platform encryption
- Azure Key Vault overview
- Double Key Encryption
- SharePoint encryption
Related Controls
| Control ID | Control Name | Relationship |
|---|---|---|
| 1.5 | DLP and Sensitivity Labels | Label-based encryption |
| 1.16 | IRM for Documents | Document-level protection |
| 1.7 | Audit Logging | Encryption audit events |
| 2.1 | Managed Environments | Environment encryption |
| 4.3 | Retention Management | Encrypted retention |
Support & Questions
For implementation support or questions about this control, contact:
- AI Governance Lead (governance direction)
- Compliance Officer (regulatory requirements)
- Technical Implementation Team (platform setup)
Updated: Dec 2025
Version: v1.0 Beta (Dec 2025)
UI Verification Status: ❌ Needs verification