전체 글

DevOps Security Specialist를 목표하는 Security Compliance Engineer의 블로그
Kubernetes

Kubernetes Security - AppArmor

1. 개념 컨테이너의 특성상 VM과는 다르게 Host의 커널 영역에 접근 가능 이런 리스크를 낮추기 위해 유저 영역과 커널 영역의 중간에 AppArmor, Seccomp와 같이 Security Layer를 만들어 일종의 방화벽 역할을 하는 장치를 구성할 수 있음(다만 컨테이너 런타임이 AppArmor를 지원해야 사용 가능) AppArmor는 Profile을 정의를 통해 시스템 콜을 운영자가 원하는대로 허용/거부할 수 있음 Profile에는 3가지의 Modes(제한 수준)을 설정할 수 있음 AppArmor는 모든 노드에 설치되어야 하고 AppArmor의 Profile 또한 모든 노드에서 사용 가능해야 함 AppArmor Profile은 컨테이너 단위로 적용 따라서 디플로이먼트에 AppArmor를 적용하고자..

Kubernetes

Kubernetes Audit Logs 설정

1. 개념 K8s는 API 요청을 기록하는 Audit Logs가 존재 보안과 운영 측면에서 Audit log를 활용 가능 2. Stage and Level K8s API 요청에 대한 로깅을 기록할 때 로깅을 위한 stage(리소스 요청 단계)와 level(로깅 수준)이 존재 Stages RequestReceived : kube-api가 요청을 받은 것 ResponseStarted : kube-api가 응답 헤더만 보내고 바디는 전송하지 않은 것 ResponseComplete : kube-api가 응답 헤더까지 전송한 것 Panic : 패닉 발생한 것 Level None : 규칙에 부합하는 로그를 남기지 않음 Metadata : 요청에 대한 메타데이터만 로그로 기록 Request : 요청의 메타데이터 + ..

Kubernetes

Kubernetes 컨테이너 불변성(Immutability of Containers) 개념

1. 개념 컨테이너는 생성된 후 life time 동안 변경이 발생해서는 안됨 이를 제어하지 않으면 쉘에 접속해 설정을 변경하는 등 의도치않은 행위가 가능해지기 때문이고, 결론적으로 관리자가 컨테이너의 상태를 파악하지 못할 가능성이 발생 Immutability of Containers의 목적은 궁극적으로 관리자가 모든 컨테이너의 상태를 파악하고 핸들링하기 위함 따라서 컨테이너에 변경이 필요한 경우 반드시 기존의 컨테이너를 삭제하고 새로운 컨테이너를 생성해야 함 2. Immutability 적용 방법 bash / shell 제거 command 또는 startupProbe 활용 startupProbe: exec: command: - rm - /bin/bash root 파일시스템 read only Securi..