การสร้าง Docker Image ที่ปลอดภัย

Docker เบื้องต้น

Tim Sangster

Software Engineer @ DataCamp

ความปลอดภัยโดยธรรมชาติ

คอนเทนเนอร์ที่ถูกโจมตีอาจเข้าถึง host ได้หากหลุดออกจากชั้นการจำลองเสมือน

Docker เบื้องต้น

การสร้าง Image ที่ปลอดภัย

$$

ผู้โจมตีอาจหลุดออกจากคอนเทนเนอร์ได้ในบางกรณี

$$

มาตรการรักษาความปลอดภัยเพิ่มเติมช่วยลดความเสี่ยงนี้ได้

$$

มีความสำคัญมากขึ้นเมื่อเปิดให้คอนเทนเนอร์เข้าถึงอินเทอร์เน็ต

Docker เบื้องต้น

Image จากแหล่งที่เชื่อถือได้

การสร้าง Image ที่ปลอดภัย -> เริ่มจาก Image ที่มาจากแหล่งที่เชื่อถือได้

ตัวกรองของ Docker Hub:

Docker Hub มีตัวกรอง Trusted Content สามประเภท ได้แก่ Docker Official Images, Verified Publisher images และ Sponsored OSS images

Docker เบื้องต้น

อัปเดตซอฟต์แวร์อยู่เสมอ

แม้แต่ Ubuntu image ที่ได้รับความนิยมสูงมาก ก็เพิ่งอัปเดตเมื่อ 14 วันที่ผ่านมา mariaDB image ที่ได้รับความนิยมสูงเช่นกัน อัปเดตครั้งล่าสุดเมื่อกว่าหนึ่งเดือนที่แล้ว

Docker เบื้องต้น

ทำให้ Image มีขนาดเล็กที่สุด

การติดตั้งแพ็กเกจที่ไม่จำเป็นทำให้ความปลอดภัยลดลง

Ubuntu พร้อม:

  • Python2.7
  • Python3.11
  • Java default-jre
  • Java openjdk-11
  • Java openjdk-8
  • Airflow
  • แอปพลิเคชัน pipeline ของเรา

การติดตั้งเฉพาะแพ็กเกจที่จำเป็นช่วยเพิ่มความปลอดภัย

Ubuntu พร้อม:

  • Python3.11
  • แอปพลิเคชัน pipeline ของเรา
Docker เบื้องต้น

อย่ารันแอปพลิเคชันในฐานะ root

การให้สิทธิ์ root ใน Image ขัดต่อหลักการอัปเดตและลด Image ให้มีขนาดเล็ก

ควรกำหนดให้คอนเทนเนอร์เริ่มทำงานด้วยผู้ใช้ที่มีสิทธิ์จำกัดแทน:

FROM ubuntu # User is set to root by default.
RUN apt-get update
RUN apt-get install python3
USER repl # We switch the user after installing what we need for our use-case.
CMD python3 pipeline.py
Docker เบื้องต้น

มาฝึกกันเถอะ!

Docker เบื้องต้น

Preparing Video For Download...