Encryption & Key Management
β±οΈ Reading Time: 25-30 min π― Key Topics: Key Vault, HSM, BYOK, key rotation, GDPR/FedRAMP π Prerequisites: Security Compliance Basics
Overview
View Diagram: Encryption Key Hierarchy
Figure 1: Azure Key Vault key hierarchy and management architecture
Encryption is the foundation of data protection in Microsoft Sovereign Cloud deployments. This page covers encryption algorithms, key lifecycle management, Azure Key Vault architecture, disaster recovery, and compliance evidence collection for regulatory requirements like GDPR and FedRAMP.
Encryption Fundamentals
Encryption Concepts
ENCRYPTION BASICS
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
WHAT IS ENCRYPTION?
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Mathematical transformation of plaintext (readable) into
ciphertext (unreadable) using a cryptographic key.
PLAINTEXT + KEY + ALGORITHM β CIPHERTEXT
(readable) (secret) (math) (encrypted)
Example:
Original message: "Password: secret123"
Encrypted message: "7e8f9a1b2c3d4e5f6a7b8c9d0e1f2a3b"
(Only someone with the KEY can decrypt back to original)
WHY ENCRYPTION MATTERS
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Confidentiality: Even if stolen, data is unreadable
β Compliance: Required by GDPR, FedRAMP, HIPAA, PCI-DSS
β Trust: Customers trust data is protected
β Governance: Regulatory requirement for data residency
β Incident response: Reduces harm if breach occurs
WHEN ENCRYPTION IS NEEDED
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Encrypt in Transit:
ββ When data moves across network (within data center)
ββ When data moves across internet (to on-premises)
ββ When data moves between data centers (replication)
ββ When data accessed by client (web/API)
Encrypt at Rest:
ββ When data sits in storage (database, blob)
ββ When data sits in backup (long-term retention)
ββ When data sits on disk (VM storage)
ββ When data sits in cache (Redis, Cosmos DB)
Encrypt in Use:
ββ When data is being processed (memory, CPU)
ββ Using confidential computing (Intel SGX, AMD SEV-SNP)
ββ For highly sensitive workloads (healthcare, finance)
ββ Advanced capability (additional cost)
TYPES OF ENCRYPTION
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Symmetric Encryption (Same key for encryption & decryption):
ββ Algorithm: AES (Advanced Encryption Standard)
ββ Key size: 128, 192, or 256 bits
ββ Speed: Fast (high throughput)
ββ Use case: File, database, volume encryption
ββ Example: "A" encrypts with key K β "B" decrypts with same K
ββ Azure service: AES-256 (default standard)
Asymmetric Encryption (Public key + Private key):
ββ Algorithm: RSA, Elliptic Curve (EC)
ββ Key size: 2048, 3072, 4096 bits (RSA) or 256/384 bits (EC)
ββ Speed: Slower (CPU intensive)
ββ Use case: Key exchange, digital signatures, certificates
ββ Example: "A" encrypts with B's public key β only B with private key can decrypt
ββ Azure service: Certificate management, TLS handshake
Hashing (One-way transformation, not decryptable):
ββ Algorithm: SHA-256, SHA-512, MD5 (deprecated)
ββ Output: Fixed-length hash (256 or 512 bits)
ββ Speed: Very fast
ββ Use case: Password storage, data integrity verification
ββ Example: Password stored as hash, cannot decrypt to original
ββ Azure service: Key Vault secrets, password hashing
Encryption Standards & Algorithms
AZURE ENCRYPTION STANDARDS
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
ENCRYPTION AT REST (Data Stored)
βββββββββββββββββββββββββββββββββ
Standard: AES-256 (Advanced Encryption Standard, 256-bit key)
Why AES-256?
ββ NIST approved (FIPS 197)
ββ Military-grade (NSA Suite B approved)
ββ Unbreakable (2^256 possible keys = brute force infeasible)
ββ Industry standard (used by all major cloud providers)
ββ Compliance: Required by GDPR, FedRAMP, HIPAA, DoD
ββ Performance: Efficient enough for all storage types
Key Derivation:
ββ Master Key (Microsoft-managed or customer-managed)
ββ Data Encryption Key (per-resource)
ββ Authentication Tag (verify data not tampered with)
ββ Nonce/IV (Initialization Vector, prevents pattern repetition)
Azure Storage at-rest encryption:
βββββββββββββββββββββββββββββββββββββββββββ
β Plaintext data file β
β (123 MB patient medical records) β
β β β
β [AES-256 Encryption Engine] β
β ββ Algorithm: Rijndael (AES) β
β ββ Key: 256-bit key from Key Vault β
β ββ Mode: CBC or GCM (authenticated) β
β ββ IV: Random per encryption β
β β β
β Encrypted ciphertext β
β (123 MB of random-looking bytes) β
βββββββββββββββββββββββββββββββββββββββββββ
ENCRYPTION IN TRANSIT (Data Moving)
βββββββββββββββββββββββββββββββββββββ
Standard: TLS 1.3 (Transport Layer Security, latest)
Why TLS 1.3?
ββ IETF approved (RFC 8446)
ββ Faster: 1-RTT handshake (TLS 1.2 was 2-RTT)
ββ More secure: Removed weak algorithms
ββ Perfect forward secrecy: Session key not compromised even if private key stolen
ββ Compliance: Required by modern regulations
ββ Performance: Lower latency, reduced CPU usage
TLS Handshake (simplified):
Step 1: Client sends "Hello" with supported ciphers
Step 2: Server responds with certificate + selected cipher
Step 3: Asymmetric key exchange (RSA or ECDHE)
Step 4: Symmetric session key established
Step 5: Encrypted communication begins
Total: ~100-200ms for handshake
Available Cipher Suites:
ββ ECDHE_RSA_AES_256_GCM_SHA384 (preferred)
ββ ECDHE_RSA_AES_128_GCM_SHA256
ββ DHE_RSA_AES_256_GCM_SHA384
ββ (Weak ciphers disabled for security)
Certificate Requirements:
ββ Valid from trusted CA (Certificate Authority)
ββ Not expired (Azure auto-renews)
ββ Domain matches (CN or SAN)
ββ RSA 2048+ or ECDSA 256+
ββ Signature algorithm: SHA-256 or stronger
Azure Service Examples:
ββ HTTPS (API calls): TLS 1.3 mandatory
ββ Database connections: TLS 1.2+ mandatory
ββ Replication: Internal TLS 1.3 for inter-data center
ββ Backups: Encrypted in transit to recovery vault
ββ ExpressRoute: Encrypted private circuits (not public internet)
AZURE KEY VAULT ENCRYPTION
ββββββββββββββββββββββββββ
Key Vault stores cryptographic material:
ββ Keys (2048/3072/4096-bit RSA or 256/384-bit EC)
ββ Secrets (passwords, connection strings)
ββ Certificates (X.509 public key certificates)
ββ Storage account keys (for customer-managed encryption)
Master key protection:
ββ At rest: HSM (Hardware Security Module) encrypted
ββ In transit: TLS 1.3 encrypted
ββ Access: RBAC + network policies
ββ Audit: Every access logged
ββ Compliance: FIPS 140-2 Level 3 (or higher)
Azure Key Vault Architecture
Key Vault Design Patterns
AZURE KEY VAULT ARCHITECTURE
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
WHAT IS AZURE KEY VAULT?
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Purpose: Centralized cryptographic key management
ββ Store keys securely (not in code/config files)
ββ Manage key lifecycle (creation, rotation, deletion)
ββ Control access (who can use keys)
ββ Audit usage (track all key operations)
ββ Enable disaster recovery (backup & geo-replication)
ββ Comply with regulations (FIPS 140-2, audit trails)
SERVICE TIER COMPARISON
βββββββββββββββββββββββ
Standard Tier:
ββ Cost: ~$0.03 per 10K operations
ββ Protection: Software-backed (encrypted keys)
ββ Performance: Standard (suitable for most workloads)
ββ Compliance: FIPS 140-2 Level 1
ββ Use case: Non-sensitive applications, development
ββ Example: Configuration encryption, non-critical data
Premium Tier (with HSM):
ββ Cost: ~$1.50/hour + operations
ββ Protection: HSM-backed (physical hardware security)
ββ Performance: High (dedicated HSM)
ββ Compliance: FIPS 140-2 Level 3
ββ Use case: Sensitive data, regulated workloads
ββ Example: Healthcare, financial, government
HSM (Hardware Security Module):
ββ Physical device: Tamper-resistant, armed secure processor
ββ Keys never leave: HSM-specific, even Microsoft can't access
ββ Certification: NSA approved for classified data
ββ Compliance: Meets FedRAMP, HIPAA, PCI-DSS requirements
ββ Cost: Higher (~$1.50/hour) but justified for compliance
SINGLE VAULT ARCHITECTURE
ββββββββββββββββββββββββββ
Simple deployment (single region):
βββββββββββββββββββββββββββββββββββββββ
β Azure Key Vault (West Europe) β
β β
β Contents: β
β ββ Master key (AES-256) β
β ββ Database password β
β ββ API certificate β
β ββ Customer-managed keys β
β ββ Service account credentials β
β β
β Access Control: β
β ββ Azure AD authentication β
β ββ RBAC roles assigned β
β ββ Network: Private endpoint β
β ββ Audit: All access logged β
βββββββββββββββββββββββββββββββββββββββ
Used by:
ββ Web application (retrieves DB password at startup)
ββ VM extension (retrieves certificate at deployment)
ββ Data factory (retrieves credentials for data sync)
ββ Managed identity (no credentials stored, just Key Vault access)
GEO-REPLICATED VAULT ARCHITECTURE (High Availability)
ββββββββββββββββββββββββββββββββββββββ
Multi-region deployment:
Primary Vault Secondary Vault
(West Europe) (North Europe)
βββββββββββββββββββ βββββββββββββββββββ
β Azure Key Vault βββββββββββββββ Azure Key Vault β
β β Replication β β
β Master key β (automatic) β Master key β
β Database pwd β β Database pwd β
β Certificates β (read-only) β Certificates β
β β β β
β Read/Write β β Read-only* β
βββββββββββββββββββ βββββββββββββββββββ
β β
ββββββββββββββββββββββββββββββββ
Automatic failover if
primary region down
* Secondary vault becomes read-write during failover
Failover Scenario:
ββ Primary region power outage
ββ Automatic: DNS points to secondary
ββ Promotion: Secondary becomes read-write
ββ Applications: Automatically retry and connect to secondary
ββ Data loss: Zero (real-time sync)
ββ Recovery: 5-10 minutes typical
MANAGED IDENTITY INTEGRATION
ββββββββββββββββββββββββββββ
Scenario: Application needs to access database
Traditional approach (problematic):
ββ Store DB password in config file
ββ Problem: Password in plaintext
ββ Problem: Rotation requires code deployment
ββ Problem: Audit trail weak
ββ Risk: High
Better approach (managed identity + Key Vault):
Application
β
ββ Request: "I'm web-app-prod"
β (no password required)
β
β
Azure AD
β
ββ Verify: "Yes, you are web-app-prod"
β (issued when VM created)
β
β
Key Vault
β
ββ Check RBAC: Can web-app-prod access database secret?
β (Yes, assigned role allows it)
β
ββ Return: Database password/connection string
β (temporary token, expires in 1 hour)
β
β
Application
β
ββ Connect to database with credentials
ββ Audit: Logged who accessed secret and when
Benefits:
ββ No passwords in code/config
ββ Automatic rotation (Key Vault handles it)
ββ Zero downtime rotation (app retries if secret version changed)
ββ Full audit trail (every access logged)
ββ Fine-grained access (RBAC controls)
ββ Multi-cloud compatible (same pattern on AWS/GCP)
Key Rotation Policy
KEY ROTATION LIFECYCLE
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
WHY ROTATE KEYS?
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Risk mitigation:
ββ Compromised key: Limiting exposure window
ββ Employee departure: Revoke old key version
ββ Compliance requirement: Regulations mandate rotation
ββ Cryptanalysis: Old keys more likely to be broken
ββ Best practice: Industry standard (every 90-365 days)
ROTATION POLICY SETUP
βββββββββββββββββββββ
Step 1: Define Rotation Schedule
ββ Frequency: Every 90 days (quarterly)
β Alternative: Every 30 days (highest security)
β Alternative: Every 365 days (minimum compliance)
β
ββ Timing: During maintenance window
β ββ Example: 2 AM UTC Saturday (low traffic)
β ββ Reason: Minimize impact on production
β ββ Window: 4-hour window for rotation
β
ββ Notification: 7 days before rotation
ββ Alert: Team reviews, approves rotation
Step 2: Automatic Rotation Configuration
Azure Key Vault Automated Rotation:
ββ Create: New key version automatically
ββ Update: Applications switch to new version
ββ Delete: Old key version (after grace period, default 30 days)
ββ Audit: Track all versions and rotations
ββ Verification: Test new key immediately
Configuration Example:
policy { rotation_enabled: true rotation_interval: 90 days notification_before_rotation: 7 days auto_rotate: true keep_old_versions: true // for recovery }
Step 3: Version Management
Key versions:
ββ Version 1: Created Jan 1, 2025
β ββ Active: Jan 1 - Mar 31
β ββ Retired: Apr 1 (new version created)
β ββ Retained: 30 days (recovery)
β ββ Deleted: May 1
β
ββ Version 2: Created Apr 1, 2025
β ββ Active: Apr 1 - Jun 30
β ββ Retired: Jul 1
β ββ Status: Current version
β
ββ Version 3: Created Jul 1, 2025
ββ Active: Jul 1 - Sep 30
ββ Status: Latest version
Application handles versions transparently:
ββ Reference: Key by name, not version
ββ Latest: Always retrieves current version
ββ Fallback: Can request specific version (for recovery)
ββ No code change: Required for rotation
ZERO-DOWNTIME ROTATION PROCESS
βββββββββββββββββββββββββββββββ
Scenario: Rotating database encryption key
Time 0 (Before rotation):
Database encrypted with Key Version 1
ββ Ciphertext: AES-256 with Key V1
ββ All queries: Read existing encrypted data
ββ All writes: Encrypt with Key V1
Time -7 days (Notification):
ββ Alert sent: "Key rotation in 7 days"
ββ Team reviews: "Is rotation safe? Any active backups?"
ββ Approval: "Approved" (or request delay)
Time 0 (Rotation starts):
Step 1: Generate new key
ββ Key Vault: Creates Key V2 (automatically)
Step 2: Configure dual-key decryption
ββ Database: Configure to try V2 first, fall back to V1
Step 3: Re-encrypt existing data (background job)
ββ Job: Scan all encrypted rows
ββ Decrypt: Using Key V1
ββ Re-encrypt: Using Key V2
ββ Update: Database with new ciphertext
ββ Progress: 10,000 rows/second (depending on data volume)
ββ Monitoring: Dashboard shows progress
ββ Duration: For 1TB database, ~24-30 hours
Step 4: Monitor applications
ββ Metrics: Error rates, latency
ββ Alerts: If anything abnormal
ββ Rollback plan: Ready if needed (rare)
ββ Status: Continue with old key if issues
Step 5: Mark old key as retired
ββ Timing: After re-encryption complete
ββ Status: Old key: "Retired" (but kept)
ββ Reason: Can decrypt old versions for compliance
ββ Duration: Keep for 30 days minimum
Time +30 days (Safe deletion):
ββ Old key: Permanently deleted (after grace period)
COMPLIANCE EVIDENCE
ββββββββββββββββββ
For FedRAMP/GDPR auditor:
Audit Report:
ββββββββββββββββββββββββββββββββββββββ
β Key Rotation Report: Oct-Dec 2025 β
β β
β Master Encryption Key (DB): β
β ββ Last Rotation: Sep 30, 2025 β
β ββ Next Rotation: Dec 31, 2025 β
β ββ Age: 91 days (within policy) β
β ββ Compliance: β PASS β
β ββ Version count: 3 versions β
β β
β API Certificate Key: β
β ββ Last Rotation: Aug 15, 2025 β
β ββ Next Rotation: Nov 15, 2025 β
β ββ Age: 77 days (within policy) β
β ββ Compliance: β PASS β
β ββ Duration: 90 days per policy β
β β
β Key Vault Access Log: β
β ββ Total accesses: 1,247 (month) β
β ββ Authorized accesses: 1,247 β
β ββ Denied accesses: 0 β
β ββ Anomalous patterns: None β
β ββ Status: β PASS (secure) β
β β
β COMPLIANCE STATUS: β PASS β
ββββββββββββββββββββββββββββββββββββββ
Disaster Recovery & Backup
Backup & Recovery Strategy
KEY VAULT BACKUP & DISASTER RECOVERY
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
BACKUP REQUIREMENTS
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Compliance mandates:
ββ GDPR: Backup required for data recovery
ββ FedRAMP: Daily backup required
ββ HIPAA: Business continuity plan required
ββ PCI-DSS: Recovery capability documented
ββ Industry best practice: RPO < 24 hours
Backup types:
Full Backup (All keys, secrets, certificates):
ββ Frequency: Daily
ββ Scope: All content in Key Vault
ββ Storage: Separate geographic region
ββ Encryption: Encrypted backup (can't be read)
ββ Duration: Retained 30 days minimum
Differential Backup (Changes since last full):
ββ Frequency: Every 6 hours
ββ Scope: Only new/modified items
ββ Size: Smaller than full backup
ββ Cumulative: Requires last full backup for restore
ββ Use case: Faster recovery, more frequent restores
BACKUP ARCHITECTURE
βββββββββββββββββββ
Primary Key Vault Backup Storage
(West Europe) (North Europe)
ββββββββββββββββββββ ββββββββββββββββ
β Key Vault βββDailyββββ Backup Vault β
β ββ Master key β Encryptedββ Copy of all β
β ββ DB password β backup β keys β
β ββ Certificates β β β
β ββ Credentials β β β
ββββββββββββββββββββ ββββββββββββββββ
β
ββ Stored: Encrypted
β at rest (AES-256)
β
ββ Access: Restricted
β (need RBAC permission)
β
ββ Retention: 30 days
(rolling window)
Recovery Scenario (Primary Key Vault destroyed):
ββ Detection: Health check fails, no response
ββ Notification: Team alerted automatically
ββ Decision: Activate DR (seconds after detection)
ββ Restore: Backup vault activated as primary
ββ Verification: Test restore (manual approval)
ββ Duration: < 5 minutes typical (near-zero downtime)
BACKUP ENCRYPTION
ββββββββββββββββββ
Backup file security:
ββ Encryption: AES-256 (same as production keys)
ββ Storage: Azure Storage with encryption enabled
ββ Access: Requires separate RBAC permission
ββ Audit: Every backup access logged
ββ Network: Private endpoint (not internet-accessible)
ββ Compliance: Meets all regulatory requirements
Key protection during backup:
ββ Master key: Protected by HSM (if Premium tier)
ββ Encryption: Never stored in plaintext
ββ Integrity: Authentication tag prevents tampering
ββ Verification: Backup tested monthly for restore capability
ββ Documentation: Chain of custody maintained
RECOVERY TESTING
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Quarterly Recovery Drill:
Step 1: Prepare (Week before)
ββ Schedule: Off-peak hours (Saturday 2 AM)
ββ Team: On-call, ready to respond
ββ Infrastructure: Test environment available
ββ Notification: Stakeholders informed
Step 2: Execute (Day of drill)
ββ Simulate: Primary Key Vault becomes unavailable
ββ Trigger: Automated failover to backup
ββ Restore: Keys/secrets to test environment
ββ Verification: All keys restored correctly
ββ Applications: Test with restored keys
Step 3: Validate (During recovery)
ββ Connectivity: Network routes working
ββ Authentication: Azure AD working
ββ Decryption: Can decrypt old ciphertext
ββ Performance: Latency acceptable
ββ Completeness: All secrets present
ββ Audit: Logs show recovery actions
Step 4: Document (After recovery)
ββ Report: What worked, what needs improvement
ββ Timeline: How long recovery took
ββ Issues: Any problems encountered
ββ Fixes: What to improve
ββ Status: β Recovery capability verified
COMPLIANCE EVIDENCE
ββββββββββββββββββ
Backup Compliance Report:
ββββββββββββββββββββββββββββββββββββββ
β Q4 2025 Key Vault Backup Report β
β β
β Backup Schedule: β
β ββ Full Backup: Daily (23:00 UTC) β
β ββ Differential: Every 6 hours β
β ββ Retention: 30 days β
β ββ Compliance: β FedRAMP (daily) β
β β
β Backups Completed This Quarter: β
β ββ Successful: 92 backups β
β ββ Failed: 0 β
β ββ Success rate: 100% β
β ββ Average size: 45 MB β
β β
β Recovery Drills: β
β ββ Q3 2025: Successful β
β ββ Recovery time: 3 min 42 sec β
β ββ Data integrity: β Verified β
β ββ Status: β PASS β
β β
β COMPLIANCE STATUS: β PASS β
ββββββββββββββββββββββββββββββββββββββ
Compliance Evidence Collection
Audit Trail & Logging
KEY VAULT AUDIT & COMPLIANCE LOGGING
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
AUDIT LOGGING REQUIREMENTS
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
GDPR requirements:
ββ Who: Track identity of person accessing key
ββ What: Track which key/secret accessed
ββ When: Timestamp of access
ββ Why: Purpose/reason for access (from code)
ββ Result: Success/failure of operation
ββ Duration: Retain logs for minimum 3 years
FedRAMP requirements:
ββ All access logged (including failures)
ββ Tamper-proof logs (encrypted, signed)
ββ Real-time alerting (suspicious patterns)
ββ Compliance dashboard (monthly reports)
ββ Audit trail: Comprehensive reconstruction
AUDIT LOG ENTRIES
ββββββββββββββββββ
Every Key Vault operation generates log entry:
[2025-10-21 14:30:45 UTC] Operation: GetSecret Resource: database-password (version 3) Caller: web-app-prod (managed identity) Result: Success IP Address: 10.0.1.45 (internal) Duration: 147 ms Audit Status: Logged + Encrypted Risk Score: Low (authorized, normal time) Compliance: β Logged (GDPR/FedRAMP compliant)
Log fields:
ββ Timestamp: Exact time of operation (UTC)
ββ Operation: GetSecret, CreateKey, DeleteSecret, etc.
ββ Resource: Key/secret name and version
ββ Caller: User, managed identity, or service
ββ Result: Success, Forbidden, NotFound
ββ IP address: Source network (internal/external)
ββ Duration: How long operation took
ββ Response code: HTTP status (200, 403, 404)
ββ User-Agent: Application requesting key
ββ Request correlation: Trace across systems
ββ Encryption: Log entry encrypted at rest
AZURE MONITOR INTEGRATION
ββββββββββββββββββββββββββ
Key Vault logs β Azure Monitor:
ββββββββββββββββββββββββββββ
β Key Vault β
β (generates access logs) β
ββββββββββββββ¬βββββββββββββ
β
βββ Azure Storage
β (log archive)
β
βββ Log Analytics
β (queryable logs)
β
βββ Event Hubs
(real-time stream)
Querying logs (KQL - Kusto Query Language):
// Find all access to database password
KeyVaultAuditLogs
| where ResourceName == "database-password"
| where TimeGenerated > ago(30d)
| summarize AccessCount = count() by Caller
| sort by AccessCount desc
Result:
Caller AccessCount
ββββββββββββββββββββββββββββββββββββ
web-app-prod 1,247
batch-processor-job 145
manual-admin-access 3
ββββββββββββββββββββββββββββββββββββ
// Find failed access attempts
KeyVaultAuditLogs
| where OperationStatus == "Failed"
| where TimeGenerated > ago(7d)
| summarize FailureCount = count() by Caller, ErrorCode
Result:
Caller ErrorCode FailureCount
ββββββββββββββββββββββββββββββββββββββββββββββββββ
unknown-app Unauthorized 3
decommissioned-vm NotFound 5
ββββββββββββββββββββββββββββββββββββββββββββββββββ
ALERTS & DETECTION
ββββββββββββββββββ
Suspicious pattern detection:
Alert 1: Failed authentication attempts
ββ Trigger: > 5 failed attempts in 5 minutes
ββ Action: Automatically block source IP
ββ Notification: Security team + audit log
ββ Investigation: Why is this trying to access?
Alert 2: After-hours access (unusual time)
ββ Trigger: Key access outside normal business hours
ββ Context: Normal patterns learned (Mon-Fri 8am-6pm)
ββ Action: Alert but allow (may be on-call)
ββ Investigation: Confirm authorized access
Alert 3: Access from new location
ββ Trigger: Access from IP never seen before
ββ Example: Developer accessing from airport (unusual)
ββ Action: MFA challenge + notification
ββ Investigation: Confirm identity
Alert 4: Bulk key access
ββ Trigger: Accessing > 10 different keys in 1 minute
ββ Example: Potential key theft/exfiltration attempt
ββ Action: Block immediately + incident response
ββ Investigation: Forensics + potential breach
COMPLIANCE EVIDENCE TEMPLATES
βββββββββββββββββββββββββββββ
For GDPR Auditor (Right to Access):
Question: "Show me all access to personal data keys"
Response Document:
Key Vault Audit Report: Personal Data Keys Request Period: Oct 1 - Oct 31, 2025 Generated: Oct 31, 2025
KEYS IN SCOPE: ββ customer-pii-encryption-key ββ patient-medical-records-key ββ employee-salary-data-key
ACCESS SUMMARY: Total accesses: 847 Authorized: 847 β Unauthorized: 0 Anomalies: 0
ACCESS DETAILS (by day): Oct 1: 32 accesses (app-prod: 28, manual: 4) β Oct 2: 34 accesses (app-prod: 31, manual: 3) β β¦ Oct 31: 28 accesses (app-prod: 25, manual: 3) β
ALL ACCESSES AUTHORIZED AND LOGGED Evidence Quality: HIGH (encrypted logs, signatures verified) Compliance: β GDPR COMPLIANT
For FedRAMP Auditor (Continuous Monitoring):
Question: "Demonstrate encryption key management compliance"
Response Document:
FedRAMP Monthly Compliance Report: Encryption Month: October 2025
CONTROL: CM-3 (Key Lifecycle Management)
Status: β COMPLIANT
Evidence:
- Key rotation policy documented
- Rotation frequency: 90 days
- Last rotation: August 31, 2025 (60 days ago, within policy)
- Next rotation: November 30, 2025 (within 30-day window)
- Key backup verified
- Last backup: October 20, 2025 (successful)
- Backup verified: October 20, 2025 (restore test passed)
- Retention: 30 days (compliant with recovery requirements)
- Access audit logs
- Audit entries: 847 in October (all authorized)
- Failed access attempts: 0
- Unusual patterns: 0
- Log retention: 3 years (exceeds 1-year requirement)
- Disaster recovery
- Last DR test: September 15, 2025 (passed)
- Recovery time objective: 5 minutes (met)
- Recovery point objective: Daily (met)
COMPLIANCE: β PASS (All requirements met)
Related Topics
- Main Page: Compliance & Security Patterns
- GDPR: GDPR Implementation & Data Residency
- FedRAMP: FedRAMP Compliance Path
- Security: Security Hardening Patterns
- Assessment: Compliance & Security Knowledge Check
Last Updated: October 21, 2025