오픈 소스 Kubernetes 보안 툴 Polaris 소개
데모를 통하여 오픈 소스 Kubernetes 보안 툴 Polaris 소개해 드립니다. Kube Day2 환경이면 보안은 항상 골치 입니다. (솔직히, 사내 강력한 보안 정책이 없다면 굳이 적용해야 되나 싶기도 하구요.)
Polaris는 오픈소스로 현재 적용된 Kube Object의 보안, Efficiency, Reliability 측면에서 Best Practice와 비교하여 현재 설정의 취약점을 손쉽게 알려 줄 수 있습니다.
Polaris : Best Practices for Kubernetes Workload Configuration
TL; DR
- 오픈 소스 Polaris (by Fairwinds) 이용하여 보안 및 Efficiency/Reliability에 적합한 Best Practice YAML 작성 가능
- (가장 많이 사용하는) Bitnami Redis Helm Chart로 Default 설정으로 설치하면 보안 권고 위반 사항 있음
: Polaris YAML 사용하여 보안 권고 사항 해결 가능(상세 사항 아래 Demo 참조)
그럼, 데모를 통하여 알아 보겠습니다.
Polaris 설치는 Helm 통해서 간단히 가능합니다. (공홈 참조)
helm repo add fairwinds-stable https://charts.fairwinds.com/stable
helm fetch --untar fairwinds-stable/polaris
helm install polaris -f values.yml .
kubectl port-forward --namespace polaris svc/polaris-dashboard 8080:80
설치가 완료되면 아래와 유사한 Dashboard 확인 가능합니다.
그럼, 실 Application 사례를 알아 보겠습니다.
Bitnami Helm으로 Redis를 설치 하시면 아래와 같이 보안 취약점이 확인됩니다. 유사하게 Trivy 등을 통하여 이미지 스캔하면 기본 이미지에서 보안 취약점이 보안 취약점이 있는 걸 확인 가능한데, (아마도 가장 많이 사용하는) Bitnami Redis Helm Chart도 default 설정은 보안 취약점이 있습니다.
그럼, 개선해 보겠습니다.
(당연하겠지만) Polaris 설정은 아래와 같이 깨끗합니다.
Polaris 설정을 참고로 redis helm chart를 수정 하겠습니다.
[spkr@erdia22 ~ (dz-saas:polaris)]$ k get deployments.apps polaris-dashboard -o yaml | k neat > polaris-deploy.yml
(k neat tool을 사용하면 좀 더 편리하게 yaml 파일 확인이 가능합니다.)
해당 보안 취약점 관련 부문은 아래 securityContext 부문인데, Polaris는 잘되어 있습니다.
해당 내역을 Redis Helm Chart에 반영 합니다. redis values.yml 의 containerSecurityContext 부문에 추가합니다. (allowPrivilegedEscalation 부터 추가)
Redis Helm chart 수정 후 재시작(helm upgrade) 합니다. Polaris에서 다시 확인하면 아래와 같이 취약점 부문이 개선된 걸 확인 가능합니다.
Redis 확인
이상 오픈 소스 Kube 보안 툴 Polaris를 이용하여 Redis Application 보안 취약점 개선을 Demo를 통하여 알아 보았습니다. 반복 작업을 통하여 다른 Application 등도 각 회사의 정책에 맞게 수정이 가능합니다.
그럼, 감사합니다.
Diamanti & Managed Kubernetes Service 문의 : leejunghoon@spkr.co.kr