มาตรฐานความปลอดภัยของ Pod
ใช้มาตรฐานความปลอดภัยของ Pod เพื่อบังคับใช้แนวทางปฏิบัติด้านความปลอดภัยที่ดีที่สุดในระดับ Pod
มาตรฐานความปลอดภัยของ Pod เป็นบทเรียน Kubernetes Basics ฟรีบน CoddyKit นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Kubernetes Basics และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Kubernetes Basics มีบทเรียนทั้งหมด 4 บทเรียน
PSS คืออะไร
มาตรฐานความปลอดภัยของพ็อดคูเบอร์เนทีส (PSS) คือชุดแนวทางและการควบคุมสำหรับบังคับใช้แนวปฏิบัติที่ดีที่สุดด้านความปลอดภัยกับพ็อดของคุณ
มาตรฐานเหล่านี้ช่วยปกป้องคลัสเตอร์ของคุณจากช่องโหว่ด้านความปลอดภัยทั่วไปและการโจมตีเพื่อยกระดับสิทธิ์ โดยจำกัดสิ่งที่พ็อดสามารถทำได้
ลองนึกภาพว่าสิ่งเหล่านี้คือรายการตรวจสอบความปลอดภัยสำหรับพ็อดของคุณ
ระดับความปลอดภัยสามระดับ
PSS กำหนดระดับความปลอดภัยที่แตกต่างกันสามระดับ โดยแต่ละระดับให้การป้องกันในระดับที่ต่างกัน:
- Privileged: ไม่จำกัด มีความปลอดภัยน้อยที่สุด
- Baseline: ป้องกันการยกระดับสิทธิ์ที่ทราบกัน
- Restricted: บังคับใช้แนวปฏิบัติด้านความปลอดภัยที่รัดกุม
ระดับเหล่านี้เป็นลำดับสะสม หมายความว่า Restricted รวมการป้องกันทั้งหมดของ Baseline และ Baseline รวมทั้งหมดของ Privileged (หรือกล่าวอีกอย่างคือไม่มีข้อจำกัด)
Privileged: การเข้าถึงแบบไม่จำกัด
ระดับ PSS แบบ Privileged ใช้นโยบายความปลอดภัยที่ไม่มีข้อจำกัด
หมายความว่าพ็อดที่ทำงานภายใต้นโยบายนี้สามารถขอความสามารถใด ๆ และเข้าถึงทรัพยากรกับเนมสเปซของโฮสต์ได้อย่างเต็มที่ คล้ายกับการทำงานในฐานะ root บนเครื่องโฮสต์
โดยทั่วไปถือว่าไม่ปลอดภัยอย่างยิ่ง และควรใช้เฉพาะกับงานระดับระบบที่จำเป็นต้องมีการเข้าถึงเช่นนี้อย่างแท้จริง
Baseline: ป้องกันการโจมตี
ระดับ PSS แบบ Baseline มุ่งป้องกันการยกระดับสิทธิ์ที่ทราบกัน
เป็นจุดเริ่มต้นที่ดีสำหรับแอปพลิเคชันส่วนใหญ่ที่ผู้ใช้กำหนดเอง
ข้อจำกัดสำคัญมีดังนี้:
- ไม่มีคอนเทนเนอร์แบบมีสิทธิ์สูง
- ไม่มีโวลุ่ม hostPath (ยกเว้นประเภทที่ปลอดภัยบางประเภท)
- ไม่มีการใช้เครือข่ายของโฮสต์หรือใช้เนมสเปซ PID ร่วมกัน
- จำกัดความสามารถ
ระดับนี้ช่วยลดผลกระทบจากช่องทางการโจมตีทั่วไปได้มากมาย
Restricted: ความปลอดภัยที่รัดกุม
ระดับ PSS แบบ Restricted บังคับใช้แนวปฏิบัติด้านความปลอดภัยที่รัดกุม
ระดับนี้ออกแบบมาสำหรับแอปพลิเคชันที่มีความอ่อนไหวด้านความปลอดภัยสูง และกำหนดให้พ็อดทำงานด้วยสิทธิ์น้อยที่สุด
นอกเหนือจากข้อจำกัดของ Baseline แล้ว Restricted ยังบังคับใช้ข้อกำหนดต่อไปนี้:
- ทำงานในฐานะผู้ใช้ที่ไม่ใช่ root
- นำความสามารถของ Linux ทั้งหมดออก และเพิ่มกลับเฉพาะความสามารถที่จำเป็น
- กำหนดให้ใช้โปรไฟล์
seccompและAppArmor
นี่คือระดับ PSS ที่ปลอดภัยและเข้มงวดที่สุด
การบังคับใช้ PSS ด้วย Admission
Pod Security Standards บังคับใช้ผ่านฟีเจอร์ของ Kubernetes ที่เรียกว่า Pod Security Admission
ตัวควบคุมการอนุญาตนี้จะดักจับคำขอสร้าง Pod และตรวจสอบคำขอดังกล่าวกับระดับ PSS ที่กำหนดค่าไว้สำหรับเนมสเปซของ Pod
คุณนำระดับ PSS ไปใช้กับเนมสเปซได้โดยเพิ่มป้ายกำกับเฉพาะให้กับเนมสเปซ ตัวอย่างเช่น:
kubectl label namespace <namespace-name> pod-security.kubernetes.io/enforce=restrictedการควบคุมความปลอดภัยของ Pod
เพื่อให้ Pod ของคุณสอดคล้องกับ PSS คุณมักจะใช้ฟิลด์ securityContext ในคำจำกัดความของ Pod
ฟิลด์นี้ช่วยให้คุณกำหนดการตั้งค่าสิทธิ์และการควบคุมการเข้าถึงสำหรับ Pod หรือคอนเทนเนอร์แต่ละรายการภายใน Pod ได้
การตั้งค่าที่ใช้บ่อย ได้แก่:
runAsUser: ระบุ ID ผู้ใช้สำหรับกระบวนการของคอนเทนเนอร์allowPrivilegeEscalation: ป้องกันไม่ให้กระบวนการได้รับสิทธิ์มากกว่ากระบวนการแม่capabilities: จัดการความสามารถของ Linux
ตัวอย่าง Pod ที่ไม่ปลอดภัย
มาดูคำจำกัดความของ Pod ที่จะละเมิด PSS ระดับ Baseline เนื่องจากบริบทด้านความปลอดภัยของ Pod กัน ตัวอย่างนี้โดยทั่วไปถือว่าไม่ปลอดภัย:
apiVersion: v1
kind: Pod
metadata:
name: unsafe-pod
spec:
containers:
- name: my-container
image: nginx
securityContext:
privileged: true
# This allows the container to run with root capabilities
# and access host devices directly.
# Violates Baseline PSS.ตัวอย่าง Pod ที่สอดคล้องกับ Baseline
นี่คือตัวอย่างการกำหนด Pod ที่สอดคล้องกับระดับ PSS แบบ Baseline โปรดสังเกตว่าไม่มี privileged: true และข้อจำกัดอื่น ๆ
หากต้องการให้สอดคล้องกับระดับ Restricted ที่เข้มงวดยิ่งขึ้น คุณจะต้องเพิ่ม runAsNonRoot: true, readOnlyRootFilesystem: true และลบความสามารถทั้งหมดออก
apiVersion: v1
kind: Pod
metadata:
name: safe-pod
spec:
containers:
- name: my-container
image: nginx
securityContext:
allowPrivilegeEscalation: false
capabilities:
drop:
- ALL
# This Pod runs with minimal privileges and
# adheres to the Baseline PSS.ตรวจสอบ PSS อย่างรวดเร็ว
ข้อใดต่อไปนี้เป็นข้อความที่ถูกต้องเกี่ยวกับ Pod Security Standards (PSS)
สรุป: Pod Security Standards
ในบทเรียนนี้ คุณได้เรียนรู้เกี่ยวกับ Pod Security Standards (PSS) ของ Kubernetes และความสำคัญของมาตรฐานเหล่านี้ต่อการรักษาความปลอดภัยของคลัสเตอร์
- PSS กำหนดไว้สามระดับ ได้แก่ Privileged, Baseline และ Restricted
- Baseline ป้องกันการยกระดับสิทธิ์ที่ทราบกัน เหมาะสำหรับแอปส่วนใหญ่
- Restricted บังคับใช้การรักษาความปลอดภัยที่รัดกุม โดยกำหนดให้ใช้สิทธิ์น้อยที่สุด
- ฟิลด์
securityContextช่วยกำหนดค่า Pod ให้สอดคล้องกับ PSS
การนำ PSS มาใช้เป็นขั้นตอนสำคัญในการสร้างสภาพแวดล้อม Kubernetes ที่ปลอดภัยยิ่งขึ้น
คำถามที่พบบ่อย
บทเรียน “มาตรฐานความปลอดภัยของ Pod” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “มาตรฐานความปลอดภัยของ Pod” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Kubernetes Basics ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Kubernetes Basics มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “มาตรฐานความปลอดภัยของ Pod”
ใช้มาตรฐานความปลอดภัยของ Pod เพื่อบังคับใช้แนวทางปฏิบัติด้านความปลอดภัยที่ดีที่สุดในระดับ Pod คุณปฏิบัติ Kubernetes Basics ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Kubernetes Basics หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน Kubernetes Basics บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน
บทเรียน “มาตรฐานความปลอดภัยของ Pod” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน Kubernetes Basics นี้ได้ไหม
ได้ บทเรียน Kubernetes Basics ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- การควบคุมการเข้าถึงตามบทบาท (RBAC)
- นโยบายเครือข่ายสำหรับการแยกส่วน
- มาตรฐานความปลอดภัยของ Pod
- บัญชีบริการและอัตลักษณ์ของเวิร์กโหลด