본문 바로가기
MLOps/Doker & Kubernetes

Udemy CKA 강의 정리 104: A note about Secrets!

by 공부하는 무니 2023. 1. 12.
반응형

해당 내용은 Udemy의 Certified Kubernetes Administrator (CKA) with Practice Tests 강의를 공부한 내용입니다. 내용을 그대로 번역하기보다는, 제가 이해하기 쉬운 대로 수정한 부분들이 있습니다.

⚠️ 영어 독해가 많이 부족합니다. 틀린 내용이 있으면 알려주시면 감사하겠습니다.


Secrets는 base64 형식으로 데이터를 인코딩합니다. base64로 인코딩된 secret를 가진 사람은 누구나 쉽게 secret을 해독할 수 있습니다. 따라서 secret은 그다지 안전하지 않은 것으로 간주될 수 있습니다.
Secrets의 safety 개념은 Kubernetes에서 약간 혼란스럽습니다. kubernetes 공식문서와 많은 블로그에서는 secret을 민감한 데이터를 저장하기 위한 "더 안전한 옵션"으로 언급합니다.password 및 기타 중요한 데이터가 실수로 노출될 위험이 줄어들기 때문에 일반 텍스트로 저장하는 것보다 안전합니다. 제 생각에는 안전한 것은 secret 그 자체가 아니라 그것을 둘러싼 practices입니다.


secret은 암호화되지 않으므로 그런 의미에서 더 안전하지 않습니다. 그러나 secret 사용에 대한 몇 가지 모범 사례는 secret를 더 안전하게 만듭니다. 다음과 같은 best pratices에서와 같이 말입니다.
- secret object definition 파일을 소스 코드 리포지토리에 checking-in하지 않습니다.
- ETCD에 암호화되어 저장되도록 secret에 대한 Encrytion at REST를 활성화합니다.

또한 아래는 kubernetes가 secret을 처리하는 방식입니다.
- secret은 해당 노드의 파드에 필요한 경우에만 노드로 전송됩니다.
- Kubelet은 secret이 디스크 저장소에 기록되지 않도록 비밀을 tmpfs에 저장합니다.
- secret에 의존하는 Pod가 삭제되면 kubelet은 secret 데이터의 로컬 복사본도 삭제합니다.

여기에서 secret 사용의 보호위험에 대해 읽어보십시오.

Helm Secrets, HashiCorp Vault와 같은 도구를 사용하는 것과 같이 Kubernetes의 secret과 같은 민감한 데이터를 처리하는 다른 더 좋은 방법이 있습니다. 

반응형

댓글