0Pricing
Cyber Security Academy · บทเรียน

ความปลอดภัยของพ็อดและนโยบายเครือข่าย

แยกเวิร์กโหลดออกจากกัน

ความปลอดภัยของพ็อดและนโยบายเครือข่าย เป็นบทเรียน Cyber Security Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Cyber Security Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Cyber Security Academy มีบทเรียนทั้งหมด 4 บทเรียน

การแยกเวิร์กโหลด

การควบคุมสองประการช่วยจำกัดสิ่งที่พ็อดที่ถูกเจาะระบบสามารถทำได้ ได้แก่ การรักษาความปลอดภัยของพ็อด ซึ่งจำกัดสิทธิ์ของพ็อด และ นโยบายเครือข่าย ซึ่งจำกัดว่าพ็อดใดสามารถสื่อสารระหว่างกันได้ เมื่อนำมาใช้ร่วมกัน จะช่วยจำกัดขอบเขตความเสียหาย

  • การรักษาความปลอดภัยของพ็อดช่วยป้องกันการหลบหนีไปยังโหนด
  • นโยบายเครือข่ายช่วยป้องกันการแพร่ขยายการโจมตีข้ามพ็อด

การตั้งค่าพ็อดที่เป็นอันตราย

ฟิลด์หลายรายการในข้อกำหนดพ็อดจะเพิ่มความเสี่ยงอย่างมากหากอนุญาตให้ใช้

  • privileged: true ให้สิทธิ์เข้าถึงโฮสต์ได้เกือบทั้งหมด
  • hostPID, hostNetwork, hostIPC ทำลายการแยกเนมสเปซ
  • โวลุม hostPath จะเมาต์ไดเรกทอรีของโหนด
  • ความสามารถเพิ่มเติม เช่น SYS_ADMIN เปิดทางให้หลบหนีได้
  • ทำงานในฐานะผู้ใช้รูท (runAsUser: 0)

การตรวจรับความปลอดภัยของพ็อด

การตรวจรับความปลอดภัยของพ็อด (PSA) เข้ามาแทนที่ PodSecurityPolicy โดยบังคับใช้มาตรฐานในตัวสามระดับต่อเนมสเปซ

  • สิทธิ์พิเศษ: ไม่จำกัดสิทธิ์ (ควรหลีกเลี่ยงสำหรับเวิร์กโหลด)
  • พื้นฐาน: บล็อกการยกระดับสิทธิ์ที่ทราบกันดี
  • จำกัด: แนวปฏิบัติที่รัดกุมที่สุด (ไม่ใช้รูท ไม่มีสิทธิ์พิเศษ และตัดความสามารถที่ไม่จำเป็น)
# Enforce the restricted standard on a namespace
kubectl label namespace prod \
  pod-security.kubernetes.io/enforce=restricted

securityContext ที่เสริมความแข็งแกร่ง

กำหนดสิทธิ์เท่าที่จำเป็นในระดับพ็อดและคอนเทนเนอร์ด้วย securityContext

  • ทำงานในฐานะผู้ใช้ที่ไม่ใช่รูท และใช้ระบบไฟล์รูทแบบอ่านอย่างเดียว
  • ตัดความสามารถของ Linux ทั้งหมดออก แล้วเพิ่มกลับเฉพาะความสามารถที่จำเป็น
  • ไม่อนุญาตให้ยกระดับสิทธิ์
# securityContext fields (YAML)
# runAsNonRoot: true
# readOnlyRootFilesystem: true
# allowPrivilegeEscalation: false
# capabilities: drop: [ALL]
kubectl apply -f hardened-deploy.yaml

นอกเหนือจากมาตรฐาน: กลไกนโยบาย

หากต้องการกฎที่ละเอียดกว่า PSA ตัวควบคุมการอนุมัติจะบังคับใช้นโยบายแบบกำหนดเอง

  • OPA Gatekeeper ประเมินข้อจำกัดของ Rego
  • Kyverno ใช้นโยบาย YAML และสามารถแก้ไขข้อมูลพร้อมกับตรวจสอบได้

เครื่องมือเหล่านี้สามารถห้ามใช้ hostPath บังคับให้อิมเมจมีลายเซ็น หรือบังคับใช้ป้ายกำกับทั่วทั้งคลัสเตอร์ได้

# Apply a Kyverno policy that disallows privileged pods
kubectl apply -f disallow-privileged.yaml

เครือข่ายที่เปิดโดยค่าเริ่มต้น

โดยค่าเริ่มต้น พ็อดทั้งหมดสามารถเข้าถึงพ็อดอื่นทั้งหมดในทุกเนมสเปซได้ จะไม่มีการแบ่งส่วนจนกว่าคุณจะเพิ่มนโยบายเครือข่าย เครือข่ายแบบแบนนี้เป็นเหตุผลที่พ็อดเพียงพ็อดเดียวที่ถูกเจาะระบบสามารถสแกนและโจมตีทั้งคลัสเตอร์ได้

# From a pod, the flat network lets you reach any service
curl http://internal-db.prod.svc.cluster.local:5432

พื้นฐานนโยบายเครือข่าย

