etcd TLS 인증서 파일 미설정

etcd의 인증서와 개인 키를 쌍으로 준비하고 실제 HTTPS 연결을 확인하세요.

설명

etcd에서 직접 관리하는 TLS 서버 인증서를 사용하려면 --cert-file과 --key-file을 함께 설정해야 합니다. 인증서에 맞는 개인 키가 없으면 TLS 구성이 실패할 수 있습니다.

etcd는 클러스터 핵심 데이터를 다루므로 인증서·키의 일치 여부, 파일 접근 권한과 갱신을 관리해야 합니다. 파일 지정뿐 아니라 실제 접속 주소가 HTTPS를 사용하는지도 확인해야 합니다.

잠재적 영향

인증서·키 구성 오류는 서버 시작이나 클라이언트 연결 실패로 이어질 수 있습니다. 오류를 피하려고 암호화되지 않은 연결을 사용하면 통신 경로에서 데이터가 노출될 수 있습니다.

해결 방법

  • --cert-file과 --key-file에 서로 일치하는 서버 인증서와 개인 키를 지정하세요.
  • 파일을 실제 경로에 마운트하고 개인 키 읽기 권한을 제한하며 HTTPS 수신·접속 주소를 구성하세요.
  • 클라이언트의 CA 검증과 필요한 클라이언트 인증을 별도로 설정하고 인증서 갱신 및 실제 연결을 확인하세요.

예시

기존 etcd 버전에서 인증서와 키 인자를 비교하는 발췌입니다. 실제 배포에는 지원 버전과 HTTPS 주소 등 나머지 설정이 필요하며 예시 파일 경로는 실제 값으로 바꿔야 합니다.

변경 전

yaml
apiVersion: apps/v1
kind: Deployment
metadata:
  name: app-etcd-deployment
spec:
  template:
    spec:
      containers:
        - name: database
          image: gcr.io/google_containers/etcd:v3.2.18
          command: ["etcd"]
          args: ["--cert-file=/etc/env/file.crt"]

서버 인증서만 지정하고 해당 개인 키는 지정하지 않아 수동 TLS 구성이 불완전합니다.

변경 후

yaml
apiVersion: apps/v1
kind: Deployment
metadata:
  name: app-etcd-deployment
spec:
  template:
    spec:
      containers:
        - name: database
          image: gcr.io/google_containers/etcd:v3.2.18
          command: ["etcd"]
          args: ["--cert-file=/etc/env/file.crt", "--key-file=/etc/env/file2.key"]

서버 인증서와 키를 함께 지정합니다. 실제 파일의 일치 여부와 권한, HTTPS 주소를 확인해야 하며 파일 경로만으로 통신 보호가 완성되지는 않습니다.

참조