0Pricing
Docker & DevOps Fundamentals · Pelajaran

Keamanan Container Saat Berjalan

Terapkan praktik terbaik untuk mengamankan container saat berjalan, termasuk hak istimewa pengguna dan batas sumber daya.

Keamanan Container Saat Berjalan adalah pelajaran Docker & DevOps Fundamentals gratis di CoddyKit. Ini adalah pelajaran 2 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.

Dasar-Dasar Keamanan Runtime

Selamat datang di Keamanan Container Saat Runtime! Membangun image yang aman sangat penting, tetapi apa yang terjadi setelah container Anda berjalan?

Pelajaran ini berfokus pada praktik terbaik untuk melindungi aplikasi Anda selama aktif, dengan membatasi potensi kerusakan akibat kerentanan atau serangan.

Keamanan Container Saat Berjalan — ilustrasi 1

Prinsip Hak Akses Minimum

Konsep keamanan yang mendasar adalah Prinsip Hak Akses Minimum. Artinya, berikan kepada suatu entitas (seperti container atau pengguna) hanya izin yang mutlak diperlukan untuk menjalankan fungsinya, dan tidak lebih.

Penerapan prinsip ini mengurangi permukaan serangan dan membatasi dampak jika sebuah container berhasil disusupi.

Hindari Menjalankan sebagai root

Secara default, proses di dalam container Docker berjalan sebagai pengguna root, yang memiliki hak administratif penuh di dalam container.

  • Risiko: Jika penyerang mengambil alih container dengan hak istimewa root, mereka berpotensi mengeksploitasi kerentanan pada daemon Docker atau kernel untuk memperoleh akses root pada sistem host.
  • Praktik Terbaik: Selalu jalankan proses container sebagai pengguna non-root.

Menjalankan sebagai Pengguna Non-root

Anda dapat menentukan pengguna (berdasarkan nama atau UID) untuk proses container menggunakan flag --user bersama docker run. Di sini, kita menjalankan perintah id dalam container Alpine sebagai pengguna 1000.

Jika pengguna 1000 tidak ada, Docker tetap akan menggunakan UID tersebut.

docker run --rm -it --user 1000 alpine id

Memahami Kapabilitas Linux

Sistem Linux tradisional memiliki pengguna root dengan model "semua atau tidak sama sekali". Kapabilitas Linux memecah hak istimewa root yang kuat menjadi unit-unit yang lebih kecil dan terpisah.

Dengan demikian, suatu proses hanya dapat memiliki kemampuan khusus yang menyerupai hak root yang dibutuhkannya (misalnya, mengikat port rendah atau mengakses jaringan mentah) tanpa memperoleh hak root penuh.

Menghapus Kapabilitas yang Tidak Diperlukan

Secara default, container Docker berjalan dengan banyak kapabilitas. Anda dapat menghapus kapabilitas yang tidak diperlukan menggunakan --cap-drop untuk semakin membatasi hal-hal yang dapat dilakukan container.

Di sini, kita menghapus kapabilitas NET_RAW. Perintah ping, yang memerlukan NET_RAW, kemudian akan gagal dan menunjukkan pembatasan tersebut.

docker run --rm -it --cap-drop=NET_RAW alpine ping -c 1 localhost || echo "Ping failed: NET_RAW capability dropped!"

Mengendalikan Sumber Daya Container

Container berbagi kernel dan sumber daya host. Penggunaan sumber daya yang tidak terkendali oleh satu container dapat menyebabkan Penolakan Layanan (DoS) bagi container lain atau bahkan bagi host itu sendiri.

  • Batas CPU: Mencegah container menguasai seluruh siklus CPU.
  • Batas Memori: Mencegah container menghabiskan seluruh RAM yang tersedia sehingga sistem tidak stabil.

Menerapkan Batas Sumber Daya

Anda dapat menetapkan batas CPU dan memori secara langsung dengan docker run. Contoh ini membatasi memori hingga 128MB dan penggunaan CPU hingga 0.5 (setengah dari satu inti CPU).

Dengan demikian, container Anda beroperasi dengan baik dan tidak membuat proses lain kekurangan sumber daya.

docker run --rm -it --memory="128m" --cpus="0.5" alpine sh -c "echo 'Container running with limited resources.' && free -h"

Sistem Berkas Hanya-Baca

Banyak aplikasi tidak perlu menulis ke sistem berkas root setelah dimulai. Dengan menjadikan sistem berkas hanya-baca, Anda memperoleh manfaat keamanan yang signifikan:

  • Mencegah Perubahan Tidak Sah: Penyerang tidak dapat mengubah berkas yang ada atau menulis berkas berbahaya baru.
  • Membatasi Persistensi: Setiap perubahan yang dibuat bersifat sementara dan hilang saat container dimulai ulang.
  • Menegakkan Imutabilitas: Mendorong desain yang menjadikan container dapat dibuang dan konfigurasinya berada di luar container.

Men-deploy Container Hanya-Baca

Gunakan flag --read-only saat menjalankan container. Setiap upaya untuk menulis ke sistem berkas container (di luar volume yang dipasang secara eksplisit) akan gagal.

Coba buat sebuah berkas dalam container hanya-baca ini:

docker run --rm -it --read-only alpine sh -c "touch /test.txt || echo 'Error: Cannot write to read-only filesystem!'"

Pemeriksaan Keamanan Runtime

Manakah dari pilihan berikut yang merupakan praktik baik untuk mengamankan container saat runtime?

Rangkuman Keamanan Runtime

Kerja bagus! Anda telah mempelajari cara meningkatkan keamanan container saat sedang berjalan:

  • Hak Akses Minimum: Berikan hanya izin yang diperlukan.
  • Pengguna Non-root: Hindari menjalankan proses sebagai root.
  • Kapabilitas: Hapus kapabilitas Linux yang tidak diperlukan.
  • Batas Sumber Daya: Kendalikan penggunaan CPU dan memori.
  • Hanya-Baca: Jadikan sistem berkas tidak dapat diubah untuk mencegah penulisan.

Praktik-praktik ini secara signifikan mengurangi permukaan serangan dan dampak dari potensi penyusupan. Teruslah berlatih!

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Keamanan Container Saat Berjalan” gratis?

Ya — teks lengkap “Keamanan Container Saat Berjalan” 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 “Keamanan Container Saat Berjalan”?

Terapkan praktik terbaik untuk mengamankan container saat berjalan, termasuk hak istimewa pengguna dan batas sumber daya. 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 2 dari 4.

Berapa lama pelajaran “Keamanan Container Saat Berjalan” 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. Pemindaian Keamanan Image Container
  2. Keamanan Container Saat Berjalan
  3. Manajemen Secret & RBAC
  4. Kebijakan Jaringan dan Jaringan dengan Hak Minimum
← Kembali ke Docker & DevOps Fundamentals