🌐 ID

🔑 Generator API Key

Buat API Key acak yang aman. Gunakan untuk REST API, token autentikasi, dan secret key.

Format API Key
PANDUAN

Pelajari lebih lanjut

01

1. Pentingnya Keamanan API Key

API Key adalah elemen keamanan penting untuk autentikasi aplikasi. Key yang lemah rentan terhadap serangan brute force, dan kebocoran dapat menyebabkan akses API tanpa izin. API Key yang kuat sebaiknya setidaknya 32 karakter string acak, menggunakan cryptographically secure pseudo-random number generators (CSPRNG). UUID v4, Base64, dan Hex adalah format yang umum digunakan, dengan setiap key unik dan tidak dapat diprediksi. Segera cabut dan ganti key yang bocor, dan jangan pernah meng-commit key ke repositori publik seperti GitHub.

02

2. Perbandingan Metode Pembuatan Key

Ada beberapa metode pembuatan API Key. UUID v4 menggunakan 122 bit acak dengan probabilitas tabrakan yang sangat rendah, dan banyak diadopsi. Base64 mengenkode data biner ke teks, menyediakan sekitar 192 bit entropi dalam 32 karakter. Hex merepresentasikan dalam heksadesimal untuk keterbacaan tinggi, menawarkan keamanan 256-bit dalam 64 karakter. Alfanumerik hanya menggunakan huruf dan angka agar aman untuk URL, dan menambahkan prefiks (sk_, api_) membuat jenis key mudah dikenali. Stripe, AWS, dan OpenAI menggunakan format key yang berbeda untuk membedakan key khusus layanan.

03

3. UUID vs String Acak

UUID v4 adalah pengenal standar 128-bit yang memastikan keunikan global. Format 8-4-4-4-12 (misalnya 550e8400-e29b-41d4-a716-446655440000) memiliki struktur yang jelas mengikuti standar RFC 4122. String acak kustom menawarkan fleksibilitas panjang dan format. UUID cocok untuk primary key database, sedangkan string acak lebih ringkas dan praktis untuk API Key. Kekuatan keamanannya serupa, tetapi string acak memudahkan penerapan logika validasi dengan prefiks dan checksum.

04

4. Rekomendasi Penyimpanan Key

Jangan pernah menyimpan API Key dalam teks biasa. Simpan di environment variables (.env) dan tambahkan ke .gitignore agar tidak masuk ke version control. Di production, gunakan sistem pengelolaan secret khusus seperti AWS Secrets Manager, HashiCorp Vault, atau Azure Key Vault. Saat menyimpan di database, ubah menjadi hash (SHA-256) dan terapkan enkripsi (AES-256) bila diperlukan. Hindari menanamkan key secara hardcode di kode; gunakan Docker secrets atau Kubernetes Secrets. Samarkan key di log untuk mencegah kebocoran dan pantau riwayat penggunaan key.

05

5. Kebijakan Rotasi Key

API Key harus dirotasi secara berkala. Rotasi key setiap 90 hari adalah praktik umum; cabut segera jika ada dugaan kebocoran. Untuk rotasi tanpa downtime, aktifkan dua key sekaligus, pindah ke key baru, lalu nonaktifkan key lama. AWS IAM dan Google Cloud API Keys menyediakan fitur rotasi otomatis. Tetapkan tanggal kedaluwarsa untuk setiap key agar key lama otomatis tidak valid, dan catat riwayat rotasi di audit logs. Menggunakan autentikasi berbasis token seperti OAuth 2.0 atau JWT daripada API Keys menawarkan keamanan yang lebih baik dengan masa berlaku otomatis.

06

6. Pembatasan Rate dan Pembatasan Penggunaan

Selalu terapkan Rate Limiting pada API Key untuk mencegah penyalahgunaan. Tetapkan batas seperti 100 permintaan per menit per IP atau 1,000 per jam per key. Terapkan kuota untuk maksimum panggilan harian, dan kembalikan 429 Too Many Requests saat terlampaui. Konfigurasikan IP whitelist agar key hanya dapat digunakan dari IP tertentu, dan deteksi pola abnormal (permintaan massal dalam waktu singkat) untuk pemblokiran otomatis. API gateway seperti Cloudflare, Kong, dan AWS API Gateway memudahkan penerapan Rate Limiting. Tetapkan izin khusus key (Scopes) untuk membatasi akses ke read-only, write-only, dan lainnya.

Pertanyaan umum

Apakah key yang dihasilkan dikirim ke server?
Tidak. Semua key dibuat hanya di browser Anda dan tidak pernah dikirim ke server, jadi aman digunakan.
Format mana yang harus saya pilih?
UUID v4 banyak digunakan karena probabilitas tabrakannya rendah. Pilih Alfanumerik untuk keamanan URL, atau Hex untuk keterbacaan.