전체 글

DevOps Security Specialist를 목표하는 Security Compliance Engineer의 블로그
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..

Kubernetes

Kubernetes CertificateSigningRequests 개념 및 실습

1. 개념 클러스터의 오브젝트 및 서비스에 접근하기 위해 유저에 대한 인증/인가를 위해 인증서를 사용 인증서를 생성하기 위한 작업의 일환으로 유저의 개인키에 대한 사이닝을 K8s의 CA에 요청할때 CertificateSigningRequests API를 사용 인증서를 사이닝하는 방법에는 매뉴얼힌 방법과 API를 활용하는 방식이 존재 대략적인 프로세스는 다음과 같음 2. 실습(CertificateSigningRequests API 활용) key 생성 openssl genrsa -out [name].key 2048 CSR 생성(Common Name에 유저 이름 입력) openssl req -new -key [name].key -out [name].csr CertificateSigningRequest 생성 및..

Kubernetes

Kubernetes 서비스어카운트(ServiceAccount) 개념 및 설정2

1. 개념 모든 네임스페이스에는 default SA가 존재 파드 생성 시 SA를 지정하지 않은 경우 default SA가 자동으로 설정 custom SA를 생성할 수 있고, custom SA 파드에 지정한 후 컨테이너 내부에서 토큰 값도 확인 가능 2. ServiceAccount 보안 automountServiceAccountToken: false 옵션을 pod 또는 SA에 추가하면 토큰이 자동으로 pod에 마운트되는 것을 방지할 수 있음 default SA의 권한을 제거 또는 최소화하고 이를 사용하는 것이 가장 좋다 SA 사용이 필요한 경우 custom SA를 생성하고 최소권한으로 ClusterRole 또는 Role 할당하여 사용 K8s 1.24 버전부터 SA 생성 후 토큰을 별도로 생성해야 함(이전에..

MR. ZERO
Security & DevOps