นโยบายเครือข่ายคือกฎในระดับเนมสเปซที่ใช้เลือกพ็อดและอนุญาตการรับส่งข้อมูลขาเข้าและขาออกบางประเภท นโยบายเหล่านี้มีผลสะสม กล่าวคือ เมื่อนำนโยบายใด ๆ ไปใช้กับพ็อด พ็อดนั้นจะเปลี่ยนเป็นปฏิเสธทั้งหมดโดยค่าเริ่มต้นในทิศทางที่นโยบายครอบคลุม

  • ตัวคัดเลือกจะจับคู่พ็อดตามป้ายกำกับ
  • กฎจะอนุญาตการรับส่งข้อมูลจากหรือไปยังพ็อด เนมสเปซ หรือช่วง CIDR ที่ระบุ
  • ต้องใช้ CNI ที่รองรับนโยบาย เช่น Calico หรือ Cilium

ปฏิเสธทั้งหมดโดยค่าเริ่มต้น แล้วจึงอนุญาต

รูปแบบที่แนะนำคือกำหนดพื้นฐานให้ปฏิเสธทั้งหมดโดยค่าเริ่มต้นสำหรับแต่ละเนมสเปซ จากนั้นจึงเพิ่มกฎอนุญาตอย่างชัดเจนสำหรับการรับส่งข้อมูลที่จำเป็น

# Default-deny all ingress in a namespace (YAML)
# kind: NetworkPolicy spec: podSelector: {} policyTypes: [Ingress]
kubectl apply -f default-deny.yaml

# Then allow only frontend -> backend
kubectl apply -f allow-frontend.yaml

การควบคุมทราฟฟิกขาออกและการบล็อกเมทาดาทา

นโยบายทราฟฟิกขาออกมีความสำคัญไม่แพ้นโยบายทราฟฟิกขาเข้า

  • จำกัดปลายทางภายนอกที่พ็อดสามารถเข้าถึงได้ (ช่วยจำกัดการลักลอบนำข้อมูลออกและการควบคุมสั่งการ)
  • บล็อก IP เมทาดาทาของคลาวด์ 169.254.169.254 จากพ็อด เพื่อป้องกันการขโมยข้อมูลรับรองของโหนด
  • จำกัด DNS และทราฟฟิกภายในระหว่างบริการ

การป้องกันขณะทำงาน

นโยบายแบบคงที่ควรใช้ร่วมกับการตรวจจับขณะทำงาน

  • Falco แจ้งเตือนเมื่อพบการเรียกระบบที่น่าสงสัย เช่น การใช้เชลล์ในคอนเทนเนอร์หรือการเมาต์ข้อมูลสำคัญ
  • โพรไฟล์ seccomp จำกัดการเรียกระบบที่คอนเทนเนอร์สามารถทำได้
  • AppArmor และ SELinux เพิ่มการควบคุมการเข้าถึงแบบบังคับบนโหนด
# Apply the runtime/default seccomp profile (securityContext)
# seccompProfile: type: RuntimeDefault
kubectl apply -f seccomp-deploy.yaml

การทดสอบการแยก

เมื่อตรวจสอบการจำกัดขอบเขต ให้ลองเชื่อมต่อข้ามพ็อดและใช้กลไกพื้นฐานสำหรับการหลบหนีจากพ็อดทดสอบ เพื่อยืนยันว่านโยบายบล็อกการกระทำเหล่านั้น ดำเนินการในเนมสเปซที่ควบคุมไว้ และลบพ็อดทดสอบออกภายหลัง

รายงานพ็อดใด ๆ ที่ทำงานด้วยสิทธิ์พิเศษ หรือเนมสเปซใด ๆ ที่ไม่มีการปฏิเสธทั้งหมดโดยค่าเริ่มต้น พร้อมการแก้ไขแมนนิเฟสต์ที่ตรงจุด

ตรวจสอบความเข้าใจ

ยืนยันความรู้เกี่ยวกับการแยกเวิร์กโหลดของคุณ

สรุปทบทวน

คุณได้เรียนรู้วิธีแยกเวิร์กโหลด

  • การตรวจรับความปลอดภัยของพ็อด (ระดับจำกัด) และ securityContext ช่วยป้องกันการหลบหนี
  • Gatekeeper และ Kyverno บังคับใช้นโยบายการอนุมัติแบบกำหนดเอง
  • เครือข่ายเปิดโดยค่าเริ่มต้น ให้ใช้การปฏิเสธทั้งหมดโดยค่าเริ่มต้น แล้วเพิ่มการอนุญาตอย่างชัดเจน
  • กฎทราฟฟิกขาออก การบล็อกเมทาดาทา และ Falco ช่วยเสริมการป้องกันให้รัดกุมยิ่งขึ้น

ถัดไป: การรักษาความปลอดภัยของห่วงโซ่อุปทานและข้อมูลลับ

คำถามที่พบบ่อย

บทเรียน “ความปลอดภัยของพ็อดและนโยบายเครือข่าย” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “ความปลอดภัยของพ็อดและนโยบายเครือข่าย” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Cyber Security Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Cyber Security Academy มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “ความปลอดภัยของพ็อดและนโยบายเครือข่าย”

แยกเวิร์กโหลดออกจากกัน คุณปฏิบัติ Cyber Security Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

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

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

บทเรียน “ความปลอดภัยของพ็อดและนโยบายเครือข่าย” ใช้เวลานานแค่ไหน

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

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

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

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

  1. แบบจำลองภัยคุกคาม Kubernetes
  2. RBAC และบัญชีบริการ
  3. ความปลอดภัยของพ็อดและนโยบายเครือข่าย
  4. การรักษาความปลอดภัยห่วงโซ่อุปทานและข้อมูลลับ
← กลับไปที่ Cyber Security Academy