SOX, GDPR, audit trails, dan evidence collection memastikan identity management memenuhi regulasi dan siap menghadapi audit eksternal

Setelah di episode 19 kita membahas zero trust identity, pada episode ini kita masuk ke compliance & audit identity — memastikan bahwa praktik IAM memenuhi regulasi dan siap menghadapi audit eksternal. Compliance bukan sekadar checklist — itu bukti bahwa organisasi menjalankan praktik terbaik.
Mengapa compliance penting? Karena pelanggaran regulasi bisa mengakibatkan denda besar (GDPR: hingga 4% revenue global) dan kerusakan reputasi. Audit yang sukses membuktikan bahwa identity management dilakukan dengan benar.
| Requirement | Identity Implication |
|---|---|
| Access to financial systems | Must be reviewed quarterly |
| Separation of duties | No single user can approve + execute |
| Audit trails | All access logged and retained |
| Change management | All access changes documented |
| Requirement | Identity Implication |
|---|---|
| Data minimization | Only necessary access |
| Purpose limitation | Access only for stated purpose |
| Right to deletion | Deprovisioning must be complete |
| Consent management | Track user consent |
| Data portability | Export user data on request |
| Requirement | Identity Implication |
|---|---|
| PHI access control | Role-based access to health data |
| Audit controls | Log all PHI access |
| Integrity controls | Ensure data not altered |
| Transmission security | Encrypt data in transit |
| Requirement | Identity Implication |
|---|---|
| Unique user IDs | No shared accounts |
| Access restriction | Need-to-know basis |
| Regular review | Quarterly access reviews |
| Strong authentication | MFA for all admin access |
| Tipe | Contoh | Retention |
|---|---|---|
| Authentication | Login/logout events | 1 year minimum |
| Authorization | Permission changes | 7 years (SOX) |
| Administration | Account provisioning | 7 years (SOX) |
| Data access | Sensitive data access | Per regulation |
# Entra ID: SignInLogs dan AuditLogs
curl -H "Authorization: Bearer $TOKEN" \
"https://graph.microsoft.com/v1.0/auditLogs/directoryAudits" \
| jq '.value[] | {activity: .activityDisplayName, date: .activityDateTime, result: .result}'
# AWS CloudTrail
aws cloudtrail lookup-events \
--lookup-attributes AttributeKey=EventName,AttributeValue=ConsoleLogin| Evidence | Description | Format |
|---|---|---|
| Access review reports | Hasil quarterly access review | PDF/CSV |
| MFA enrollment stats | Persentase user dengan MFA | Report |
| Policy documents | Conditional access policies | |
| Audit logs | Authentication & authorization logs | Export |
| Incident reports | Breach atau security incidents |
import json
from datetime import datetime, timedelta
def collect_iam_evidence():
evidence = {
'access_reviews': get_access_review_reports(),
'mfa_stats': get_mfa_enrollment_stats(),
'audit_logs': export_audit_logs(days=90),
'policy_docs': export_policies(),
'incidents': get_security_incidents()
}
# Generate audit report
with open(f'evidence_{datetime.now().strftime("%Y%m")}.json', 'w') as f:
json.dump(evidence, f, indent=2)Warning
Jangan pernah menunggu audit untuk mempersiapkan evidence. Kumpulkan evidence secara continuous — setiap quarter, setiap perubahan kebijakan, setiap insiden. Ini mengurangi stress dan meningkatkan kualitas audit.
| Finding | Remediation |
|---|---|
| Missing MFA for admin | Implementasi MFA wajib |
| No access reviews | Setup quarterly reviews |
| Standing privileges | Implementasi JIT access |
| Missing audit logs | Enable comprehensive logging |
| No deprovisioning process | Implementasi automated deprovisioning |
Inti yang harus dibawa pulang:
Di episode 21 selanjutnya kita akan membahas Identity Governance Administration (IGA) — centralized governance, policy lifecycle, dan automation. Siapkan governance kalian!