Selamat datang kembali di seri pembangunan Secure Doc API! Jika Anda melewatkan Bagian 1 tentang Distroless Container, Anda bisa membacanya di sini.
Seluruh kode referensi tersedia di: 👉 mohammadanang/secure-doc-api
Sekarang kita memiliki aplikasi yang aman. Tantangan berikutnya adalah: bagaimana memindahkan kode tersebut dari GitHub ke server secara otomatis, tanpa meloloskan kode yang rentan? Jawabannya adalah Shift-Left Security menggunakan Google Cloud Build dan Artifact Registry.
- Shift-Left Security dengan Gosec
Kita akan menyisipkan gosec (Golang Security Checker) di tahap paling awal pipeline. Jika gosec menemukan celah, pipeline akan gagal dan image tidak akan pernah dibuat.
Namun, di tahap ini saya menemukan pelajaran berharga tentang Dependency Drift. Awalnya saya menggunakan tag @latest untuk instalasi gosec. Tiba-tiba pipeline hancur karena versi terbaru gosec meminta Golang 1.25, sedangkan saya menggunakan 1.24!
Solusinya? Version Pinning.
# cloudbuild.yaml (Step 1)
steps:
- name: 'golang:1.24'
entrypoint: 'bash'
args:
- '-c'
- |
echo "Menginstal Gosec (Version Pinned)..."
go install github.com/securego/gosec/v2/cmd/gosec@v2.22.0
/go/bin/gosec -no-fail -fmt=text -out=results.txt ./...
cat results.txt
- IAM Roles: Jebakan Batman di Google Cloud
Google Cloud menerapkan prinsip Least Privilege secara default. Artinya, pipeline kita awalnya sama sekali tidak bisa menulis log, mengunggah image ke Artifact Registry, atau men-deploy ke Kubernetes.
Kita harus mengatur Service Account di Cloud Shell secara eksplisit:
# Memberikan izin untuk menulis Log
gcloud projects add-iam-policy-binding $PROJECT_ID \
--member="serviceAccount:$SA_EMAIL" \
--role="roles/logging.logWriter"
# Memberikan izin untuk push image ke Artifact Registry
gcloud projects add-iam-policy-binding $PROJECT_ID \
--member="serviceAccount:$SA_EMAIL" \
--role="roles/artifactregistry.writer"
Setelah izin beres, pipeline berjalan mulus, image Docker dibungkus, dan Artifact Registry secara otomatis memindai kerentanan OS layer-nya!
Di Bagian 3 (Terakhir), kita akan membahas deployment akhir ke GKE Autopilot dengan Security Context tingkat lanjut. Jangan lewatkan!
Top comments (0)