Post

CKS 자격증 후기

CKS 시험 후기

CKS 후기

CKS란 Certified Kubernetes Security Specialist의 약자로 쿠버네티스 보안 시험이다. 선수 자격으로는 CKA가 있다. 이번 시험을 통해 보안에 대해 깊게 알아봐서 좋았다. Admission Controller와 OPA를 통해 자주 필요한 보안작업을 진행할 수 있는 것 같다. 이번 기회에 더 깊게 공부할 참이다. 아래는 CKS 시험에서 나왔던 문제에 정리했다. CKA를 취득했고, 실무에서 경험이 많으신 분들이라면 아래에 내용만 봐도 충분히 취득할 수 있을 거라 생각한다.

드디어 Kubernetes 자격증을 모두 취득했다. 퍼즐이 완성된 느낌이라 뿌듯하다~

vs CKA

CKA와 CKAD에 비해 도구를 많이 사용한다. 주로 사용하는 도구는 CKS 문서에서 힌트를 얻을 수 있다. 아래는 공식 가이드에 나와있는 참조가 허용되는 문서이다. 여기서 쿠버네티스 Docs 이외의 3가지 도구를 확인할 수 있다. 이 도구들의 사용용도는 알아두고 가면 좋다.

💡 허용하는 문서 리소스 출처: Linux Foundation

유형

아래는 killer.sh와 시험에서 주로 나왔던 유형과 유형에 대한 주요 방법을 설명했다. 개인적으로 실무 경험이 많고, 공부보단 자격증 취득이 목적이신 분들은 아래의 내용에 대해 정리하고 시험을 봐도 괜찮을 것 같다는 생각이 든다.

  • Admission Controller (Plugin) - Pod Security, NodeRestriction, ImagePolicyWebhook
  • Auditing: kube-apiserver를 수정하여, audit 로그를 남긴다.
    • audit 설정:

      1
      2
      3
      4
      
        - --audit-policy-file=/etc/kubernetes/audit/audit-policy.yaml
        - --audit-log-path=/etc/kubernetes/audit/audit.log
        - --audit-log-maxsize=100
        - --audit-log-maxbackup=5 
      
    • hostpath로 audit-policy.yaml과 로그를 남길 volume 마운트 진행
    • log path를 확인하여, 로그가 남는지 확인한다.
  • Container Security(App Armor): App Armor 명령어를 통해 워커노드에 프로필을 등록하고, Pod에 추가한다. 현재 공식문서는 1.30 기준이지만, 시험 환경은 1.29버전으로 annotation을 통해 진행했다. 이후 시험환경이 업데이트되면 공식문서처럼 securityContext.appArmorProfile 로 설정하면 된다.
  • Docker Image Best Practices
    1. 루트 계정으로 실행하지 않기
    2. 불필요한 파일 빼기
    3. 이미지 버전 정보 명시하기(latest 사용x)
  • ETCD 암호화(Encrypting Confidential Data at Rest)
  • Immutability for Pod(파드가 실행되고, 바뀌지 않도록(불변성) 위험요소를 없애는 방식이다.)
    • startProbe 사용해서 불필요한 실행파일 없애기 ex) rm -f /bin/bash
    • readOnlyRootFilesystem = true
  • Ingress TLS
    • k -n {ns} create secret tls {secret-name} --key tls.key --cert tls.crt
    • Ingress에 TLS 설정 추가(secret)
  • Network Policy: Network Policy은 여러 정책이 OR로 연결된다. allow/deny 정책이 모두 있으면 allow이다.
  • OPA: OPA는 CRD를 통해 진행되니, CRD를 확인하여 정책을 문제에 맞게 수정하면 된다.
  • RBAC: CKA와 크게 다르지 않다.
  • Runtime Class: 런타임 클래스 생성하고, 파드에서 지정하면 된다.
  • Secret
  • Security Context
  • 보안 도구
    • Trivy: 이미지 스캔 도구, 해당 이미지의 취약점을 알려준다. trivy -i nginx:alpine | grep Total
    • Falco: 실시간으로 커널 이벤트를 모니터링한다. falco
    • kube-bench: CIS 벤치마크를 기준으로 취약점을 알려주고, 해결방법까지 친절히 알려준다.

자격증

Untitled.png

This post is licensed under CC BY 4.0 by the author.