새소식

AWS/EKS

[PKOS Study 5주차] k8s Security - polaris

  • -

CloudNet@ 팀의 가시다님께서 Leading 하시는 PKOS 2기 Study 내용 요약

해당 Kubernetes Study 는 '24단계 실습으로 정복하는 쿠버네티스' 책을 기반으로 진행 중입니다.

 

이번 포스팅에서는 쿠버네티스 보안 취약점 점검 도구 중 오픈 소스인 Polaris 에 대해 알아보겠습니다.

 

 

1. Polaris

보안 체크리스트 뿐만 아니라 모범 사례 대비 현재 Yaml 파일의 부족한 점을 파악하여 제공하는 오픈소스 보안 점검 도구

Polaris 는 Kubescape 에 비해 좀 더 직관적인 해결 방안을 제공하며,

운영 중인 워크로드의 Yaml 파일을 분석하고 부족한 부분을 점검해줍니다.

 

또한 kubescape 는 온라인 대시보드를 제공해주지만, Polaris 는 자체 대시보드를 제공해주는 차이가 있습니다.

 

Polaris Page
 

Fairwinds Polaris Documentation

Polaris is an open source policy engine for Kubernetes that validates and remediates resource configuration. It includes 30+ built in configuration policies, as well as the ability to build custom policies with JSON Schema. When run on the command line or

polaris.docs.fairwinds.com

 

1.1. Polaris Install

# Polaris Namespace 생성
kubectl create ns polaris

# Polaris Dashboard 타입을 LB 로 변경
cat <<EOT > polaris-values.yaml
dashboard:
  replicas: 1
  service:
    type: LoadBalancer
EOT

# Helm 설치
helm repo add fairwinds-stable https://charts.fairwinds.com/stable
helm install polaris fairwinds-stable/polaris --namespace polaris --version 5.7.2 -f polaris-values.yaml

 

# Polaris 대시보드 접근
kubectl get svc -n polaris

 

  • Score : 모범 사례 대비 전체 클러스터 구성 내역 점수, 높을수록 Good
  • Passing/Warning/Dangerous Checks : 보안 위험도 등급

 

Namespace 를 구분하여 리소스를 확인할 수 있다.

 

배포된 리소스의 보안 점검 결과 확인 가능

 

점검 결과 옆의 '?' 버튼을 클릭하면 점검 항목에 대한 상세 페이지를 확인할 수 있습니다.

 

Security | Fairwinds Polaris Documentation

Security These checks are related to security concerns. Workloads that fail these checks may make your cluster more vulnerable, often by introducing a path for privilege escalation. key default description hostIPCSet danger Fails when hostIPC attribute is

polaris.docs.fairwinds.com

 

1.2. 모범 사례

Polaris Pod 는 모범 사례를 적용해서 생성됩니다.

# Polaris Pod Yaml 추출
kubectl get deployments.apps -n polaris polaris-dashboard -o yaml > polaris-pod.yaml

 

  • 아래 부분은 보안과 관련된 설정입니다.

  • imagePullPolicy : 이미지를 항상 리포지토리에서 가져오도록 설정
  • resources. limits, requests : 리소스 자원 사용 보장 및 제한
  • securityContext : 컨테이너, 파드의 권한 및 접근 제어
  • allowPrivilegeEscalation : 컨테이너의 하위 프로세스가 상위 프로세스보다 많은 권한을 얻을 수 없게 설정
  • capabilities : 호스트 커널 레벨 수정이 필요 시 root 권한으로 전체 커널을 수정하지 않고 특정 커널 권한만 부여 후 사용
  • privileged : true인 경우 호스트의 모든 장치에 접근 권한 가짐
  • readOnlyRootFilesystem : 컨테이너의 root 파일시스템에 읽기 전용
  • runAsNonRoot : root 권한으로 컨테이너를 실행하지 않음

 

해당 yaml 파일의 설정을 참고하여 다른 애플리케이션 취약점을 손쉽게 변경할 수 있습니다.


 

2. 후기

Polaris 는 컨테이너 보안 모범 사례를 확인할 수 있고 자체 대시보드를 사용할 수 있는 점이 좋았다.

Polaris 를 kubescape 등과 같이 다른 보안 도구와 함께 사용한다면 더 좋은 시너지 효과가 날 수 있을 것 같다.

Contents

포스팅 주소를 복사했습니다