0Pricing
DevOps Bootcamp · บทเรียน

มาตรฐานความปลอดภัยของ Pod

ใช้มาตรฐานความปลอดภัยของ Pod เพื่อบังคับใช้แนวทางปฏิบัติด้านความปลอดภัยที่ดีที่สุดในระดับ Pod

มาตรฐานความปลอดภัยของ Pod เป็นบทเรียน DevOps Bootcamp ฟรีบน CoddyKit นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน DevOps Bootcamp และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส DevOps Bootcamp มีบทเรียนทั้งหมด 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) และปลดล็อคส่วนที่เหลือของคอร์ส DevOps Bootcamp ให้อัปเกรดเป็น CoddyKit PRO คอร์ส DevOps Bootcamp มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “มาตรฐานความปลอดภัยของ Pod”

ใช้มาตรฐานความปลอดภัยของ Pod เพื่อบังคับใช้แนวทางปฏิบัติด้านความปลอดภัยที่ดีที่สุดในระดับ Pod คุณปฏิบัติ DevOps Bootcamp ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน DevOps Bootcamp หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน DevOps Bootcamp บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน

บทเรียน “มาตรฐานความปลอดภัยของ Pod” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน DevOps Bootcamp นี้ได้ไหม

ได้ บทเรียน DevOps Bootcamp ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. การควบคุมการเข้าถึงตามบทบาท (RBAC)
  2. นโยบายเครือข่ายสำหรับการแยกส่วน
  3. มาตรฐานความปลอดภัยของ Pod
  4. บัญชีบริการและอัตลักษณ์ของเวิร์กโหลด
← กลับไปที่ DevOps Bootcamp