전체 글

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

Kubernetes OPA 개념

1. 개념 Admission Control 단계에서 사용하는 정책 강제 도구 오픈소스 정책 적용 엔진으로서 K8s에서만 사용할 수 있는 것은 아님 OPA 정책을 K8s가 해석할 수 있도록 CRDs로 정의(ConstraintTemplate)하고, 실제 정책 실행 대상 및 조건은 Constraint에 정의 2. OPA 정책 예시 - 모든 파드 생성 차단 # ConstraintTemplate apiVersion: templates.gatekeeper.sh/v1beta1 kind: ConstraintTemplate metadata: name: k8salwaysdeny spec: crd: spec: names: kind: K8sAlwaysDeny validation: # Schema for the `paramet..

Kubernetes

Kubernetes SecurityContext 개념 및 설정2

1. 개념 SecurityContext를 통해 Pod 혹은 Container의 보안 설정을 적용할 수 있음 Pod 수준의 통제와 Container 수준의 통제를 별개로 설정 가능하지만, capabilities 설정은 Container 수준에서만 설정 가능 SecurityContext로 설정할 수 있는 옵션은 공식 문서를 참고 2. 주요 옵션 privileged host OS의 root와 동일한 권한을 허용 기본 설정은 false allowPrivilegeEscalation 부모 프로세스보다 더 많은 권한을 얻도록 허용 Privileged == true or CAP_SYS_ADMIN 권한을 보유한 경우 항상 true capabilities 컨테이너에 사용 가능 / 불가능한 POSIX capabilities..

Kubernetes

Kubernetes Container Runtime Sandbox 개념

1. 개념하이퍼바이저를 활용해 가상화를 구현한 VM과 달리 컨테이너는 Host OS를 공유하는 형태이므로 컨테이너의 시스템콜이 Host OS로 요청됨이러한 escaping을 통제하기 위해 샌드박싱 기법을 활용하게 되는데 seccomp, apparmor를 적용하는 것은 현실적으로 불가능(각 애플리케이션별로 허용 가능한 syscall을 판별하고 허용해줘야 해서)2. gVisor이러한 문제의 현실적 대안으로서 gVisor 활용gVisor는 컨테이너를 위한 애플리케이션 커널 역할을 수행하면서 Application(Container)의 System Call Layer 역할을 수행함으로서 Application과 Host OS의 Kernel을 분리 gVisor는 Sentry와 Gofer로 구성 SentryApplic..

MR. ZERO
Security & DevOps