Vaulting credential, session management, dan just-in-time access memastikan privileged accounts tidak menjadi celah keamanan terbesar di organisasi

Setelah di episode 10 kita membahas access governance & reviews, pada episode ini kita masuk ke Privileged Access Management (PAM) — disiplin yang mengelola akses administrator dan service accounts yang memiliki kekuasaan paling tinggi di infrastruktur. PAM adalah lapisan keamanan terakhir yang mencegah compromis berantai.
Mengapa PAM kritis? Karena privileged accounts adalah target utama attacker. Satu credential admin yang dikompromi bisa membuka akses ke seluruh infrastruktur. PAM memastikan bahwa privileged access hanya digunakan saat diperlukan, tercatat, dan bisa dicabut segera.
Password admin disimpan di vault terpusat, bukan di sticky notes atau password manager pribadi:
Admin → Request Access → Vault → Credentials diterbitkan → Session dimulai → Session direkam → Credentials dicabutSetiap sesi privileged direkam untuk audit:
| Aspek | Detail |
|---|---|
| Recording | Full session recording (video + command) |
| Timestamp | Kapan sesi dimulai dan berakhir |
| Target | Server/service apa yang diakses |
| Justification | Mengapa akses diperlukan |
Akses privileged diberikan hanya saat dibutuhkan dan expired otomatis:
# User request access ke admin role
az role assignment create \
--assignee $USER_ID \
--role "Virtual Machine Contributor" \
--scope /subscriptions/$SUB_ID/resourceGroups/$RG \
--start-date $(date -u +%Y-%m-%dT%H:%M:%S) \
--end-date $(date -u -d '+2 hours' +%Y-%m-%dT%H:%M:%S)| Tool | Tipe | Fitur Utama |
|---|---|---|
| HashiCorp Vault | Open-source | Secret management, dynamic credentials |
| CyberArk | Commercial | Enterprise PAM, session recording |
| Azure PIM | Cloud-native | Just-in-time access di Entra ID |
| Teleport | Open-source | Session recording, certificate-based access |
vault server -dev -dev-root-token-id=root
export VAULT_ADDR='http://127.0.0.1:8200'# Enable KV secrets engine
vault secrets enable -path=secret kv-v2
# Store secret
vault kv put secret/db-credentials username=admin password=s3cret
# Retrieve secret
vault kv get -field=password secret/db-credentialsVault bisa generate credentials on-the-fly:
# Enable database secrets engine
vault secrets enable database
# Configure PostgreSQL connection
vault write database/config/postgres \
plugin_name=postgresql-database-plugin \
connection_url="postgresql://{{username}}:{{password}}@db:5432/app" \
allowed_roles="readonly" \
username="admin" \
password="admin"
# Generate dynamic credential (auto-expire)
vault read database/creds/readonly
# Output: username=v-appuser-xxx password=xyz expires=1hPIM di Entra ID memberikan just-in-time admin access:
| Fitur | Fungsi |
|---|---|
| Time-limited role | Admin role aktif hanya 1-8 jam |
| Approval required | Manager harus approve sebelum akses aktif |
| MFA required | MFA wajib saat activation |
| Audit trail | Semua activation tercatat |
# Request activation of Global Admin role
az rest --method POST \
--uri "https://graph.microsoft.com/v1.0/privilegedAccess/aadRoles/roleScheduleInstances" \
--body '{
"accessId": "roleAssignmentSchedule",
"principalId": "user-id",
"roleDefinitionId": "role-id",
"scheduleInfo": {
"startDateTime": "2026-08-16T10:00:00Z",
"expiration": {
"type": "afterDuration",
"duration": "PT2H"
}
}
}'Important
PAM harus diterapkan untuk SEMUA privileged accounts: domain admin, cloud admin, database admin, dan service accounts. Tidak ada exception. Jika ada admin yang "butuh akses terus-menerus", itu tanda ada masalah desain yang perlu diperbaiki.
Inti yang harus dibawa pulang:
Di episode 12 selanjutnya kita akan membahas application integration (OIDC/SAML apps) — mengintegrasikan aplikasi ke IdP, SCIM, dan troubleshooting. Siapkan integrasi apps kalian!