시크릿
Table of contents
시크릿(Secret)
시크릿은 암호, 토큰 또는 키와 같은 소량의 중요한 데이터를 포함하는 오브젝트입니다. 이를 사용하지 않으면 중요한 정보가 파드 명세나 컨테이너 이미지에 포함될 수 있습니다. 시크릿을 사용한다는 것은 사용자의 기밀 데이터를 애플리케이션 코드에 넣을 필요가 없음을 뜻합니다.
시크릿은 시크릿을 사용하는 파드와 독립적으로 생성될 수 있기 때문에, 파드를 생성하고, 확인하고, 수정하는 워크플로우 동안 시크릿(그리고 데이터)이 노출되는 것에 대한 위험을 경감시킬 수 있습니다. 쿠버네티스 및 클러스터에서 실행되는 애플리케이션은 비밀 데이터를 비휘발성 저장소에 쓰는 것을 피하는 것과 같이, 시크릿에 대해 추가 예방 조치를 취할 수도 있습니다.
시크릿은 컨피그맵과 유사하지만 특별히 기밀 데이터를 보관하기 위한 것입니다.
주의:
시크릿은 암호, 토큰 또는 키와 같은 소량의 데이터를 포함하는 오브젝트 입니다. 시크릿을 사용한다는 것은 사용자의 기밀 데이터를 애플리케이션 코드에 넣을 필요가 없음을 뜻합니다. 쿠버네티스의 시크릿은 기본적으로 내부 데이터 저장소(etcd)에 암호화되지 않은 원문(평문) 상태로 저장됩니다. API 접근(access) 권한이 있는 모든 사용자 또는 etcd에 접근할 수 있는 모든 사용자는 시크릿을 조회하거나 수정할 수 있습니다. 또한 네임스페이스에서 파드를 생성할 권한이 있는 사람은 누구나 해당 접근을 사용하여 해당 네임스페이스의 모든 시크릿을 읽을 수 있습니다. 여기에는 디플로이먼트 생성 기능과 같은 간접 접근이 포함됩니다.
시크릿을 안전하게 사용하려면 최소한 다음의 단계를 따르는 것이 좋습니다.
- 시크릿에 대해 저장된 데이터 암호화(Encryption at Rest)를 활성화합니다.
- 시크릿에 대한 최소한의 접근 권한을 지니도록 RBAC 규칙을 활성화 또는 구성합니다.
- 특정 컨테이너에서만 시크릿에 접근하도록 합니다.
- 외부 시크릿 저장소 제공 서비스를 사용하는 것을 고려합니다.
시크릿 대표적인 용도
- 비밀번호
- TLS 인증서
- OAuth 토큰
- Docker Registry
- SSH 키
메뉴이동
글로벌 모드 Off ➡ 구성 ➡ 시크릿

화면구성
배포된 시크릿 정보를 제공합니다.

배포된 시크릿을 클릭하면 해당 시크릿의 상세 구성을 확인할 수 있습니다.

시크릿 생성
+생성을 클릭 후 내용을 입력하여 시크릿을 생성할 수 있습니다. 시크릿은 FORM/YAML로 입력할 수 있습니다.
일반 탭에서는 이름과 네임스페이스, 라벨, 어노테이션을 설정할 수 있습니다.

설정 탭에서는 데이터 타입을 선택할 수 있습니다.

시크릿 타입 및 입력 항목
| 데이터 타입 (Secret Type) | 입력 항목 | 설명 | 사용처 |
|---|---|---|---|
| Opaque | Key Value | 사용자 정의 키 사용자 정의 값 | 임의의 사용자 정의 데이터 |
| kubernetes.io/basic-auth | 아이디 패스워드 | 사용자 아이디를 입력합니다. 패스워드를 입력합니다. | 기본 인증을 위한 자격 증명(credential) |
| kubernetes.io/tls | 공개키 인증서(tlsCrt) 개인키 인증서(tlsKey) CA 인증서(tlsKey) | 인증서의 공개키를 입력합니다. 인증서의 개인키를 입력합니다. CA인증서를 입력합니다. | TLS 클라이언트나 서버를 위한 데이터 |
| kubernetes.io/ssh-auth | SSH 인증키 | SSH 인증키를 입력합니다. | SSH를 위한 자격 증명 |
| kubernetes.io/dockerconfigjson | 레지스트리주소 아이디 패스워드 이메일 | 이미지 저장소 주소를 입력합니다. 사용자 아이디를 입력합니다. 패스워드를 입력합니다. 이메일을 입력합니다. | 직렬화 된 ~/.docker/config.json 파일 |
시크릿 수정
수정하려는 시크릿을 선택하고 우측 상단의 수정 버튼을 클릭합니다.
설정 탭에서 데이터를 수정할 수 있습니다.

시크릿 삭제
삭제하려는 시크릿을 선택하고 우측의 삭제 버튼을 선택합니다. 모달에서 시크릿 이름을 입력하여 삭제합니다.
