CIS k8s benchmark (2)

Sbae·2025년 2월 3일

CIS

목록 보기
3/4
post-thumbnail

현재 k8s 자동 프로비저닝 툴을 개발 중입니다.

1.3.1 Pod garbage collection 설정

Kubernetes에서 완료(Completed)되거나 실패(Failed)한 Pod은 일정 시간 후 자동으로 삭제
ex) 완료되거나 실패한 Pod를 10개 까지만 보유하고 싶다면 아래와 같이 설정

  • /etc/kubernetes/manifests/kube-controller-manager.yaml 수정
  • --terminated-pod-gc-threshold=10 설정

1.3.7, 1.4.2 Loopback이 아닌 주소 사용 금지

보안을 위해서 Controller Manager와 Scheduler의 외부 접속을 차단한다.
⚠️ 외부 접속을 차단하게되면 Kubernetes를 이용하는 외부 솔루션들이 작동을 안할 수가 있으니 해당 옵션은 주의가 필요하다.

  • /etc/kubernetes/manifests 아래 해당하는 2개의 파일을 수정
  • --bind-address=127.0.0.1 변경하여 설정

Etcd 설정

⚠️ CIS에서 권장하는 방법은 인증서는 직접 생성하여 사용하면 된다.
작성자는 모든 인증서를 직접 생성하여 사용함

  • /etc/kubernetes/manifests/etcd.yaml 수정

2.1 TLS 설정

  • --cert-file=</path/to/ca-file>, --key-file=</path/to/key-file> 설정

2.2 클라이언트 인증 기능 활성화

  • --client-cert-auth="true" 설정

2.3 Etcd 자체 생성 인증서 사용 금지

  • --auto-tls=false 설정

2.4 Peer 연결에 TLS 사용

  • --peer-client-file=</path/to/peer-cert-file>, --peer-key-file=</path/to/peer-key-file> 설정

2.5 Peer 연결 활성화

  • --peer-client-cert-auth=true 설정

2.6 Peer 연결 간 자동 생성 인증서 사용 금지

  • --peer-auto-tls=false 설정

2.7 Kubernetes와 사용된 인증서와는 다른 인증서를 사용

Kubernetes에 사용된 /etc/kubernetes/pki/ca.crt와는 다른 인증서를 사용해야한다.

  • --trusted-ca-file=<filename> 설정

문서

이 외에도 정말 많은 부분들이 있지만 블로그에서는 간단한 설정 부분만 다루고 이외의 설정들은 전부 문서로 적어놨으니까 링크를 참조!!

⚠️ 아직 RBAC 부분이 미완성이다.

profile
끄적이는 일반인

0개의 댓글