0Pricing
Docker & DevOps Fundamentals · Pelajaran

Praktik Terbaik Keamanan Dockerfile

Terapkan langkah-langkah keamanan dalam Dockerfile untuk meminimalkan kerentanan dan mengurangi permukaan serangan.

Praktik Terbaik Keamanan Dockerfile adalah pelajaran Docker & DevOps Fundamentals gratis di CoddyKit. Ini adalah pelajaran 3 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Docker & DevOps Fundamentals, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Docker & DevOps Fundamentals mencakup 4 pelajaran total.

Amankan Dockerfile Anda!

Selamat datang di Praktik Terbaik Keamanan Dockerfile! Aplikasi yang aman dimulai dari fondasi yang aman.

Dockerfile Anda bukan sekadar skrip build; Dockerfile adalah cetak biru keamanan aplikasi Anda. Praktik yang buruk di sini dapat menyebabkan kerentanan yang serius.

Dalam pelajaran ini, kita akan membahas strategi utama untuk memperkuat image Docker Anda dan meminimalkan permukaan serangan yang mungkin terjadi.

Praktik Terbaik Keamanan Dockerfile — ilustrasi 1

Mulai dengan Image Dasar Tepercaya

Instruksi FROM adalah garis pertahanan pertama Anda. Selalu pilih image dasar resmi yang dikelola dengan baik dari sumber tepercaya seperti Docker Hub.

  • Image Resmi: Image ini telah diverifikasi dan diperbarui secara berkala.
  • Tag Spesifik: Hindari latest. Gunakan tag versi tertentu (misalnya, alpine:3.18) agar lebih mudah diprediksi dan stabil.
  • Image Minimal: Pilih versi 'slim' atau 'alpine'. Image tersebut berisi lebih sedikit paket, sehingga lebih sedikit pula potensi kerentanannya.

Memilih Image Dasar yang Aman

Lihat bagaimana pemilihan image dasar yang minimal dan spesifik dapat meningkatkan keamanan. Image tersebut mengurangi jumlah paket dan alat yang dapat dieksploitasi.

FROM alpine:3.18
# This is better than:
# FROM ubuntu:latest
# FROM python:latest

# Alpine is a minimal Linux distribution,
# making the image smaller and more secure.

Minimalkan Ukuran Image

Setiap file, paket, atau dependensi yang Anda tambahkan ke image akan memperluas 'permukaan serangan'. Semakin sedikit perangkat lunak yang ada, semakin sedikit potensi kerentanan yang muncul.

Instal hanya hal-hal yang benar-benar penting agar aplikasi Anda dapat berjalan. Hapus alat build dan file sementara setelah tidak diperlukan lagi.

Bersihkan Setelah Instalasi

Saat menginstal paket, selalu bersihkan cache pengelola paket dan hapus file yang tidak diperlukan. Hal ini mengurangi ukuran akhir image dan menghapus potensi kebocoran informasi.

