Access reviews, attestation, dan Segregation of Duties (SoD) memastikan akses tetap sesuai kebutuhan bisnis dan compliant dengan regulasi

Setelah di episode 9 kita membahas RBAC, pada episode ini kita masuk ke access governance & reviews — proses memastikan bahwa akses yang diberikan masih relevan, compliant, dan sesuai kebutuhan bisnis. Tanpa governance, akses akan bertambah terus tanpa ada yang mencabut yang tidak perlu.
Mengapa access governance penting? Karena akses yang berlebihan (over-privileged) adalah salah satu risiko keamanan terbesar. Access reviews secara berkala memastikan bahwa hanya user yang berhak yang masih memiliki akses.
Access review adalah proses periodic untuk memvalidasi bahwa user masih layak memiliki akses tertentu:
| Aspek | Detail |
|---|---|
| Frekuensi | Quarterly (kritis), semesterly (normal) |
| Reviewer | Manager langsung atau resource owner |
| Scope | Semua user + akses atau berdasarkan risk |
| Outcome | Approve, revoke, atau modify |
# Via Microsoft Graph API
curl -X POST "https://graph.microsoft.com/v1.0/identityGovernance/accessReviews/definitions" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"displayName": "Quarterly Access Review - Engineering",
"scope": {
"query": "./members",
"queryType": "MicrosoftGraph"
},
"reviewers": [
{
"query": "/users/manager-id",
"queryType": "MicrosoftGraph"
}
],
"settings": {
"autoApplyDecisionsEnabled": true,
"justificationRequiredOnApproval": true
}
}'Attestation adalah pernyataan formal bahwa akses yang diberikan sudah divalidasi:
| Access Type | Attestation Frequency |
|---|---|
| Privileged (admin) | Monthly |
| Sensitive data | Quarterly |
| Standard access | Semi-annual |
| Low-risk | Annual |
SoD memastikan bahwa tidak ada satu user yang memiliki kombinasi akses yang bisa menyalahgunakan kekuasaan:
| Kombinasi Terlarang | Risiko |
|---|---|
| Create vendor + Approve payment | Fraud pembayaran |
| Create user + Assign admin role | Privilege escalation |
| Approve code + Deploy to production | Unauthorized deployment |
| Create PO + Receive goods | Procurement fraud |
Policy: Tidak ada user yang boleh memiliki:
Role: "purchase-request-creator" DAN "purchase-approver"
Enforcement:
1. Define conflicting roles
2. Check saat role assignment
3. Block jika konflik terdeteksi
4. Escalate ke manager untuk exception Requester Approver Executor Reviewer
Requester - ConFLICT OK OK
Approver CONFLICT - OK OK
Executor OK OK - CONFLICT
Reviewer OK OK CONFLICT -Warning
SoD violations harus ditangani segera. Jika ditemukan user dengan kombinasi akses yang melanggar SoD, akses harus direvisi atau dikecualikan dengan compensating controls yang terdokumentasi.
| Framework | Access Review Requirement |
|---|---|
| SOX | Quarterly review untuk financial systems |
| HIPAA | Annual review untuk PHI access |
| GDPR | Review saat purpose change |
| PCI-DSS | Quarterly review untuk cardholder data |
import json
from datetime import datetime, timedelta
def check_stale_access(users, threshold_days=90):
stale = []
for user in users:
last_login = datetime.fromisoformat(user['last_login'])
if datetime.now() - last_login > timedelta(days=threshold_days):
stale.append({
'user': user['username'],
'last_login': user['last_login'],
'roles': user['roles']
})
return staleInti yang harus dibawa pulang:
Di episode 11 selanjutnya kita akan membahas Privileged Access Management (PAM) — vaulting, session management, dan just-in-time access. Siapkan keamanan privileged kalian!