Format Atlas

Panduan

Tempat menyimpan konfigurasi dan rahasia

Pisahkan konfigurasi biasa dari kredensial, lalu pilih penyimpanan untuk pengembangan lokal, CI, dan produksi sesuai kebutuhan akses.

Format mana yang sebaiknya dipilih?

Pilih berdasarkan peran setiap berkas dalam alur kerja.

  • Nilai default bersama → Simpan contoh tanpa nilai rahasia di repositori
  • Konfigurasi lokal tiap pengembang → Gunakan .env jika didukung dan kecualikan dari Git
  • Kredensial CI → Gunakan penyimpanan rahasia dari penyedia CI dan batasi akses
  • Produksi dan kontainer → Gunakan fitur rahasia platform runtime dan beri akses hanya kepada layanan yang memerlukannya
  • Kemungkinan bocor → Cabut atau rotasi kredensial; menghapus file saja tidak cukup

Pisahkan konfigurasi dari rahasia

Perlakukan konfigurasi non-sensitif seperti URL layanan dan sakelar fitur secara berbeda dari kredensial seperti kata sandi, kunci API, dan kunci privat. Jangan menanamkan kredensial asli di kode atau meng-commit berkas berisi nilai asli ke repositori bersama. Pastikan dahulu mekanisme konfigurasi yang didukung aplikasi.

Jangan lacak berkas .env lokal di Git

Jika alat yang digunakan mendukungnya, simpan nilai lokal tiap pengembang di berkas .env dan bagikan .env.example yang hanya berisi nama variabel serta nilai contoh. Masukkan .env asli ke .gitignore dan pastikan Git belum melacaknya. Aturan pengecualian Git bukan penyimpanan aman dan tidak menghapus nilai dari riwayat yang sudah ada.

Gunakan penyimpanan rahasia CI dengan hak minimum

Di sistem CI seperti GitHub Actions, daftarkan kredensial melalui fitur rahasia penyedia, bukan di berkas workflow. Batasi akses ke repositori, lingkungan, dan tugas yang membutuhkannya; berikan token hanya izin yang diperlukan; dan jangan mencetak nilainya. Penyamaran log tidak menjamin semua nilai yang telah diubah atau keluaran perintah akan tersembunyi.

Sediakan rahasia dari lingkungan produksi

Untuk produksi, utamakan penyimpanan rahasia dari penyedia hosting atau cloud, lalu batasi deployment dan layanan yang dapat membaca tiap nilai. Docker Compose dapat memasang rahasia sebagai berkas untuk layanan yang diberi izin secara eksplisit; kemampuan dan batasannya berbeda menurut platform. Periksa dokumentasi runtime yang benar-benar digunakan. Jika didukung, pertimbangkan kredensial berumur pendek seperti OIDC daripada kunci berumur panjang.

Cabut atau rotasi kredensial yang terungkap

Jika rahasia mungkin muncul dalam commit, log CI, atau percakapan, menghapus salinan yang terlihat saja tidak cukup. Cabut atau rotasi kunci maupun token terkait terlebih dahulu, lalu tinjau log akses dan kemungkinan penggunaannya. Setelah itu, tangani riwayat repositori dan log seperlunya serta perketat kontrol akses agar tidak terulang.

Format yang disarankan

.env

Cocok untuk: Memuat nilai lokal dengan alat yang mendukung berkas .env

Kurang cocok untuk: Membagikan atau menyimpan rahasia tanpa perlindungan

.gitignore

Cocok untuk: Mencegah berkas .env lokal yang belum dilacak agar tidak ikut ditambahkan

Kurang cocok untuk: Mencabut rahasia atau menghapus nilai yang sudah dilacak Git dari riwayat

Periksa sebelum mengekspor

  • .env dan .gitignore saja tidak menjamin rahasia aman; periksa status pelacakan Git, log CI, cadangan, dan penyimpanan rahasia runtime.
  • Penyamaran mungkin tidak menyembunyikan nilai yang diubah atau semua keluaran perintah.
  • Jika kredensial diduga bocor, cabut atau rotasi kredensialnya, jangan hanya menghapus berkas.

Panduan

Referensi dan spesifikasi