Kubernetes Secret์ ๋จ์ Base64 ์ธ์ฝ๋ฉ์ด๋ค (์ํธํ๊ฐ ์๋๋ค)
etcd์ ํ๋ฌธ์ผ๋ก ์ ์ฅ๋๋ฉฐ API (access)์ ๊ทผ ๊ถํ์ด ์๋ ๋ชจ๋ ์ฌ์ฉ์ ๋๋ etcd์ ์ ๊ทผํ ์ ์๋ ๋ชจ๋ ์ฌ์ฉ์๋ ์ํฌ๋ฆฟ์ ์กฐํํ๊ฑฐ๋ ์์ ํ ์ ์๋ค. ๋ค์์คํ์ด์ค์์ ํ๋๋ฅผ ์์ฑํ ๊ถํ์ด ์๋ ์ฌ๋์ ๋๊ตฌ๋ ํด๋น ๋ค์์คํ์ด์ค์ ๋ชจ๋ ์ํฌ๋ฆฟ์ ์ฝ์ ์ ์๋ค .
๋ํ, kubectl get secrets -o yaml ๋ก ๋ณด๋ฉด ์ฝ๊ฒ ๋ณต์ ๊ฐ๋ฅํ๋ค
๊ทธ๋ผ์๋ Secret์ ์ฐ๋ ์ด์ ๋ ์ด์ ๋ ๋ฒจ์์ ์์ ์ฑ์ ๋์ด๋ ๊ตฌ์กฐ๊ฐ ์๊ธฐ ๋๋ฌธ์ด๋ค
์๋ฅผ ๋ค์ด,
(1) ๋ ธ๋ ๋จ์๋ก ์ ํํ์ฌ ์ ๋ฌํ ์ ์๋ค
- Secret์ ํ์ํ Pod๊ฐ ์๋ Node์๋ง ์ ๋ฌ๋๋ค
- ์ ์ฒด ํด๋ฌ์คํฐ์ ํผ์ง์ง ์์ผ๋ฏ๋ก ๊ณต๊ฒฉ ํ๋ฉด์ (?)์ด ๊ฐ์ํ๋ค
(2) ๋์คํฌ๊ฐ ์๋๋ผ ๋ฉ๋ชจ๋ฆฌ(tmpfs)์ ์ ์ฅ๋๋ค
- ๋์คํฌ ํ์ทจ ๊ณต๊ฒฉ์ ๋ฐฉ์งํ ์ ์๋ค
(3) Pod ์ญ์ ์ Secret๋ ๊ฐ์ด ์ญ์ ๋๋ค
- Pod๊ฐ ์ฌ๋ผ์ง๋ฉด Kubelet์ด Secret๋ ์ ๋ฆฌํ๋ค
- ๋ฐ๋ผ์, ์์กด ๋ฐ์ดํฐ ๋ฆฌ์คํฌ๊ฐ ๊ฐ์ํ๋ค
(4) Git์ ์ ์ฌ๋ฆฌ๋ฉด ์ต์ํ์ ์ฌ๊ณ ๋ฐฉ์ง
- Secret YAML์ repo์ ์ ์ฌ๋ฆฌ๋ ๊ฒ๋ง์ผ๋ก๋ ์ฌ๋์ ์ค์๋ก ์ ์ถ๋๋ ์ฌ๊ณ ๋ฅผ ๋ฐฉ์งํ ์ ์๋ค
https://kubernetes.io/ko/docs/concepts/security/secrets-good-practices/
etcd Encryption at Rest ํ์ฑํhttps://kubernetes.io/docs/tasks/administer-cluster/encrypt-data/
RBAC์ผ๋ก ์ ๊ทผ ์ ํ https://kubernetes.io/ko/docs/reference/access-authn-authz/authorization/
External Secret ๊ด๋ฆฌ ๋๊ตฌ ์ฌ์ฉhttps://secrets-store-csi-driver.sigs.k8s.io/concepts.html#provider-for-the-secrets-store-csi-driver