참고 - Secret 해킹하기

Notion AI 가라사대…

ETCD는 Kubernetes의 핵심 구성 저장소이다. ETCD 클러스터는 Kubernetes 클러스터의 모든 중요한 상태 데이터를 저장한다. 따라서 ETCD의 보안이 취약하면 Kubernetes 클러스터 전체가 위험에 빠질 수 있다.

ETCD 클러스터와 Secret을 보호하기 위해 다음과 같은 사항들을 준수해야 한다.

  1. ETCD 클러스터를 위한 별도의 네트워크 세그멘트를 만든다. 클러스터 내부와 외부 간의 통신을 차단한다.
  2. ETCD에 대한 액세스를 Kubernetes API 서버로만 허용한다. 다른 서비스나 애플리케이션이 직접 ETCD에 접근하지 않도록 한다.
  3. ETCD 데이터의 백업을 수행하고, 백업 파일은 암호화된 스토리지에 저장한다.
  4. Secret은 최소 권한으로 제한되어야 한다. 해당 Secret을 사용하는 애플리케이션만 해당 Secret에 접근할 수 있도록 한다.
  5. TLS 인증서를 사용하여 ETCD와 API 서버 간의 통신을 보호한다.
  6. ETCD에 대한 보안 패치를 지속적으로 적용한다.
  7. ETCD의 보안 설정을 최소 권한 원칙에 따라 구성한다.

ETCD와 Secret의 보안을 위해 다중 단계의 방어가 필요하다. 위에서 언급된 사항들을 통해 접근 제어, 암호화, 모니터링 등을 통해 ETCD와 Secret을 완벽하게 보호할 수 있다.


etcd 암호화하기

0. API Server 접근하기

ssh -i ~/.ssh/id_rsa ubuntu@api.$KOPS_CLUSTER_NAME bash

1. EncryptionConfiguration 리소스 만들기

EncryptionConfiguration는 etcd를 어떤 방식으로 암호화할지를 설정하는 리소스입니다. resourcesprovider가 보이시나요? 어떤 리소스를 어떻게 암호화하는지 정의하는 부분입니다.