환경 설정과 시크릿을 배포 환경에서 어떻게 분리해야 하나요?
답변 포인트
설정과 민감 정보의 생명주기를 기준으로 정의, 장점, 한계, 예시를 함께 설명해보세요.
정답 및 해설
빠른 요약
일반 설정은 ConfigMap, 민감 값은 Secret이나 외부 Secret Manager로 분리합니다. 운영에서는 접근 제어, 암호화, 회전, 감사 로그까지 고려해야 합니다.
일반 설정은 ConfigMap, 민감 값은 Secret이나 외부 Secret Manager로 분리합니다. 운영에서는 접근 제어, 암호화, 회전, 감사 로그까지 고려해야 합니다.
핵심 개념
핵심 기준은 설정과 민감 정보의 생명주기입니다.
환경 설정은 코드와 분리해야 이미지 재사용성과 환경별 배포 유연성이 좋아집니다. 공개되어도 큰 문제가 없는 값은 ConfigMap에, 비밀번호·토큰·키는 Secret이나 Vault, AWS Secrets Manager 같은 외부 Secret Manager에 둡니다.
동작 흐름
- 요구사항을 성능, 안정성, 보안, 복구 목표로 나눠 정의합니다.
- 정상 흐름과 장애 흐름에서 각 구성 요소가 어떻게 동작하는지 확인합니다.
- 자동화와 관찰 지표로 변경 결과를 검증합니다.
- 롤백, 복구, 확장, 비용 관리까지 운영 절차로 문서화합니다.
실제 예시
env:
- name: LOG_LEVEL
valueFrom:
configMapKeyRef: { name: api-config, key: logLevel }
- name: DB_PASSWORD
valueFrom:
secretKeyRef: { name: db-secret, key: password }예시는 핵심 구조를 단순화한 것입니다. 실무에서는 운영 환경, 장애 상황, 보안 요구사항에 맞게 세부 설정을 조정해야 합니다.
실무에서 주의할 점
- 자동화가 있어도 롤백과 복구 절차를 실제로 연습하지 않으면 장애 때 동작하지 않을 수 있습니다.
- 관찰 지표가 없으면 장애 원인을 추측에 의존하게 됩니다.
- 확장은 애플리케이션 코드, 데이터베이스, 네트워크, 외부 의존성 한계를 함께 봐야 합니다.
함께 연결해서 보면 좋은 키워드
ConfigMap, Secret, SecretManager, Security
면접에서 짚으면 좋은 포인트
- 정상 동작뿐 아니라 장애, 롤백, 관찰 가능성까지 함께 설명하면 실무적인 답변이 됩니다.
- 설정 예시를 말할 때 보안, 비용, 운영 자동화의 trade-off도 함께 짚는 것이 좋습니다.
정리
한 줄로 정리하면, 일반 설정은 ConfigMap, 민감 값은 Secret이나 외부 Secret Manager로 분리합니다. 운영에서는 접근 제어, 암호화, 회전, 감사 로그까지 고려해야 합니다. 개념의 정의뿐 아니라 장애 시 동작, 운영 지표, 자동화와 복구 전략까지 함께 이해하는 것이 중요합니다.