보안 비밀이 values.yaml에 있으면 안 되는 이유
차트와 Git에 일반 텍스트 보안 비밀을 저장할 때의 위험을 알아봅니다.
보안 비밀이 values.yaml에 있으면 안 되는 이유은(는) CoddyKit의 무료 Helm Academy 강의입니다. 이것은 4개 중 1번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 Helm Academy 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. Helm Academy 강의에는 총 4개의 강의가 포함되어 있습니다.
값은 일반 텍스트입니다
차트의 values.yaml은 암호화되지 않은 일반 텍스트입니다. 비밀번호를 포함해 그 안에 작성하는 모든 내용은 파일을 여는 누구나 읽을 수 있습니다.
깃은 영원히 기억합니다
차트는 보통 깃에 저장됩니다. 한 번 커밋된 시크릿은 삭제한 뒤에도 기록에 남으므로 유출은 영구적입니다. 🔒
유혹적인 실수
작동하게 만들기 위해 실제 비밀번호를 values.yaml에 바로 넣고 싶을 수 있습니다. 하지만 그 값은 모든 곳으로 퍼지므로 그렇게 하지 마십시오.
database:
password: super-secret-123헬름은 릴리스 데이터를 저장합니다
설치할 때 헬름은 병합된 값을 클러스터의 릴리스 시크릿에 저장합니다. 이제 평문 비밀번호도 그곳에 저장됩니다.
helm get values는 값을 노출합니다
릴리스에 접근할 수 있는 사람은 누구나 helm get values를 실행하여 전달한 내용을 평문 비밀번호까지 포함해 그대로 읽을 수 있습니다.
helm get values myappCI 로그에서도 유출됩니다
파이프라인에서 --set을 통해 시크릿을 전달하면 빌드 로그에 출력되는 경우가 많아, 팀 전체가 그대로 볼 수 있게 됩니다.
helm install myapp ./chart --set db.password=secret핵심 원칙
규칙은 간단합니다. 시크릿은 차트 안이나 깃, 명령줄에 평문으로 절대 두어서는 안 됩니다. 시크릿을 외부에 보관하십시오.
내장하지 말고 참조합니다
안전한 방식은 시크릿을 참조하는 것이지 내장하는 것이 아닙니다. 템플릿은 클러스터가 이미 보유한 시크릿 리소스를 가리킵니다.
valueFrom:
secretKeyRef:
name: db-credentials
key: password저장해야 한다면 암호화합니다
시크릿 값을 정말 깃에 저장해야 한다면 암호화된 상태로 저장하십시오. 그래야 복호화 키 없이는 커밋된 파일을 사용할 수 없습니다.
일반적인 세 가지 방법
이 문제를 해결하는 방법은 세 가지입니다. 도구로 값을 암호화하거나, 외부 저장소에서 시크릿을 가져오거나, 주입된 데이터로 시크릿 객체를 템플릿화하는 방법입니다.
인코딩은 보안이 아닙니다
쿠버네티스 시크릿의 Base64는 암호화가 아니라 단순한 인코딩입니다. 아무것도 숨기지 않으므로 인코딩된 값을 보호된 것으로 취급하지 마십시오.
빠른 확인
values.yaml에 비밀번호를 넣는 것이 왜 그렇게 위험합니까?
복습
values.yaml의 평문 시크릿이 깃, 릴리스 데이터, CI 로그를 통해 유출되는 이유와, 대신 시크릿을 참조하거나 암호화해야 하는 이유를 배웠습니다. 🎉
AI 튜터와 함께 YAML을(를) 배우세요 — 무료
브라우저에서 실제 코드를 작성하고 실행하며, 24/7 AI 튜터로부터 즉각적인 도움을 받고, 웹이나 앱에서 중단한 부분부터 계속 학습하세요.
- 코스
- 30
- 레슨
- 120
자주 묻는 질문
“보안 비밀이 values.yaml에 있으면 안 되는 이유” 강의는 무료인가요?
네 — “보안 비밀이 values.yaml에 있으면 안 되는 이유” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 Helm Academy 강의 전체를 잠금 해제할 수 있습니다. Helm Academy 강의에는 총 4개의 강의가 포함되어 있습니다.
“보안 비밀이 values.yaml에 있으면 안 되는 이유”에서 뭘 배우나요?
차트와 Git에 일반 텍스트 보안 비밀을 저장할 때의 위험을 알아봅니다. 브라우저에서 직접 실행하는 실습 코드로 Helm Academy을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.
Helm Academy을(를) 시작하는 데 경험이 필요한가요?
사전 경험은 필요하지 않습니다. CoddyKit의 Helm Academy은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 1번째 강의입니다.
“보안 비밀이 values.yaml에 있으면 안 되는 이유” 강의는 얼마나 걸리나요?
대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.
이 Helm Academy 강의에서 코드를 작성하고 실행할 수 있나요?
네. 모든 Helm Academy 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.
이 강의의 모든 강의
- 보안 비밀이 values.yaml에 있으면 안 되는 이유
- helm-secrets와 SOPS로 값 암호화하기
- 외부 보안 비밀 연산자에서 가져오기
- Kubernetes 보안 비밀 리소스 템플릿화하기