Audit Logging¶
CertifyClouds maintains a complete audit trail of all user actions and system events for compliance and security monitoring.
Overview¶
The audit log captures:
- User actions: Login, logout, configuration changes
- Discovery events: Scan starts, completions, errors
- Rotation events: Credential rotations (success/failure)
- Sync events: Multi-cloud sync operations
- System events: License validation, scheduled tasks
What's Logged¶
User Actions¶
| Event | Description | Details Captured |
|---|---|---|
auth.login.success | User logged in | Username, IP address, user agent |
auth.login.failed | Failed login attempt | Username, IP, failure reason |
auth.logout | User logged out | Username |
auth.account.locked | Account locked after failures | Username, attempt count |
user.created | New user added | Username, role, created by |
user.updated | User modified | Changed fields, modified by |
user.deleted | User removed | Username, deleted by |
Discovery Events¶
| Event | Description | Details Captured |
|---|---|---|
discovery.scan.started | Scan initiated | Mode, subscriptions, initiated by |
discovery.scan.completed | Scan finished | Duration, vault count, asset count |
discovery.scan.failed | Scan failed | Error message, affected vaults |
discovery.vault.error | Vault access error | Vault name, error details |
Rotation Events (PRO)¶
| Event | Description | Details Captured |
|---|---|---|
rotation.started | Rotation job initiated | App name, secret name, initiated by |
rotation.completed | Rotation successful | New expiry date, updated vaults |
rotation.failed | Rotation failed | Error message, rollback status |
Sync Events (PRO)¶
| Event | Description | Details Captured |
|---|---|---|
sync.started | Sync job initiated | Source, target, secret count |
sync.completed | Sync successful | Synced count, duration |
sync.failed | Sync failed | Error message, failed secrets |
Configuration Changes¶
| Event | Description | Details Captured |
|---|---|---|
settings.updated | Settings modified | Setting name, old/new value, modified by |
subscription.added | Subscription added | Subscription ID, added by |
subscription.removed | Subscription removed | Subscription ID, removed by |
alert.rule.created | Alert rule created | Rule details, created by |
alert.rule.updated | Alert rule modified | Changed fields, modified by |
alert.rule.deleted | Alert rule deleted | Rule ID, deleted by |
Viewing Audit Logs¶
From the UI¶
- Navigate to the Audit tab
- View the audit log table with:
- Timestamp
- Event type
- Actor (user or system)
- Description
- Details
Filtering¶
Filter audit logs by:
| Filter | Options |
|---|---|
| Date range | Start/end date |
| Event type | Login, scan, rotation, etc. |
| Actor | Specific user or "system" |
| Severity | Info, warning, error |
Search¶
Search across audit entries by:
- Event type
- Actor name
- Description text
- Resource name (vault, secret, etc.)
Audit Entry Structure¶
Each audit entry contains:
{
"id": "audit-123",
"timestamp": "2025-01-15T10:30:00Z",
"event_type": "discovery.scan.completed",
"actor": {
"type": "user",
"id": "user-456",
"name": "admin@company.com"
},
"resource": {
"type": "scan",
"id": "scan-789"
},
"description": "Discovery scan completed successfully",
"details": {
"mode": "full",
"duration_seconds": 45,
"vaults_scanned": 12,
"secrets_found": 234
},
"severity": "info",
"ip_address": "192.0.2.50",
"user_agent": "Mozilla/5.0..."
}
Retention¶
Default Retention¶
Audit logs are retained for 90 days by default.
Configure Retention¶
- Go to Settings > Advanced
- Find Audit Log Retention
- Set retention period (30-365 days)
- Save
Archival¶
For compliance requirements needing longer retention:
- Export regularly: Download logs before retention period
- External storage: Send to Azure Log Analytics, Splunk, etc.
- Backup database: Include audit tables in backups
Export¶
Export Options¶
Export audit logs in multiple formats:
| Format | Use Case |
|---|---|
| JSON | Integration with SIEM tools |
| CSV | Spreadsheet analysis |
| Compliance documentation |
Export via UI¶
- Go to Audit tab
- Apply desired filters
- Click Export
- Select format
- Download file
Export via API¶
Integration with SIEM¶
Azure Log Analytics¶
Forward audit logs to Log Analytics:
- Configure Log Analytics workspace
- Set up diagnostic settings
- Send CertifyClouds container logs
- Query with Kusto (KQL)
Splunk¶
Use the generic webhook to send audit events to Splunk:
- Create Splunk HTTP Event Collector
- Configure webhook in CertifyClouds alerts
- Send
audit.*events to collector
Custom Integration¶
Use the audit API to pull logs into any system:
# Get recent audit entries
curl http://localhost:8080/audit/entries \
-H "Authorization: Bearer $TOKEN" \
-G \
--data-urlencode "limit=100" \
--data-urlencode "offset=0"
Compliance Support¶
Audit logs support compliance requirements:
SOC 2¶
- CC6.1: User access tracking
- CC7.2: Activity monitoring
- CC7.5: Incident logging
ISO 27001¶
- A.12.4.1: Event logging
- A.12.4.2: Protection of log information
- A.12.4.3: Administrator logs
NIST 800-53¶
- AU-2: Auditable events
- AU-3: Content of audit records
- AU-6: Audit review
- AU-12: Audit generation
API Reference¶
List Audit Entries¶
Query parameters:
| Parameter | Description |
|---|---|
start_date | Filter from date (ISO 8601) |
end_date | Filter to date (ISO 8601) |
event_type | Filter by event type |
actor | Filter by actor |
limit | Max entries to return |
offset | Pagination offset |
Get Single Entry¶
Export Entries¶
Query parameters:
| Parameter | Description |
|---|---|
format | json, csv, or pdf |
start_date | Export from date |
end_date | Export to date |
Best Practices¶
- Review regularly: Check audit logs weekly for anomalies
- Set up alerts: Configure alerts for security events
- Export for compliance: Archive logs before retention expires
- Monitor failed logins: Watch for brute force attempts
- Track configuration changes: Review who modified settings