Skip to content

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:

AturanDetail
Panjang minimum12-16 karakter
KomposisiUppercase + lowercase + angka + simbol
PenyimpananPassword manager (Bitwarden gratis, atau 1Password)
SharingJANGAN 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

AksesContoh
Performance reportDashboard hasil automasi
Execution logsLog workflow milik klien
Dashboard view (opsional)Custom dashboard sederhana
Output & hasil automasiHasil kerja workflow

Yang Klien TIDAK BOLEH Dapat

DilarangRisiko
Admin loginEkspos semua klien lain
Credential vaultAkses semua API key
Akses edit workflowBisa merusak/menghapus
Hosting panelBisa 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 mungkin

7. Lifecycle Management Kredensial

AktivitasFrekuensi
Rotasi API keySesuai expiry (7 hari/custom)
Audit credential usageBulanan
Catat di spreadsheet/logSetiap buat/rotasi
Test revocation processSebelum dibutuhkan
Update container n8nSaat 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           ║
╚═══════════════════════════════════════════════╝

Rangkuman kursus Udemy — AI Builder + Build, Deploy & Sell n8n Automations