Minimize Microservice Vulnerabilities (20%)
- Setup appropriate OS level security domains
- Manage Kubernetes secrets
- Use container runtime sandboxes in multi-tenant environments (e.g. gvisor, kata containers)
- Implement pod to pod encryption by use of mTLS
Container Runtime Sandboxes
컨테이너화된 환경에서 프로세스를 격리하고 보안을 강화하기 위해 사용되는 기술
특징
- 가상화를 통한 프로세스, 시스템 자원 격리
- 보안강화 : 애플리케이션, 서비스가 격리된 환경에서 실행되므로 보안 취약점을 최소화함
- 애플리케이션 실행 시 성능저하가 발생할 수 있음
종류
- gVisor : 컨테이너와 호스트 운영체제 중간에 사용자 수준의 가상화를 통해 컨테이너가 gViosr의 가상 커널을 호출하도록 처리함.
- runsc : gVisor의 핵심 구성요소. gVisor와 Kubernetes간 interface를 담당.
- Kata Containers : 컨테이너를 가상 머신에서 실행하여 추가적인 보안과 격리를 제공하는 오픈소스 프로젝트.
Building a Sandbox
1. Install gVisor Runtime
2. Configure containerd
3. Create a RuntimeClass
- RuntimeClass : pod가 사용할 runtimeclass를 선택할 수 있게 함.
apiVersion: node.k8s.io/v1
kind: RuntimeClass
metadata:
name: runsc-sandbox
handler: runsc
apiVersion: v1
kind: Pod
metadata:
name: sandbox-pod
spec:
runtimeClassName: runsc-sandbox # define runtime name
containers:
- name: busybox
image: busybox
command: ['sh', '-c', 'while true; do echo "Running..."; sleep 5; done']
'CKS' 카테고리의 다른 글
[CKS] Supply Chain Security - Analyzing Dockerfile (0) | 2024.02.19 |
---|---|
[CKS] MMV - mTLS (0) | 2024.02.02 |
[CKS] OPA Gatekeeper (0) | 2024.01.29 |
[CKS] System Hardening - AppArmor (1) | 2024.01.24 |
[CKS] System Hardening - Pod Security (0) | 2024.01.23 |