Diperbarui

Cara Berbagi File .env Tanpa Meng-commit-nya ke Git

Oleh

Cara paling aman untuk berbagi file .env adalah melalui tautan terenkripsi yang menghapus diri sendiri — bukan DM Slack, email, atau commit Git. Tools seperti Vaulted mengenkripsi variabel lingkungan kamu di browser menggunakan AES-256-GCM sebelum apa pun dikirim, dan tautan tersebut otomatis terhapus setelah dilihat.

Menurut laporan State of Secrets Sprawl 2025 dari GitGuardian, 23,8 juta rahasia bocor di repositori GitHub publik pada tahun 2024 — meningkat 25% dibanding tahun sebelumnya. Dan data GitHub sendiri menunjukkan 39 juta rahasia terdeteksi di seluruh platform pada tahun 2024. Banyak di antaranya berasal dari konten file .env yang tidak sengaja di-commit.

Masalah dalam berbagi file .env

File environment sangat berbahaya karena memusatkan semua rahasia yang dibutuhkan aplikasi kamu di satu tempat: URL database, API key, signing secret, dan token pihak ketiga. Satu kebocoran .env bisa mengkompromikan semua layanan eksternal yang terhubung ke aplikasi kamu.

Cara umum tim berbagi file .env — dan alasan mengapa cara tersebut tidak aman:

  • DM Slack/Discord — Bisa dicari, dicadangkan, dan tetap ada setelah karyawan keluar
  • Email — Tersimpan dalam plaintext di server email, sering diteruskan tanpa sengaja
  • Commit Git — Bahkan di repo privat, rahasia dalam riwayat hampir mustahil dihapus sepenuhnya
  • Drive bersama — Tidak ada masa kedaluwarsa, tidak ada kontrol akses, tidak ada jejak audit
  • Catatan 1Password/Bitwarden — Mengharuskan kedua pihak memiliki akun di vault yang sama

Pendekatan yang lebih baik: tautan terenkripsi yang menghapus diri sendiri

Daripada mengirim isi file secara langsung, enkripsi terlebih dahulu dan bagikan tautan yang menghapus diri sendiri setelah dilihat.

Dari browser

  1. Buka vaulted.fyi
  2. Tempel isi file .env kamu
  3. Tentukan batas tampilan (1 tampilan untuk satu penerima) dan masa kedaluwarsa
  4. Kirim tautan yang dihasilkan ke rekan tim kamu

Isinya dienkripsi dengan AES-256-GCM di browser kamu sebelum apa pun dikirim. Kunci enkripsi hanya ada di fragment URL — server tidak pernah melihat plaintext kamu.

Dari terminal

Jika kamu lebih suka baris perintah, Vaulted CLI melakukan hal yang sama:

# Pipe directly from the file
cat .env.production | npx vaulted-cli --views 1

# Or pass the file path
npx vaulted-cli --file .env.local --views 1 --expires 1h

# Add a passphrase for extra security
cat .env | npx vaulted-cli -v 1 -e 24h -p "ask-me-on-call"

CLI menggunakan enkripsi yang sama seperti aplikasi web — algoritma yang sama, arsitektur zero-knowledge yang sama, tautan yang menghapus diri sendiri yang sama. Hasilnya adalah satu URL yang bisa kamu tempel di Slack atau di mana saja, dan tautan tersebut kedaluwarsa setelah penerima membukanya.

Bagaimana dengan secrets manager?

Tools seperti Doppler, Infisical, dan AWS Secrets Manager sangat cocok untuk lingkungan produksi di mana rahasia dikonsumsi oleh aplikasi secara programatik. Tetapi mereka memecahkan masalah yang berbeda — mereka mengelola rahasia yang dibaca layanan secara otomatis.

Masalah berbagi .env berkaitan dengan serah terima antar manusia: saat onboarding developer baru, berbagi konfigurasi staging dengan kontraktor, atau mendistribusikan kredensial yang diperbarui setelah rotasi. Serah terima ini harus cepat, aman, dan tidak memerlukan pengaturan apa pun dari pihak penerima.

Praktik terbaik untuk kebersihan file .env

  1. Jangan pernah meng-commit file .env ke Git — Tambahkan .env* ke .gitignore sejak hari pertama
  2. Rotasi kredensial setelah berbagi — Anggap setiap pembagian sebagai potensi paparan
  3. Gunakan tautan dengan batas tampilan — Satu tampilan per penerima, masa kedaluwarsa singkat
  4. Tambahkan passphrase untuk konfigurasi produksi — Bagikan passphrase melalui saluran terpisah
  5. Dokumentasikan variabel mana yang dibutuhkan — Simpan .env.example dengan nilai kosong di repo kamu

Berhenti menempel variabel lingkungan ke Slack. Bagikan dengan aman menggunakan Vaulted — dari browser atau terminal kamu.


Terkait