본문으로 바로가기 본문 바로가기
WIKI 기술 지식 베이스

RBAC를 위한 etcd 인증서 설정

원문 보기 위키 갱신

etcd 데이터스토어에 저장된 Calico 데이터를 인증서 기반 RBAC로 보호할 수 있어요. 이 문서는 etcd RBAC 설정의 전체 개념, 필요한 etcd 버전, 그리고 설정 절차를 개괄합니다. Operator 설치에는 적용되지 않는다는 점을 먼저 확인하세요.

출처: 문서

본문

Tab: Operator

이 문서는 Calico의 operator 설치에는 적용되지 않아요.

Tab: Manifest

etcd를 사용한다면 거기에 저장되는 데이터를 보호하는 것이 좋아요. 여러 컴포넌트가 하나의 etcd 클러스터를 함께 사용할 때는 더욱 그렇습니다. 이 튜토리얼 시리즈는 etcd 데이터스토어의 데이터에 대한 접근을 잠그고 분할하는 과정을 안내해요.

이 가이드가 도움이 될 만한 경우

  • 운영 지원 인력이 수행할 수 있는 작업을 제한해 etcd 데이터가 실수로 손상되거나 삭제되는 일을 최소화하고 싶을 때
  • Calico용 etcd 클러스터와 Kubernetes용 etcd 클러스터를 따로 두는 대신, Calico와 Kubernetes가 하나의 etcd 클러스터를 공유하게 하고 싶을 때
  • 추가 안전 장치로 Calico 컴포넌트들의 읽기/쓰기 접근을 제한하고 싶을 때

구성 개념

컴포넌트들을 서로 연결하는 중심축은 인증 기관(Certificate Authority, CA)이에요. CA는 etcd 멤버(및 프록시)와 Calico, Kubernetes 같은 컴포넌트가 etcd 클러스터에 인증하는 데 필요한 인증서와 키를 생성하는 데 사용됩니다. 모든 인증서가 같은 CA에서 생성되고 모든 컴포넌트가 CA 인증서를 갖고 있기 때문에, 그 연결들은 상호 인증(mutually authenticated)될 수 있어요.

etcd에 접근하는 컴포넌트를 위해 생성되는 인증서와 키는 etcd에서 특정 키 접두사(key prefix) 또는 경로에 대한 접근을 허용해요. 인증서는 etcd 사용자명과 동일한 Common Name(CN)으로 생성되어 etcd 사용자명과 연결됩니다. etcd 사용자명은 etcd에서 알맞은 데이터에 접근을 허용하는 하나 이상의 역할(role)과 연결되고요.

요구 사항

  • Calico처럼 etcd에서 v2 API만 사용하는 경우 필요한 최소 etcd 버전은 3.0.12예요.
  • Kubernetes처럼 etcd에서 v3 API를 사용하는 경우 필요한 최소 etcd 버전은 3.2입니다. (참고: etcd 3.x는 v2와 v3 API를 모두 지원해요.)

설정

  1. CA, 인증서, 키 생성하기.

  2. 1단계에서 생성한 CA 인증서와 인증서들로 etcd를 설정합니다. etcd 구성에 도움이 필요하면 etcd security op-guide를 참고하세요.

  3. etcd에서 사용자와 역할 만들기.

  4. 컴포넌트를 구성합니다. 예를 들면:

더 알아보기 (Learn more)

핵심은 CN이 etcd 사용자명과 일치하는 인증서를 같은 CA로 발급하는 거예요. 이렇게 하면 인증서-사용자-역할이 연결되어 컴포넌트별로 접근 범위를 나눌 수 있습니다.