Configmap과 Secret
- Configmap은 환경 변수를 Secret은 더 중요한 값을 넣음
- 예를 들어 Configmap은 인프라 환경, 어플리케이션 역할 지정, 외부 값을 안으로 넣기 위한 경로 등
- Secret은 DB의 비밀번호 등을 넣어놓음
- 하지만 Secret 값을 Configmap에 넣어도 되고 Configmap의 값을 Secret에 넣기도 가능
- Secret으로 저장하면 Base64로 인코딩을 시켜 저장하지만 누구나 디코딩 가능하기에 보안 기능은 없음
Configmap과 Secret의 차이
- 기본적으로 configmap은 env에 secret은 볼륨에 넣음. env는 pod가 실행될 때 처음에만 들어가고 볼륨은 수정하면 바로 반영이 되기 때문에 configmap은 수정해도 바로 반영이 안되고 secret은 바로 반영이 됨.
- 물론 configmap을 볼륨에 secret을 env에 넣기도 함.
- secret에는 type이 존재하기에 여러 종류를 지정 가능함
- 기본적으로는 opaque(그냥 base64로만 인코딩)로 지정이 되고 docker-registry나 tls 등도 지정이 가능함.
- secret은 대표적으로 3가지 관리 방법이 존재.
- 클러스터 안에서 직접 생성 및 관리
- 클러스터의 권한을 세부적으로 나누면 접근을 통한 보안 가능
- 자체 암호화를 한 후 App 안의 내부 로직으로 복호화 시키기
- 클러스터 내부로 들어오더라도 값을 알 수 없음
- 서드 파티를 사용하여 값 가져오기
- 클러스터 내부로 들어오더라도 값을 알 수 없음
Configmap를 이용한 통합
- 기존의 인프라는 각 담당자가 환경 변수를 담당하고 있었음
- 쿠버네티스의 configmap은 이러한 환경 변수를 통합하여 관리가 가능
출처: https://inf.run/7dm3q