> For the complete documentation index, see [llms.txt](https://notes.thecloudspark.com/kubernetes-certifications/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://notes.thecloudspark.com/kubernetes-certifications/certified-kubernetes-security-specialist.md).

# Certified Kubernetes Security Specialist

## About CKS

<figure><img src="https://1470760479-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FF2c9rRtKmyhQ87o9P9Ra%2Fuploads%2FdaMs30Pfm0kU7wxXCC4f%2Fcks.png?alt=media&amp;token=27bb0d54-92a1-4fda-9f02-cfece08aeaf3" alt="" width="150"><figcaption><p>CKS Badge<br>Reference: <a href="https://www.credly.com/org/the-linux-foundation/badge/cks-certified-kubernetes-security-specialist">https://www.credly.com/org/the-linux-foundation/badge/cks-certified-kubernetes-security-specialist</a></p></figcaption></figure>

> The Certified Kubernetes Security Specialist (CKS) program provides assurance that a CKS has the skills, knowledge, and competence on a broad range of best practices for securing container-based applications and Kubernetes platforms during build, deployment and runtime. CKA certification is required to sit for this exam. *Reference:* [*CNCF-CKS*](https://www.cncf.io/training/certification/cks/)

## Domains & Competencies

<details>

<summary>Cluster Setup 10%</summary>

* Use Network security policies to restrict cluster level access&#x20;
* Use CIS benchmark to review the security configuration of Kubernetes components (`etcd`, `kubelet`, `kubedns`, `kubeapi`)&#x20;
* Properly set up Ingress objects with security control&#x20;
* Protect node metadata and endpoints&#x20;
* Minimize use of, and access to, GUI elements&#x20;
* Verify platform binaries before deploying

</details>

<details>

<summary>Cluster Hardening 15%</summary>

* Restrict access to Kubernetes API&#x20;
* Use Role Based Access Controls to minimize exposure&#x20;
* Exercise caution in using service accounts e.g. disable defaults, minimize permissions on newly created ones&#x20;
* Update Kubernetes frequently

</details>

<details>

<summary>System Hardening 15%</summary>

* Minimize host OS footprint (reduce attack surface)&#x20;
* Minimize IAM roles&#x20;
* Minimize external access to the network&#x20;
* Appropriately use kernel hardening tools such as `AppArmor`, `seccomp`

</details>

<details>

<summary>Minimize Microservice Vulnerabilities 20%</summary>

* Setup appropriate OS level security domains&#x20;
* Manage Kubernetes secrets&#x20;
* Use container runtime sandboxes in multi-tenant environments (e.g. `gvisor`, `kata containers`)&#x20;
* Implement pod to pod encryption by use of `mTLS`

</details>

<details>

<summary>Supply Chain Security 20%</summary>

* Minimize base image footprint&#x20;
* Secure your supply chain: whitelist allowed registries, sign and validate images&#x20;
* Use static analysis of user workloads (e.g. Kubernetes resources, Docker files)&#x20;
* Scan images for known vulnerabilities

</details>

<details>

<summary>Monitoring, Logging and Runtime Security 20%</summary>

* Perform behavioral analytics of `syscall` process and file activities at the host and container level to detect malicious activities&#x20;
* Detect threats within physical infrastructure, apps, networks, data, users and workloads&#x20;
* Detect all phases of attack regardless where it occurs and how it spreads&#x20;
* Perform deep analytical investigation and identification of bad actors within environment&#x20;
* Ensure immutability of containers at runtime&#x20;
* Use Audit Logs to monitor access

</details>

{% hint style="info" %}
To learn more about CKS, visit: <https://training.linuxfoundation.org/certification/certified-kubernetes-security-specialist/>
{% endhint %}
