Deployment, konfigurasi, dan least privilege — Vibe Coding dan Security: Dari Prompt ke Aplikasi Aman

MATERI 25 DARI 28

Deployment, konfigurasi, dan least privilege

Deploy dengan service account terbatas, file permission tepat, konfigurasi tervalidasi, dan health check.

Tujuan pembelajaran

  • Membedakan build, deploy, dan runtime.
  • Mengatur ownership/mode file.
  • Membatasi permission service dan database.

Konsep utama

Least privilege

Worker hanya mendapat read/write yang dibutuhkan.

Config validation

Service harus gagal start bila secret wajib hilang.

Artifact integrity

Verifikasi checksum sebelum install.

Alur kerja teknis

  1. Tulis tujuan dan acceptance criteria.
  2. Buat perubahan kecil yang dapat ditinjau.
  3. Jalankan test dan baca diff sebelum menerima hasil AI.

Contoh implementasi

Deploy file dengan ownership eksplisit

sha256sum -c SHA256SUMS
php -l stage/public/index.php
sudo install -o root -g www-data -m 0640 stage/public/index.php /var/www/app/public/index.php
sudo -u www-data test -r /var/www/app/public/index.php
curl -fsS https://example.test/health

Role database terbatas

CREATE USER app_user WITH PASSWORD 'use-secret-manager';
GRANT SELECT, INSERT, UPDATE, DELETE ON app_schema.app_data TO app_user;
-- Jangan memberi SUPER/ALL PRIVILEGES ke aplikasi.

Aspek keamanan

  • Jangan menggunakan chmod 777.
  • Jangan memasukkan config production ke bundle source.
  • Verifikasi runtime sebagai service user, bukan hanya user SSH.

Kesalahan umum

  • Menerima kode AI tanpa membaca diff dan memahami alur data.
  • Menguji hanya happy path dan mengabaikan input salah atau batas nilai.
  • Menyimpan secret, token, atau data nyata di prompt dan source code.

Pengujian dan verifikasi

  1. Jalankan contoh dengan input normal.
  2. Ulangi dengan input kosong, tipe salah, dan nilai batas.
  3. Pastikan error tidak membocorkan secret atau detail internal.

Latihan

  1. Modifikasi contoh dengan satu kebutuhan baru dan tulis acceptance criteria-nya.
  2. Tambahkan satu negative test lalu jelaskan risiko yang dicegah.

Checklist

  • Tujuan dan batas pekerjaan jelas.
  • Input divalidasi di server.
  • Secret tidak berada di source/prompt.
  • Test lulus dan diff sudah dibaca.

Rangkuman

Deploy dengan service account terbatas, file permission tepat, konfigurasi tervalidasi, dan health check.