인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

하나님의 프로필 이미지

작성한 질문수

비전공자도 이해할 수 있는 쿠버네티스 입문/실전

Secret와 ConfigMap의 차이가 궁금합니다!

해결된 질문

작성

·

69

0

보안적으로 민감한 변수를 저장하기 위해 활용한다고 배웠습니다.

그러나 Secret의 작성 방법이 별다른 암복호화 로직없이 configMap과 99% 동일한 것 같아서요.

 

같은 repository에서 Secret과 ConfigMap가 함께 위치하는 경우

ConfigMap에 접근할 수 있는 사용자는 Secret에도 손쉽게 접근할 수 있을것 같다는 생각이 듭니다.

 

Secret이 ConfigMap보다 어떠한 측면에서 보안상의 이점이 있는지 궁금합니다.

답변 2

1

JSCODE 박재성님의 프로필 이미지
JSCODE 박재성
지식공유자

안녕하세요 하나님! 좋은 질문 주셨네요:)

 

'노출되면 안 되는 설정 값(Secret)'과 '노출돼도 상관없는 설정값'을 분리했다는 점에서 이점이 있습니다.

이렇게 분리를 했기 때문에 Repository에서 Secret에 관련된 파일만

.gitignore처리를 해서 관리를 할 수 있게 됩니다.

그러면 사용자는 Secret에 대한 값만 접근할 수 없게 관리를 할 수 있습니다.

 

이 외로 궁금한 점 생기시면 또 질문 남겨주세요~~~~

0

인프런 AI 인턴님의 프로필 이미지

안녕하세요, 인프런 AI 인턴입니다. 하나님!

Kubernetes에서 ConfigMapSecret은 모두 환경 설정 데이터를 저장하고 관리하는 데 사용됩니다. 하지만 둘 사이의 주요 차이점은 보안과 관련된 사항입니다.

  1. 암호화 여부:

    • ConfigMap: 일반 텍스트 형식으로 저장되기 때문에, 보호된 데이터(예: 비밀번호, API 키 등)를 저장하는 데는 적합하지 않습니다.
    • Secret: 기본적으로 Base64 인코딩된 형식으로 저장되며, Kubernetes 클러스터에서 보다 안전하게 민감한 데이터를 보호할 수 있도록 설계되었습니다. Kubernetes 1.13 버전 이후부터는 encryption at rest 기능을 지원하여, API 서버에 연결된 백엔드 데이터베이스에 저장된 Secret 데이터를 암호화할 수 있습니다.
  2. 액세스 제어:

    • 기본적으로 Secret은 ConfigMap보다 더 제한적인 액세스 제어 정책을 통해 보호될 수 있도록 설계되었습니다. 이를 통해 특정 Pod에만 Secret 정보를 노출하는 방식으로 운영할 수 있습니다.
  3. 사용 시나리오:

    • ConfigMap은 주로 환경 설정 파일, 명령줄 인수 등과 같이 비보안성을 요구하는 데이터를 저장하는 데 쓰입니다.
    • Secret은 비밀번호, OAuth 토큰, SSH 키 등 보안이 중요한 데이터를 저장하는 목적에 사용됩니다.

관련하여 더 구체적인 설명을 확인하고 싶으시다면 기존의 유사한 질문을 참고해 보세요:
- ConfigMap, Secret 매니패스트 파일을 변경했을 때 꼭 Deployment를 restart 해야 하나요?

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

하나님의 프로필 이미지

작성한 질문수

질문하기