Sreenivas Makam ผู้ดำรงตำแหน่ง Senior Engineering Manager แห่ง Cisco Systems และผู้เป็น Docker Captain ได้เผยแพร่สไลด์ Docker Security Overview เอาไว้ ซึ่งท้ายสไลด์นั้นมีการสรุป 10 แนวทางการใช้งาน Docker อย่างปลอดภัยเอาไว้ด้วย ทางทีมงาน TechTalkThai เห็นว่าเป็นเนื้อหาที่มีประโยชน์ จึงขอนำมาสรุปให้ได้อ่านกันดังนี้ครับ
- แยกกลุ่ม Container สำหรับแต่ละ Microservices ออกจากกัน เพื่อให้ขนาดของ Container Image เล็กอยู่เสมอ
- อย่าเปิดให้มีการ SSH ตรงเข้าไปยัง Container เด็ดขาด แต่ให้ใช้คำสั่ง docker exec แทน
- ใช้ Container Image ที่ได้รับการ Sign แล้ว จะได้มั่นใจว่าปลอดภัยขึ้น
- ทำการ Mount Device และ Volume ต่างๆ ในแบบ Read-only เท่านั้น
- เรียกใช้งาน Application ด้วยสิทธิ์อื่นๆ ที่ไม่ใช่ Root เท่านั้น แต่หากจำเป็นต้องใช้ Root จริงๆ ก็ให้ใช้แบบจำกัด Operation ที่จะสามารถเรียกใช้ได้ด้วยการใช้ Capabilities, Seccomp, SELinux/AppArmor
- หมั่นอัปเดต OS ให้ปลอดภัยอยู่เสมอ และแนะนำให้ใช้ OS ที่ถูกออกแบบมาสำหรับใช้ทำ Container ด้วย เพราะ OS เหล่านี้มักจะมีระบบ Push Update แบบอัตโนมัติมาให้ในตัว
- เก็บ Root Key และ Passphrase เอาไว้ในที่ปลอดภัย ห้ามเอาไปใส่ไว้ใน Dockerfile เด็ดขาด โดยหลังจากนี้ Docker มีแผนที่จะพัฒนาระบบจัดการ Key เอาไว้บน Docker Datacenter ให้ได้ใช้กันด้วย
- ใช้ Docker Official Image เพราะ Docker เองนั้นจะตรวจสอบทั้งในแง่ของประสิทธิภาพและความปลอดภัยของ Image เหล่านี้อยู่เสมอ
- ใช้เครื่องมือ Container Security Scanning เพื่อตรวจสอบหาช่องโหว่ที่อาจปรากฎบนระบบ
- ใช้ TLS เพื่อเข้าถึง Docker Daemon จากระยะไกลเสมอ
สำหรับสไลด์ฉบับเต็ม สามารถศึกษาได้จากข้างล่างนี้เลยครับ อ่านสนุกดี มีประเด็นอื่นนอกเหนือจาก 10 ข้อนี้ด้วยเช่นเรื่องของ Namespace