Lộ trình
Cloud Native Computing FoundationAssociateTuần 2: Đào sâu dịch vụ cốt lõiBài 14 / 30

Ngày 14: Ôn tập tuần 2

Thời lượng: 45 phút
Mục tiêu: 2 nhiệm vụ chính
Tiến độ lộ trình
ckangày 14
hoàn thành14 / 30 bài
Bối cảnh bài học

Giảm attack surface Pod bằng SecurityContext, Linux identity, capabilities, seccomp, filesystem và Pod Security admission.

đọc hiểuthực hànhcheckpoint
Bài giảng hôm nay

Học hiểu, rồi mới thực hành

Giảm attack surface Pod bằng SecurityContext, Linux identity, capabilities, seccomp, filesystem và Pod Security admission.

Bắt đầu đọc bài giảng

Nhiệm vụ bài học hôm nay

  • Luyện lại toàn bộ Workloads & Scheduling
  • Làm 10 câu trắc nghiệm tự kiểm tra
Instructor walkthrough

Bài giảng chi tiết: từ bài toán đến bằng chứng

Scenario xuyên suốt

Một workload chạy root, privileged và mount hostPath chỉ để sửa lỗi permission; team không biết Pod Security profile đang áp dụng hay capability nào thực sự cần. Bài học chuyển security setting thành threat/control/evidence.

01Đọc bài toán

Xác định actor, workload, constraint và trạng thái cuối cần đạt.

02Vẽ luồng / boundary

Chỉ ra request, dependency, identity và failure domain trước khi chọn công cụ.

03Chọn và thực hành

Thay đổi nhỏ nhất trong lab cô lập; command nào cũng phải nói rõ nó kiểm tra điều gì.

04Kiểm chứng / recovery

Đối chiếu trạng thái thực tế, tạo một failure variant và ghi cách hoàn tác.

Cách nối lý thuyết với thực tế
  • runAsNonRoot/runAsUser/fsGroup ảnh hưởng process/file identity; image user, volume ownership và application behavior phải cùng được kiểm tra.
  • privileged, hostNetwork, hostPID, hostPath và added capabilities mở rộng node/cluster attack surface; drop ALL rồi add tối thiểu khi cần.
  • readOnlyRootFilesystem, allowPrivilegeEscalation=false và seccomp RuntimeDefault giảm risk nhưng có compatibility trade-off.
  • Pod Security Admission labels/profile (privileged/baseline/restricted) áp dụng theo namespace và có enforce/audit/warn behavior.

SecurityContext theo threat

Bắt đầu từ threat: container escape, host access, credential/file exposure hoặc privilege escalation. Sau đó chọn runAsNonRoot, drop capabilities, seccomp, read-only rootfs, no privilege escalation và namespace policy. Nếu app lỗi permission, sửa user/fsGroup/volume mode hoặc capability tối thiểu; không bật privileged để che symptom.

Admission và evidence

Pod Security profile có thể warn/audit/enforce theo namespace. YAML desired state chưa đủ; kiểm tra admission result, effective Pod securityContext, uid/capability/mount và app behavior.

Bài tập

Deploy secure Pod, cố ý submit unsafe variants trên lab, ghi rejection/warning/effective state, rồi xử lý permission failure an toàn. Cleanup namespace và chứng minh không còn unsafe object.

Terminal reference

Command list và cách dùng

Chạy từng lệnh theo đúng thứ tự. Trước các lệnh có thể tạo hoặc thay đổi tài nguyên, hãy kiểm tra profile, account và region.

Commands · read-only checkpoints
kubectl get ns cka-day14 --show-labels
kubectl get pod POD_NAME -n cka-day14 -o jsonpath="{.spec.securityContext}{"\n"}"
kubectl get pod POD_NAME -n cka-day14 -o jsonpath="{.spec.containers[0].securityContext}{"\n"}"
kubectl auth can-i use podsecuritypolicies --as=system:serviceaccount:cka-day14:lab -n cka-day14
kubectl get events -n cka-day14 --sort-by=.lastTimestamp
Hands-on lab

Thực hành theo scenario

  1. Tạo namespace `cka-day14` với Pod Security labels phù hợp lab, deploy một Pod non-root/read-only/capability drop và verify uid, mounts, securityContext.
  2. Cố ý thử privileged/hostPath/unsafe capability trên lab để quan sát admission reject/warn; không chạy trên production.
  3. Debug permission failure bằng image user/fsGroup/volume mode, không bật privileged ngay; ghi minimal capability decision.
  4. Cleanup Pods/namespace/policy labels và kiểm tra không còn privileged workload/host mount test.
Evidence checkpoint

Kiểm chứng kết quả

Không coi lệnh chạy thành công là đủ. Hãy đối chiếu output với trạng thái mong đợi:

  • Effective identity/capability/privilege có evidence.
  • Pod Security profile behavior được kiểm tra.
  • Permission fix tối thiểu, không dùng privileged shortcut.
  • Filesystem/volume/security trade-off rõ.
  • Cleanup không để unsafe workload.
Transfer to exam / production

Bẫy thường gặp và trade-off

CKA thường kiểm tra SecurityContext YAML chính xác: `runAsNonRoot`, capabilities, seccomp, privilege escalation và host namespace. Hãy verify effective Pod spec và admission result.

Checkpoint · 3 phút

Kiểm tra nhanh

Câu hỏi: Ứng dụng cần đọc file volume nhưng chạy non-root bị PermissionDenied. Remediation an toàn đầu tiên là gì?

Kết thúc bài

Checklist trước khi sang Ngày 2