"Kalau keamanan diabaikan, bisa-bisa container kamu malah jadi rumah buat hacker!"
Docker memang mempermudah deployment aplikasi, tapi kalau gak dijaga keamanannya, bisa jadi bencana!
Bayangin kalau container kamu disusupi malware, atau image yang kamu pakai ternyata ada backdoor.
Solusi? Pastikan container dan image kamu aman!
Di artikel ini, kita bakal bahas praktik terbaik untuk mengamankan Docker containers dan images!
1. Menggunakan Image yang Terpercaya
Sebelum menarik (pull) image dari Docker Hub, pastikan kamu tidak asal ambil image!
Tips:
Gunakan image resmi atau yang memiliki banyak unduhan.
Cek tag versi, jangan pakai latest
kalau bisa!
Gunakan image minimalis seperti alpine
untuk mengurangi celah keamanan!
Gunakan image yang sudah ditandai dengan "Verified Publisher" di Docker Hub!
Contoh:
Jangan:
docker pull randomuser/nginx
Harusnya:
docker pull nginx:1.25
Kenapa?
- Image dari publisher resmi lebih aman dan sering diperbarui.
- Tag versi (
1.25
) memastikan kita pakai versi stabil, bukan yang bisa berubah sewaktu-waktu!
2. Memindai Image dari Kerentanan (Vulnerability Scanning)
Docker images bisa mengandung kerentanan keamanan (vulnerabilities).
Gunakan scanner untuk mengecek apakah ada celah keamanan!
Gunakan Trivy (Scanner Gratis dari Aqua Security!)
Install Trivy:
sudo apt install trivy
Cek image sebelum digunakan:
trivy image nginx:1.25
Kalau banyak vulnerability yang muncul, lebih baik cari image lain atau update ke versi terbaru!
3. Menjalankan Container dengan Hak Akses Rendah (Non-Root User)
Jangan jalankan container sebagai root!
Secara default, banyak container yang berjalan sebagai root, yang berbahaya kalau terjadi eksploitasi.
Solusi: Jalankan container dengan user non-root!
Misalnya dalam Dockerfile:
RUN addgroup --system appgroup && adduser --system --group appuser
USER appuser
Atau kalau menjalankan container langsung:
docker run -u 1001 nginx
Manfaatnya:
Mencegah eskalasi hak akses jika container diretas!
Meminimalisir dampak jika ada celah keamanan!
4. Gunakan Read-Only Filesystem untuk Container
Biasanya, container hanya perlu membaca data, bukan menulis data di dalam filesystem-nya.
Jadi, buatlah container read-only untuk keamanan lebih tinggi!
Jalankan container dengan filesystem read-only:
docker run --read-only nginx
Manfaatnya:
Mencegah malware menulis file berbahaya di dalam container!
Mengurangi risiko serangan dari aplikasi yang bocor!
5. Batasi Sumber Daya Container (CPU & RAM)
Jangan biarkan satu container memakan semua resource server!
Kalau ada container nakal, bisa bikin server lemot!
Cara membatasi CPU & RAM pada container:
docker run --memory=512m --cpus=1 nginx
Penjelasan:
--memory=512m
→ Container hanya bisa menggunakan 512MB RAM.--cpus=1
→ Container hanya bisa menggunakan 1 core CPU.
Manfaatnya:
Mencegah satu container menghabiskan seluruh sumber daya server!
Membantu membatasi dampak jika container terkena serangan DDoS!
6. Gunakan Secrets untuk Menyimpan Informasi Sensitif
Jangan pernah menyimpan password atau API key di dalam Dockerfile!
Gunakan Docker Secrets untuk menyimpan informasi sensitif!
Cara menyimpan secret:
echo "supersecretpassword" | docker secret create db_password -
Gunakan secret di service Swarm:
docker service create --name myapp --secret db_password my-app:latest
Manfaatnya:
Password/API key tidak tersimpan dalam image atau file environment!
Hanya layanan yang memiliki izin yang bisa mengakses secret ini!
7. Batasi Hak Akses Jaringan Container
Jangan biarkan container bisa mengakses jaringan bebas tanpa batas!
Gunakan jaringan khusus untuk container:
docker network create --driver bridge isolated_network
docker run --network=isolated_network my-container
Manfaatnya:
Mencegah container yang diretas mengakses jaringan lain!
Meningkatkan keamanan komunikasi antar-container!
8. Update dan Patch Secara Berkala
Jangan biarkan image Docker kamu ketinggalan zaman!
Cara update image dan container:
docker pull nginx:1.25
docker service update --image nginx:1.25 web
Manfaatnya:
Mengurangi risiko eksploitasi dari celah keamanan lama!
Memastikan container berjalan dengan dependensi terbaru!
Kesimpulan: Jangan Biarkan Container Kamu Jadi Sasaran Empuk!
Gunakan image yang terpercaya
Scan image dari kerentanan
Jangan jalankan container sebagai root!
Gunakan filesystem read-only untuk container
Batasi CPU & RAM container
Gunakan Docker Secrets untuk password
Batasi akses jaringan container
Selalu update dan patch container!
Dengan menerapkan langkah-langkah ini, container kamu bakal jauh lebih aman dari serangan hacker!
Next Step:
- Implementasikan tips ini di proyek Docker kamu!
- Coba jalankan container dengan security scanning!
0 Comments