작성
·
31
0
안녕하세요 helm사용 시에 배포환경에 따라 values.yaml을 구성해야 하는 것은 이해했습니다. 그렇다면 만약 prd환경의 values.yaml은 결국 깃허브에 올라가있는 yaml을 활용하는 것이고, 그것 또한 평문으로 저장이 되어있으면 안될거같은 생각이 드는데 , 실무적으로 사용하는 방법이 따로 있나요 ?
ex) 젠킨스 credentials - > values.yaml 바인딩
답변 2
0
네, 맞습니다.
일단 관리자용 github를 별도로 관리해야 겠지만, 더 보안을 높이기 위해서는 평문으로 저장이 되면 안되죠.
그래서 실제 운영에서는 다양한 암호화 솔루션을 도입합니다.
결과적으로 github에 평문으로 저장하면 안되지만 그렇게 하기 위한 방법은 너무 다양하고, 그걸 지원해주는 솔루션도 많아서, 꼭 이렇게 해야 된다는 방법은 없어요.
말씀하신 대로 젠킨스 credentials를 사용해서 helm 배포시에 동적으로 값을 넣어도 되고, 오픈소스마다 내부적으로 제공해주는 보안 기능을 사용하면, 평문이 아닌 암호화 된 코드를 넣을 수도 있습니다. 그건 각 오픈소스마다 보안 쪽 가이드를 찾아봐야 되고요.
helm 배포만 생각하면, helm에서도 말씀하신 부분에 대한 다양한 솔루션(SOPS) 들이 있어요.(https://helm.sh/ko/docs/community/related/)
그리고 대표적인 오픈소스는 valut(https://developer.hashicorp.com/vault/tutorials/kubernetes-introduction/vault-secrets-operator)도 있는데, 러닝커브는 있지만 쿠버네티스에서 암호화를 적용할 곳은 여러곳이 있고, 그런 걸 통합적으로 암호화를 해주는 솔루션을 사용하는 게 좀더 통상적이긴 합니다.
0
안녕하세요, 인프런 AI 인턴입니다. yongjun413님,
Helm을 사용하면서 배포 환경에 따라 values.yaml
파일을 구성하는 것은 매우 중요합니다. 그러나 실제로 프로덕션 환경의 민감한 설정 정보가 평문으로 깃허브에 저장된다면 보안상 위험이 따릅니다. 이러한 문제를 해결하기 위해 실무적으로 다양한 방법이 사용됩니다.
Helm Secrets 플러그인: Helm의 플러그인으로, values.yaml
파일에서 민감한 정보를 암호화하여 저장할 수 있도록 도와줍니다. 이 방법을 통해 깃허브에 저장되는 파일은 안전하게 보호될 수 있습니다.
Jenkins 및 다른 CI/CD 도구와의 연동: Jenkins의 Credentials 기능을 사용하여 민감한 정보를 환경 변수로 주입하는 방법이 일반적입니다. 배포 시점에 Jenkins가 이 정보를 values.yaml
에 자동으로 바인딩하여 배포하는 방식입니다.
HashiCorp Vault와 같은 비밀 관리 도구 사용: 이러한 도구를 통해 민감한 정보를 안전하게 저장하고 관리하며, 필요할 때마다 애플리케이션의 배포 파이프라인에서 이를 불러와 사용하는 방법도 있습니다.
이러한 방법들을 조합하여, 결국 중요한 데이터는 안전하게 관리하면서도 필요 시 쉽게 접근할 수 있는 환경을 구축하는 것이 핵심입니다.
아래는 관련된 기존의 논의와 문제 해결 링크입니다:
- Helm관련 궁금증이 있습니다. - 다양한 배포 방식과 구성 방법에 대한 토론이 포함되어 있습니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.