Asas Docker dan DevOps · Pelajaran

Keselamatan Kontena Semasa Pelaksanaan

Laksanakan amalan terbaik untuk melindungi kontena semasa pelaksanaan, termasuk keistimewaan pengguna dan had sumber.

Pelajaran 2 daripada 412 langkah

Keselamatan Kontena Semasa Pelaksanaan ialah pelajaran Asas Docker dan DevOps percuma di CoddyKit. Ini ialah pelajaran 2 daripada 4. Sebanyak 3 pelajaran dalam laluan pembelajaran ini boleh dibaca sepenuhnya secara percuma — selepas itu, CoddyKit PRO membuka akses kepada semua pelajaran, serta latihan praktikal dengan penyunting kod terbina dalam dan tutor kecerdasan buatan yang tersedia 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran Asas Docker dan DevOps, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus Asas Docker dan DevOps merangkumi sejumlah 4 pelajaran.

Asas Keselamatan Masa Jalan

Selamat datang ke Keselamatan Bekas Masa Jalan! Membina imej yang selamat amat penting, tetapi apakah yang berlaku selepas bekas anda berjalan?

Pelajaran ini memfokuskan amalan terbaik untuk melindungi aplikasi anda semasa ia aktif, sekali gus mengehadkan kerosakan yang mungkin berlaku akibat kerentanan atau serangan.

Keselamatan Kontena Semasa Pelaksanaan — ilustrasi 1

Prinsip Keistimewaan Minimum

Konsep keselamatan asas ialah Prinsip Keistimewaan Minimum. Maksudnya ialah memberikan entiti (seperti bekas atau pengguna) hanya keizinan yang benar-benar diperlukan untuk menjalankan fungsinya, dan tidak lebih daripada itu.

Penerapan prinsip ini mengurangkan permukaan serangan dan mengehadkan kesan jika sesuatu bekas terjejas.

Elakkan Menjalankan sebagai Root

Secara lalai, proses dalam bekas Docker berjalan sebagai pengguna root, yang mempunyai keistimewaan pentadbiran penuh dalam bekas tersebut.

  • Risiko: Jika penyerang mendapat kawalan terhadap bekas yang mempunyai keistimewaan root, mereka berpotensi mengeksploitasi kerentanan dalam daemon Docker atau kernel untuk mendapatkan akses root pada sistem hos.
  • Amalan Terbaik: Sentiasa jalankan proses bekas anda sebagai pengguna bukan root.

Jalankan sebagai Pengguna Bukan Root

Anda boleh menentukan pengguna (mengikut nama atau UID) untuk proses bekas menggunakan bendera --user bersama docker run. Di sini, kami menjalankan perintah id dalam bekas Alpine sebagai pengguna 1000.

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

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

Memahami Keupayaan Linux

Sistem Linux tradisional mempunyai pengguna root yang bersifat “semua atau tiada”. Keupayaan Linux memecahkan keistimewaan root yang berkuasa kepada unit-unit kecil yang berasingan.

Hal ini membolehkan sesuatu proses hanya mempunyai kuasa khusus seperti root yang diperlukan (contohnya, mengikat port rendah dan mengakses rangkaian mentah) tanpa mempunyai akses root penuh.

Gugurkan Keupayaan yang Tidak Diperlukan

Secara lalai, bekas Docker berjalan dengan set keupayaan yang besar. Anda boleh menggugurkan keupayaan yang tidak diperlukan menggunakan --cap-drop untuk mengehadkan lagi perkara yang boleh dilakukan oleh bekas.

Di sini, kami menggugurkan keupayaan NET_RAW. Perintah ping, yang memerlukan NET_RAW, kemudiannya akan gagal, sekali gus menunjukkan sekatan tersebut.

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

Kawal Sumber Bekas

Bekas berkongsi kernel dan sumber hos. Penggunaan sumber yang tidak terkawal oleh satu bekas boleh menyebabkan Penafian Perkhidmatan (DoS) terhadap bekas lain atau hos itu sendiri.

  • Had CPU: Menghalang bekas daripada menggunakan semua kitaran CPU.
  • Had Memori: Menghalang bekas daripada menggunakan semua RAM yang tersedia, sekali gus mencegah ketidakstabilan sistem.

Laksanakan Had Sumber

