해당 내용은 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과 같은 민감한 데이터를 처리하는 다른 더 좋은 방법이 있습니다.
'MLOps > Doker & Kubernetes' 카테고리의 다른 글
Udemy CKA 강의 정리 108: Scale Applications (0) | 2023.01.12 |
---|---|
Udemy CKA 강의 정리 107: Demo: Encrypting Secret Data at Rest (0) | 2023.01.12 |
Udemy CKA 강의 정리 102: Solution - Environment Variables (optional) (0) | 2023.01.12 |
Udemy CKA 강의 정리 101: Practice Test - Environment Variables (0) | 2023.01.12 |
Udemy CKA 강의 정리 103: Configure Secrets in Applications (0) | 2023.01.12 |
댓글