Untuk image berbasis Debian (seperti Ubuntu), gunakan apt-get clean dan hapus /var/lib/apt/lists/* dalam instruksi RUN yang sama.

FROM debian:stable-slim

RUN apt-get update && \
    apt-get install -y --no-install-recommends \ 
    curl \ 
    git && \
    apt-get clean && \
    rm -rf /var/lib/apt/lists/*

# All in one RUN command to leverage Docker's caching and reduce layers.

Jangan Berjalan sebagai Root!

Secara default, proses di dalam kontainer Docker berjalan sebagai pengguna root. Ini merupakan risiko keamanan yang besar!

Jika penyerang memperoleh kendali atas kontainer Anda, mereka akan memiliki hak istimewa root, yang berpotensi memungkinkan mereka keluar dari kontainer atau mengambil alih sistem host.

Selalu buat pengguna khusus yang bukan root dan beralih ke pengguna tersebut menggunakan instruksi USER.

Menyiapkan Pengguna Bukan Root

Berikut cara membuat pengguna baru dan menginstruksikan Docker untuk menjalankan perintah berikutnya sebagai pengguna tersebut. Hal ini secara signifikan membatasi potensi kerusakan jika kontainer disusupi.

FROM alpine:3.18

# Create a non-root user and group
RUN addgroup -S appgroup && adduser -S appuser -G appgroup

# Switch to the non-root user
USER appuser

CMD ["echo", "Hello from non-root user!"]

Jangan Simpan Rahasia di Dockerfile!

Jangan pernah menulis informasi sensitif secara langsung, seperti kunci API, kata sandi basis data, atau kunci pribadi, ke dalam Dockerfile atau melakukan commit informasi tersebut ke image Anda.

Rahasia ini dapat dengan mudah diekstrak dari image oleh siapa pun yang memiliki akses, bahkan jika Anda menghapusnya pada layer berikutnya.

Sebagai gantinya, gunakan metode aman seperti Docker Secrets, variabel lingkungan (untuk data yang tidak sensitif), atau Kubernetes Secrets saat runtime.

Utamakan COPY daripada ADD

Instruksi COPY dan ADD sama-sama menyalin file ke dalam image Anda, tetapi COPY umumnya lebih disarankan demi keamanan dan kejelasan.

  • COPY: Hanya menyalin file atau direktori lokal. Penggunaannya sederhana dan mudah diprediksi.
  • ADD: Juga dapat mengambil file dari URL dan mengekstrak arsip terkompresi secara otomatis (tar, gzip). Fungsi tambahan ini menimbulkan potensi risiko keamanan, seperti mengunduh konten yang tidak tepercaya atau mengekstrak arsip berbahaya.

Gunakan COPY, kecuali Anda benar-benar memerlukan fitur lanjutan ADD dan memahami risikonya.

Pemeriksaan Keamanan!

Manakah dari praktik Dockerfile berikut yang merupakan langkah penting untuk mengurangi permukaan serangan dan meminimalkan potensi kerentanan?

Perjalanan Dockerfile Aman Anda

Kerja bagus! Anda telah mempelajari praktik terbaik keamanan Dockerfile yang penting sebagai fondasi containerisasi yang aman:

  • Mulai dengan Image Dasar Tepercaya dan Minimal: Gunakan image resmi, spesifik, dan ringan.
  • Minimalkan Ukuran Image: Instal hanya yang diperlukan dan lakukan pembersihan setelah instalasi.
  • Jalankan sebagai Pengguna Bukan Root: Batasi hak istimewa untuk mengurangi dampak jika terjadi pembobolan.
  • Hindari Rahasia: Jangan pernah menulis data sensitif secara langsung di Dockerfile.
  • Utamakan `COPY` daripada `ADD`: Pilih instruksi `COPY` yang lebih mudah diprediksi dan lebih aman.

Dengan menerapkan praktik-praktik ini, Anda dapat meningkatkan postur keamanan aplikasi yang dikontainerisasi secara signifikan!

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Praktik Terbaik Keamanan Dockerfile” gratis?

Ya — teks lengkap “Praktik Terbaik Keamanan Dockerfile” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Docker & DevOps Fundamentals, upgrade ke CoddyKit PRO. Kursus Docker & DevOps Fundamentals mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “Praktik Terbaik Keamanan Dockerfile”?

Terapkan langkah-langkah keamanan dalam Dockerfile untuk meminimalkan kerentanan dan mengurangi permukaan serangan. Kamu berlatih Docker & DevOps Fundamentals dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai Docker & DevOps Fundamentals?

Tidak diperlukan pengalaman sebelumnya. Docker & DevOps Fundamentals di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 3 dari 4.

Berapa lama pelajaran “Praktik Terbaik Keamanan Dockerfile” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran Docker & DevOps Fundamentals ini?

Ya. Setiap pelajaran Docker & DevOps Fundamentals menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. Build Multi-Tahap untuk Efisiensi
  2. Memanfaatkan Caching Build
  3. Praktik Terbaik Keamanan Dockerfile
  4. Meminimalkan Ukuran Image dengan Basis Slim dan Distroless
← Kembali ke Docker & DevOps Fundamentals