Anda boleh menetapkan had CPU dan memori secara langsung dengan docker run. Contoh ini mengehadkan memori kepada 128MB dan penggunaan CPU kepada 0.5 (separuh daripada satu teras CPU).

Ini memastikan bekas anda beroperasi dengan baik dan tidak menyebabkan proses lain kekurangan sumber.

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

Sistem Fail Baca Sahaja

Banyak aplikasi tidak perlu menulis ke sistem fail akarnya selepas dimulakan. Dengan menjadikan sistem fail baca sahaja, anda memperoleh manfaat keselamatan yang ketara:

  • Mencegah Pengubahan: Penyerang tidak boleh mengubah suai fail sedia ada atau menulis fail berniat jahat yang baharu.
  • Mengehadkan Kegigihan: Sebarang perubahan yang dibuat adalah sementara dan hilang apabila bekas dimulakan semula.
  • Menguatkuasakan Ketidakbolehubahan: Menggalakkan reka bentuk yang menjadikan bekas boleh dilupuskan dan konfigurasinya berada di luar bekas.

Gunakan Bekas Baca Sahaja

Gunakan bendera --read-only apabila menjalankan bekas. Sebarang percubaan untuk menulis ke sistem fail bekas (di luar volum yang dipasang secara jelas) akan gagal.

Cuba cipta fail dalam bekas baca sahaja ini:

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

Pemeriksaan Keselamatan Masa Jalan

Antara amalan berikut, yang manakah baik untuk melindungi bekas semasa masa jalan?

Imbas Kembali Keselamatan Masa Jalan

Syabas! Anda telah mempelajari cara meningkatkan keselamatan bekas semasa ia berjalan:

  • Keistimewaan Minimum: Berikan hanya keizinan yang diperlukan.
  • Pengguna Bukan Root: Elakkan menjalankan proses sebagai root.
  • Keupayaan: Gugurkan keupayaan Linux yang tidak diperlukan.
  • Had Sumber: Kawal penggunaan CPU dan memori.
  • Baca Sahaja: Jadikan sistem fail tidak boleh diubah untuk mencegah penulisan.

Amalan ini mengurangkan permukaan serangan dan kesan pencerobohan yang mungkin berlaku dengan ketara. Teruskan berlatih!

Percuma untuk bermula

Pelajari Asas Docker dan DevOps dengan tutor kecerdasan buatan — percuma

Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.

Kursus
12
Pelajaran
48

Soalan Lazim

Adakah pelajaran “Keselamatan Kontena Semasa Pelaksanaan” percuma?

Ya — sebanyak 3 pelajaran dalam laluan pembelajaran Asas Docker dan DevOps, termasuk “Keselamatan Kontena Semasa Pelaksanaan”, boleh dibaca sepenuhnya secara percuma di web ini. Selepas itu, CoddyKit PRO membuka akses kepada semua pelajaran, serta latihan interaktif dengan penyunting kod terbina dalam dan tutor kecerdasan buatan yang tersedia 24/7. Kursus Asas Docker dan DevOps merangkumi sejumlah 4 pelajaran.

Apakah yang akan saya pelajari dalam “Keselamatan Kontena Semasa Pelaksanaan”?

Laksanakan amalan terbaik untuk melindungi kontena semasa pelaksanaan, termasuk keistimewaan pengguna dan had sumber. Anda berlatih Asas Docker dan DevOps menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.

Adakah saya memerlukan pengalaman untuk memulakan Asas Docker dan DevOps?

Tiada pengalaman terdahulu diperlukan. Pembelajaran Asas Docker dan DevOps di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 2 daripada 4.

Berapa lamakah pelajaran “Keselamatan Kontena Semasa Pelaksanaan” diambil?

Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.

Bolehkah saya menulis dan menjalankan kod dalam pelajaran Asas Docker dan DevOps ini?

Ya. Setiap pelajaran Asas Docker dan DevOps menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.

Semua pelajaran dalam kursus ini

  1. Pengimbasan Keselamatan Imej Kontena
  2. Keselamatan Kontena Semasa Pelaksanaan
  3. Pengurusan Rahsia & RBAC
  4. Dasar Rangkaian dan Rangkaian Keistimewaan Minimum
← Kembali ke Asas Docker dan DevOps