NIST SC-12 requires key management procedures, which include auditability of key access — knowing who accessed which key and when is the mechanism for detecting insider threats and key compromise. NIST AU-2 requires auditable events to include security-relevant actions; key decryption operations are among the highest-value events in a financial system. PCI-DSS 4.0 Req-10.2 requires logging of all individual user access to cardholder data. Without quarterly review of key access logs, a compromised service account silently decrypting all stored cardholder data goes undetected for months. The FFIEC IT Handbook Audit section explicitly requires periodic review of access to cryptographic systems.
Medium because unreviewed key access logs allow insider abuse or credential-based key compromise to go undetected for extended periods, expanding the breach window.
Enable KMS audit logging and create a quarterly review cadence documented in docs/key-access-audit.md. For AWS CloudTrail (which logs all KMS API calls by default):
# Query CloudTrail for KMS decrypt events in the past 90 days
aws cloudtrail lookup-events \
--lookup-attributes AttributeKey=EventName,AttributeValue=Decrypt \
--start-time $(date -u -d '-90 days' +%Y-%m-%dT%H:%M:%SZ) \
--query 'Events[*].{Time:EventTime,User:Username,Key:Resources[0].ResourceName}'
Document each review with findings:
## Q1 2026 Review — 2026-01-15
- Tool: AWS CloudTrail
- Period: 2025-10-15 to 2026-01-15
- Total decrypt calls: 14,823
- Principals: app-service-role (14,819), admin@company.com (4)
- Anomalies: None
- Sign-off: [Name]
Set up a CloudWatch alert for unexpected principals calling kms:Decrypt to catch anomalies between quarterly reviews.
finserv-encryption.key-management.key-access-audit-quarterlymedium"0 key access logging mechanisms enabled — no CloudTrail, no application logs" or "KMS logging enabled but 0 audit review records within 90 days"AWS KMS: Enable CloudTrail logging in KMS Console > Key > CloudTrail
Google Cloud KMS: Cloud Audit Logs enabled by default for KMS operations
Azure Key Vault: Enable diagnostic logging in Key Vault > Diagnostic settings
# Key Access Audit Schedule
- Q1: Review CloudTrail logs for unauthorized access attempts
- Q2: Review and analyze access patterns
- Q3: Incident response review (if any)
- Q4: Annual security posture assessment
- Last audit: Q4 2024
- Findings: [summary]