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 인증서와 인증서들로 etcd를 설정합니다. etcd 구성에 도움이 필요하면 etcd security op-guide를 참고하세요.
-
컴포넌트를 구성합니다. 예를 들면:
더 알아보기 (Learn more)
핵심은 CN이 etcd 사용자명과 일치하는 인증서를 같은 CA로 발급하는 거예요. 이렇게 하면 인증서-사용자-역할이 연결되어 컴포넌트별로 접근 범위를 나눌 수 있습니다.