<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>CKS :: Tag :: Kubernetes training</title><link>https://k8s-school.fr/labs/k8s/en/tags/cks/index.html</link><description/><generator>Hugo</generator><language>en</language><copyright>Copyright (c) 2025 Fabrice Jammes - Licensed under CC BY-SA 4.0</copyright><lastBuildDate>Fri, 09 Jan 2026 10:00:00 +1000</lastBuildDate><atom:link href="https://k8s-school.fr/labs/k8s/en/tags/cks/index.xml" rel="self" type="application/rss+xml"/><item><title>Trivy: Container Vulnerability Scanning</title><link>https://k8s-school.fr/labs/k8s/en/1_labs/trivy/index.html</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://k8s-school.fr/labs/k8s/en/1_labs/trivy/index.html</guid><description>Learn to scan container images for vulnerabilities and generate Software Bills of Materials (SBOM) using Trivy</description></item><item><title>Cosign: Container Image Signing &amp; Verification</title><link>https://k8s-school.fr/labs/k8s/en/1_labs/cosign/index.html</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://k8s-school.fr/labs/k8s/en/1_labs/cosign/index.html</guid><description>Learn to sign and verify container images using Cosign for supply chain security</description></item><item><title>CKS: Required Skills</title><link>https://k8s-school.fr/labs/k8s/en/certifications/cks_curriculum/index.html</link><pubDate>Sat, 18 Jan 2025 14:15:26 +1000</pubDate><guid>https://k8s-school.fr/labs/k8s/en/certifications/cks_curriculum/index.html</guid><description>The requirements are listed in the CKS Curriculum. Make sure to check the up-to-date version.
Here is the content of version 1.34 of the Curriculum:
CKS Program 10% - Cluster Setup Use CIS benchmark to review the security configuration of Kubernetes components (etcd, kubelet, kubedns, kubeapi) Properly set up Ingress objects with security controls Protect node metadata and endpoints Minimize use of, and access to, GUI elements Verify platform binaries before deploying 15% - Cluster Hardening Restrict access to Kubernetes API Use Role Based Access Controls to minimize exposure Exercise caution in using service accounts, e.g. disable defaults, minimize permissions on newly created ones Update Kubernetes frequently 15% - System Hardening Minimize host OS footprint (reduce attack surface) Minimize IAM roles Minimize external access to the network Appropriately use kernel hardening tools such as AppArmor, seccomp 20% - Minimize Microservice Vulnerabilities Setup appropriate OS level security domains e.g. using PSP, OPA, security contexts Manage Kubernetes secrets Use container runtime sandboxes in multi-tenant environments (e.g. gvisor, kata containers) Implement pod to pod encryption by use of mTLS 20% - Supply Chain Security Minimize base image footprint Secure your supply chain: whitelist allowed registries, sign and validate images Use static analysis of user workloads (e.g. kubernetes resources, docker files) Scan images for known vulnerabilities 20% - Monitoring, Logging and Runtime Security Perform behavioral analytics of syscall process and file activities at the host and container level to detect malicious activities Detect threats within physical infrastructure, apps, networks, data, users and workloads Detect all phases of attack regardless of where it occurs and how it spreads Perform deep analytical investigation and identification of bad actors within environment Ensure immutability of containers at runtime Use Audit Logs to monitor access The training program is based on this curriculum.</description></item><item><title>RBAC</title><link>https://k8s-school.fr/labs/k8s/en/1_labs/rbac/index.html</link><pubDate>Wed, 26 Feb 2025 14:15:26 +1000</pubDate><guid>https://k8s-school.fr/labs/k8s/en/1_labs/rbac/index.html</guid><description>Author: Fabrice JAMMES (LinkedIn).
1. Create Namespaces Create two namespaces:
foo-&lt;ID&gt; bar-&lt;ID&gt; Answer kubectl create namespace foo-&lt;ID&gt; kubectl create namespace bar-&lt;ID&gt; 2. Deploy curl-custom-sa Pod Create a curl-custom-sa pod inside the foo-&lt;ID&gt; namespace, using the service account foo-&lt;ID&gt;:default (the default service account of foo-&lt;ID&gt;).</description></item><item><title>RBAC monitoring</title><link>https://k8s-school.fr/labs/k8s/en/1_labs/rbac-secissue/index.html</link><pubDate>Thu, 06 Jun 2024 14:15:26 +1000</pubDate><guid>https://k8s-school.fr/labs/k8s/en/1_labs/rbac-secissue/index.html</guid><description>Exercice: find RBAC security issue Connect to Kubernetes:
ktbx desk kubectx kind-kind Then use: https://github.com/alcideio/rbac-tool https://github.com/kubescape/kubescape https://github.com/corneliusweig/rakkess
To find the RBAC security issue in the cluster.</description></item><item><title>NetworkPolicy</title><link>https://k8s-school.fr/labs/k8s/en/1_labs/networkpolicy/index.html</link><pubDate>Thu, 06 Jun 2024 14:15:26 +1000</pubDate><guid>https://k8s-school.fr/labs/k8s/en/1_labs/networkpolicy/index.html</guid><description>Prerequisites # Launch the toolbox ktbx desk # Check your use kind-kind context kubectx #Launch initialization script /home/k8s0/openshift-advanced/labs/3_policies/ex4-network.sh # go to correct namespace kubens network-k8s&lt;ID&gt; Check that 3 pods have been created.
Solution kubectl get pods --show-labels NAME READY STATUS RESTARTS AGE LABELS external 1/1 Running 0 2m app=external pgsql-postgresql-0 1/1 Running 0 2m ...,tier=database webserver 1/1 Running 0 2m tier=webserver Play with network policy Look at the official documentation and at the examples</description></item><item><title>Seccomp Security Profiles</title><link>https://k8s-school.fr/labs/k8s/en/1_labs/seccomp/index.html</link><pubDate>Thu, 06 Jun 2024 19:00:00 +1000</pubDate><guid>https://k8s-school.fr/labs/k8s/en/1_labs/seccomp/index.html</guid><description>Objectives Learn how to use seccomp (secure computing mode) to restrict system calls in Kubernetes pods. Seccomp is a Linux kernel feature that limits which system calls a process can make, providing an additional security layer.
Prerequisites Understanding Seccomp Seccomp is a security mechanism that filters system calls:</description></item><item><title>Audit Logs &amp; API Server</title><link>https://k8s-school.fr/labs/k8s/en/1_labs/audit-logs/index.html</link><pubDate>Thu, 06 Jun 2024 15:00:00 +1000</pubDate><guid>https://k8s-school.fr/labs/k8s/en/1_labs/audit-logs/index.html</guid><description>Objectives Configure audit policies to trace modifications on critical resources and secure the API Server in a Kubernetes cluster.
Prerequisites Define your cluster name:
$CLUSTER_NAME="my-cluster" Q1: How to modify the API Server configuration? Answer The API Server in Kubernetes runs as a static pod managed by the kubelet. Static pods are defined by YAML manifests in the /etc/kubernetes/manifests/ directory. When you modify a static pod manifest:</description></item><item><title>Slides</title><link>https://k8s-school.fr/labs/k8s/en/0_prereqs/slides/index.html</link><pubDate>Wed, 22 May 2024 14:15:26 +1000</pubDate><guid>https://k8s-school.fr/labs/k8s/en/0_prereqs/slides/index.html</guid><description>Slides CKAD CKAD.pdf CKS E_01_advanced-k8s-cluster-internals.pdf E_02_advanced-k8s_RBAC.pdf E_03_advanced-k8s_Security_node+network.pdf E_04_advanced-k8s_computational_resources.pdf E_04.1_finops.pdf CKS.pdf Advanced Kubernetes E_01_advanced-k8s-cluster-internals.pdf E_02_advanced-k8s_RBAC.pdf E_03_advanced-k8s_Security_node+network.pdf E_04_advanced-k8s_computational_resources.pdf E_04.1_finops.pdf E_05_advanced-k8s_advanced_scheduling.pdf E_06_advanced-k8s_operators.pdf Openshift Openshift Optional modules D_01_Ingress.pdf D_02_Istio_k8s_service-mesh.pdf D_03_Helm.pdf D_03_Prometheus_monitoring.pdf D_05_multicluster-monitoring.pdf D_06_develop_with_k8s.pdf D_07_openshift_airgapped D_08_openshift_ingress-gateway Misc Gartner_choose_k8s_install_method.pdf ssh-tunnel-and-port-forward.pdf</description></item><item><title>Runtime Security with Falco</title><link>https://k8s-school.fr/labs/k8s/en/1_labs/falco/index.html</link><pubDate>Thu, 06 Jun 2024 16:00:00 +1000</pubDate><guid>https://k8s-school.fr/labs/k8s/en/1_labs/falco/index.html</guid><description>Objectives Use Falco to detect suspicious behaviors inside containers in real-time and learn to configure custom security rules for Kubernetes environments.
Prerequisites Understanding Falco Falco is a cloud-native runtime security project that detects unexpected behavior, intrusions, and data theft in real-time. It works by monitoring system calls and Kubernetes events.</description></item><item><title>Hardening with CIS Benchmarks - Running kube-bench Jobs</title><link>https://k8s-school.fr/labs/k8s/en/1_labs/kubebench-10-jobs/index.html</link><pubDate>Fri, 09 Jan 2026 10:00:00 +1000</pubDate><guid>https://k8s-school.fr/labs/k8s/en/1_labs/kubebench-10-jobs/index.html</guid><description>Introduction to CIS Benchmarks The Center for Internet Security (CIS) provides best practices for securing Kubernetes. In this lab, we will use kube-bench, an open-source tool from Aqua Security, to check whether our cluster meets these security recommendations.
Running kube-bench as a Job In a CKS exam or production environment, you often run kube-bench as a Kubernetes Job to scan nodes without SSH access.</description></item><item><title>AppArmor Security Profiles</title><link>https://k8s-school.fr/labs/k8s/en/1_labs/apparmor/index.html</link><pubDate>Thu, 06 Jun 2024 16:00:00 +1000</pubDate><guid>https://k8s-school.fr/labs/k8s/en/1_labs/apparmor/index.html</guid><description>Objectives Learn how to use AppArmor to implement mandatory access control in Kubernetes pods. AppArmor is a Linux kernel security module that confines programs to a limited set of resources through security profiles.
Prerequisites Understanding AppArmor AppArmor is a security mechanism that provides path-based access control:</description></item><item><title>Hardening with CIS Benchmarks - Security Remediations</title><link>https://k8s-school.fr/labs/k8s/en/1_labs/kubebench-20-remediations/index.html</link><pubDate>Fri, 09 Jan 2026 10:00:00 +1000</pubDate><guid>https://k8s-school.fr/labs/k8s/en/1_labs/kubebench-20-remediations/index.html</guid><description>Practical CKS Exercise Workflow As a CKS candidate, you should practice the complete security hardening workflow manually. This section guides you through the key exercises step by step to remediate security issues found by kube-bench.
Remove the --profiling argument for the scheduler Look for the check 1.4.1: Ensure that the –profiling argument is set to false.</description></item><item><title>Hardening with CIS Benchmarks - Automation and Continuous Compliance</title><link>https://k8s-school.fr/labs/k8s/en/1_labs/kubebench-30-automation/index.html</link><pubDate>Fri, 09 Jan 2026 10:00:00 +1000</pubDate><guid>https://k8s-school.fr/labs/k8s/en/1_labs/kubebench-30-automation/index.html</guid><description>Automation and Continuous Compliance Why is running kube-bench manually not enough for a production environment?
Answers Configuration Drift: A manual change or update could revert security settings. New Benchmarks: CIS updates its recommendations regularly. Visibility: Security teams need centralized reporting, not just CLI logs. Suggested improvement Integrate kube-bench into a CronJob to run every week and send results to a security dashboard like Falco or a SIEM.</description></item></channel></rss>