전체 글

DevOps Security Specialist를 목표하는 Security Compliance Engineer의 블로그
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. gViso 이러한 문제의 현실적 대안으로서 gVisor 활용 gVisor는 컨테이너를 위한 애플리케이션 커널 역할을 수행하면서 Application(Container)의 System Call Layer 역할을 수행함으로서 Application과 Host OS의 Kernel을 분리 gVisor는 Sentry와 Gofer로 구성 Sentry A..

Kubernetes

Kubernetes ETCD 암호화 개념 및 실습

1. 개념 Secert 리소스는 이름과 다르게 값을 base64로 인코딩해 저장한다. 따라서 secret 값을 secret, 컨테이너 런타임, etcdctl 등에서 평문으로 확인할 수 있다. 이러한 특성으로 인해 ETCD를 반드시 암호화해야 하고 혹은 Vault와 같은 3rd-Party 오픈소스를 사용해 크레덴셜을 저장해야 한다. ETCD 암호화에 관한 자세한 방법은 공식 문서에 잘 설명되어 있다. 2. 실습 암호키 생성 head -c 32 /dev/urandom | base64 EncryptionConfiguration 작성 apiVersion: apiserver.config.k8s.io/v1 kind: EncryptionConfiguration resources: - resources: - secre..

MR. ZERO
Security & DevOps