Autentikasi Mendalam
Praktik Keamanan Lanjutan untuk Agensi
Video ini melanjutkan pembahasan autentikasi dengan fokus pada best practices, kesalahan kritis, dan strategi keamanan tingkat profesional.
1. Ubah Password Default Admin
Langkah pertama yang wajib dilakukan setelah setup n8n:
| Aturan | Detail |
|---|---|
| Panjang minimum | 12-16 karakter |
| Komposisi | Uppercase + lowercase + angka + simbol |
| Penyimpanan | Password manager (Bitwarden gratis, atau 1Password) |
| Sharing | JANGAN PERNAH share ke klien |
Bitwarden adalah password manager gratis yang direkomendasikan instruktur dan digunakan secara pribadi.
2. Enkripsi Kredensial n8n
Semua credential yang disimpan di n8n terenkripsi menggunakan encryption key:
┌───────────────────────────────────────┐
│ Credential di n8n │
├───────────────────────────────────────┤
│ │
│ OpenAI Key ──▶ [TERENKRIPSI] ──▶ DB │
│ Dropbox ──▶ [TERENKRIPSI] ──▶ DB │
│ Gmail ──▶ [TERENKRIPSI] ──▶ DB │
│ │
│ 🔑 Master Encryption Key │
│ = Kunci untuk decrypt semua │
│ │
│ ⚠️ Jika key ini sama saat restore, │
│ credentials akan langsung bekerja │
└───────────────────────────────────────┘3. Isolasi Kredensial Per Klien
Naming Convention yang Direkomendasikan
Format: [Nama Klien] - [Layanan] - [Environment]
Contoh:
✅ "KlienA - HubSpot - Prod"
✅ "KlienB - Airtable - Prod"
✅ "KlienC - OpenAI - Dev"
❌ "My Dropbox"
❌ "New credential"
❌ "test123"Mengapa Ini Penting?
Saat menambahkan node baru (misal Dropbox), n8n sering auto-select credential terakhir yang digunakan. Tanpa naming convention:
Skenario Bahaya:
Workflow Klien A ──▶ Dropbox Node ──▶ [Auto-select: Klien B credential]
⚠️ DATA BOCOR!
Workflow Klien B ──▶ OpenAI Node ──▶ [Auto-select: ANDA punya key]
⚠️ BIAYA ANDA!Pengalaman Instruktur
"Saya pernah menggunakan API key OpenAI pribadi untuk semua workflow klien karena key saya ter-select otomatis. Baru sadar setelah biaya membengkak."
4. Batasan Akses Klien
Yang Klien BOLEH Dapat
| Akses | Contoh |
|---|---|
| Performance report | Dashboard hasil automasi |
| Execution logs | Log workflow milik klien |
| Dashboard view (opsional) | Custom dashboard sederhana |
| Output & hasil automasi | Hasil kerja workflow |
Yang Klien TIDAK BOLEH Dapat
| Dilarang | Risiko |
|---|---|
| Admin login | Ekspos semua klien lain |
| Credential vault | Akses semua API key |
| Akses edit workflow | Bisa merusak/menghapus |
| Hosting panel | Bisa shutdown server |
5. Kesalahan Kritis yang Harus Dihindari
1. Sharing Admin Login ke Klien
Membuka seluruh infrastruktur automasi dan data semua klien.
2. Kirim API Key via WhatsApp/Email
Kasus nyata dari Reddit: seseorang kena tagihan $555K setelah Gemini API key bocor di GitHub!
3. Reuse Credential Antar Klien
Buat app terpisah untuk setiap klien. Contoh di Dropbox Developer:
- Buat app dengan App Folder access (bukan Full Dropbox)
- Nama unik per klien
- Permission minimal yang dibutuhkan
4. Password Sama di Semua Layanan
Jika klien tahu password satu layanan, bisa coba login ke semua layanan lain.
5. Simpan Key di Plain Text
Selalu gunakan credential manager atau password manager terenkripsi.
6. Konfigurasi Permission/Scope
Selalu atur scope minimum yang diperlukan:
Permission API yang Benar:
Kalau hanya perlu BACA file:
✅ files.content.read
❌ files.content.write ← JANGAN!
❌ files.content.delete ← JANGAN!
Prinsip: Least Privilege
= Berikan akses SEMINIMAL mungkin7. Lifecycle Management Kredensial
| Aktivitas | Frekuensi |
|---|---|
| Rotasi API key | Sesuai expiry (7 hari/custom) |
| Audit credential usage | Bulanan |
| Catat di spreadsheet/log | Setiap buat/rotasi |
| Test revocation process | Sebelum dibutuhkan |
| Update container n8n | Saat ada security patch |
Security Checklist Lengkap
╔═══════════════════════════════════════════════╗
║ SECURITY CHECKLIST AGENSI ║
╠═══════════════════════════════════════════════╣
║ □ Password admin sudah diganti (12+ char) ║
║ □ Password manager aktif (Bitwarden) ║
║ □ Credential terpisah per klien ║
║ □ Naming convention diterapkan ║
║ □ Tidak ada hard-coded key di workflow ║
║ □ JSON di-review sebelum share ║
║ □ Scope/permission diminimalkan ║
║ □ HTTPS aktif di hosting ║
║ □ Container/n8n di-update berkala ║
║ □ Intern punya akses Member (bukan Admin) ║
║ □ Rotasi key terjadwal ║
║ □ Proses revocation terdokumentasi ║
╚═══════════════════════════════════════════════╝