시크릿이란?
비밀번호, OAuth 토큰, SSH키 같은 민감한 정보들을 저장하는 용도로 사용한다.
컨테이너 안에 저장하지 않고 별도로 보관했다가 실제 파드를 실행할 때의 템플릿으로 컨테이너에 제공한다.
시크릿 만들기
- 내장 시크릿
- 쿠버네티스 클러스터 안에서 쿠버네티스 API에 접근할 때 사용
- 클러스터 안에서 사용하는 ServiceAccount라는 계정을 생성하면 자동으로 관련 시크릿을 만든다.
- 이 시크릿으로 ServiceAccount가 사용 권한을 갖는 API에 저근할 수 있다.
- 사용자 정의 시크릿
- 사용자가 만든 시크릿
- kubeclt create secret 명령으로 만들 수 있고 다른 자원처럼 템플릿으로 만들 수도 있다.
시크릿 사용하기
- 시크릿은 파드의 환경 변수나 볼륨을 이용한 파일 형식으로 사용할 수 있다.
- 프라이빗 컨테이너 이미지를 가져올 때 시크릿을 사용할 수 있다.
- 시크릿으로 TLS 인증서를 저장해 사용할 수 있다.
시크릿 데이터 용량 제한
- 시크릿 데이터는 etcd에 암호화하지 않은 텍스트로 저장된다.
- 이때 시크릿 데이터의 용량이 너무 크면 쿠버네티스의 kube-apiserver나 kubelet의 메모리 용량을 많이 차지한다.
- 따라서 개별 시크릿 데이터의 최대 용량은 1MiB이다.
- 크기가 작은 시크릿 데이터를 너무 많이 만들어도 같은 문제가 발생할 수 있으므로 전체 시크릿 데이터 용량에 제한을 두는 기능도 도입될 예정이다.
- 누구가 etcd에 직접 접근한다면 시크릿 데이터의 내용을 확인할 수 있다.
- etcd에는 이외에도 중요한 데이터가 많이 있으므로 중요한 서비스에 쿠버네티스를 사용 중이라면 etcd접근을 제한해야 한다.
- 기본적으로 etcd를 실행할 때 etcd관련 명령을 사용하는 API 통신에 TLS인증이 적용되어 있으므로 인증서가 있는 사용자만 etcd에 접근해 관련 명령을 사용할 수 있다.
- 그외에 etcd가 실행중인 마스터 자체에 접속해서 데이터에 접근하는 것을 막으려고 마스터에 접근할 수 있는 사용자들을 계정 기반이나 IP기반 접근 제어 등으로 제한하는 방법이 있다.
- etcd에 저장되는 시크릿 데이터를 암호화할 수도 있다. 쿠버네티스 클러스터를 직접 설치해서 사용할 때 별도로 암호화 하는 옵션을 지정해야 한다.
'클라우드 > Kubernetes(쿠버네티스)' 카테고리의 다른 글
[kubernetes] Tekton (0) | 2021.07.25 |
---|---|
[쿠버네티스] Helm (0) | 2021.07.08 |
[쿠버네티스] 컨피그맵 (0) | 2021.06.09 |
[쿠버네티스] 레이블과 애너테이션 (0) | 2021.06.09 |
[쿠버네티스] 인그레스 (0) | 2021.06.08 |