์๋ ํ์ธ์ ๊ตฌ๋ ์๋, DevOps ์์๊ณผ ๊ธฐ์ ์ง์์ ์ ๋ฆฌํด์ ๊ณต์ ํด๋๋ฆฌ๋ DevOps ์ฌํ์ ์ํ ์์์ง์ ๋๋ค.
์ด๋ฒ ๊ธ์์๋ ์ต๊ทผ CNCF์์ ์กธ์ ํ cert-manager๋ผ๋ Kubernetes ๋ด๋ถ TLS ์ธ์ฆ์ ๊ด๋ฆฌ ํ๋ก์ ํธ์ ๋ํด ์ดํด๋ณด๋ฉด์, TLS ์ธ์ฆ์์ ๋ํด์๋ ์์๋ณด๊ฒ ์ต๋๋ค.
๐TLS ์ธ์ฆ์๊ฐ ๋ฌด์์ธ๊ฐ์?
Kubernetes ๋ด๋ถ์์ ๋ฐฐํฌ๋ ์ฌ๋ฌ ์๋น์ค๊ฐ ์๋ก ํต์ ํ ๋, ์ํธํ๋์ง ์์ HTTP๋ณด๋ค ๋ณด์ ์ธก๋ฉด์์ ์ฐ์ํ HTTPS๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ๊ฐ ๋ง์๋ฐ์. ์ด๊ฑด ์ค์ํ์์ ์ฌ์ฉ๋๋ ๋๋ถ๋ถ์ ์น ์๋น์ค๋ ๋ง์ฐฌ๊ฐ์ง์ ๋๋ค.
HTTPS๋ ๊ธฐ์กด HTTP์ TLS๋ผ๋ ํ๋กํ ์ฝ์ ์ฌ์ฉํด์ ์ํธํํ ๊ฒ์ผ๋ก, ์ด TLS ๋๋ถ์ HTTPS๋...
- ์ธ๋ถ์ ์ 3์๊ฐ ์ ์ก๋๋ ๋ฐ์ดํฐ๋ฅผ ๋ณด์ง ๋ชปํ๊ฒ ์จ๊ธฐ๊ณ , (์ํธํ)
- ์ ๋ณด๋ฅผ ๊ตํํ๋ ๋น์ฌ์๊ฐ ์ค์ ๋ก ์์ฒญ๋ ๋น์ฌ์์์ ๋ณด์ฅํ๋ฉฐ, (์ธ์ฆ)
- ์ ์กํ๋ ๋ฐ์ดํฐ๊ฐ ์์กฐ๋๊ฑฐ๋ ๋ณ์กฐ๋์ง ์์์์ ํ์ธ ๊ฐ๋ฅํ๊ฒ ๋ฉ๋๋ค. (๋ฌด๊ฒฐ์ฑ)
์ด๋ ๊ฒ TLS๊ฐ ๋ณด์ ๊ด์ ์์ ๋ฐ์ด๋ ์ด์ ๋ ์ธ์ฆ์๋ผ๋ ๊ฐ๋ ์ ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์ธ๋ฐ์. ์ธ์ฆ์๋ ์๋์ ๊ฐ์ ์ญํ ์ ํฉ๋๋ค.
- ํด๋ผ์ด์ธํธ(์์ฒญ์ ํ๋ ์ชฝ)์์ ์ ๊ทผํ๋ ค๋ ์๋ฒ(์์ฒญ์ ๋ฐ๋ ์ชฝ)๊ฐ ์ ๋ขฐํ ์ ์๋ ์๋ฒ์์ ๋ณด์ฆ
- ํต์ ์ค ์ํธํํ ๋ ์ฌ์ฉํ๋ ์ ๋ณด๋ฅผ ํด๋ผ์ด์ธํธ์๊ฒ ์ ๋ฌ
์ธ์ฆ์์๋ ํด๋น ์๋ฒ์ ๋ํ ๋๋ฉ์ธ ์ ๋ณด์ ํต์ ์ค ์ํธํํ ๋ ์ฌ์ฉํ ์ ๋ณด(์ ํํ๋ ์๋ฒ์ ๊ณต๊ฐ ํค์ ๋๋ค.)๊ฐ ๋ด๊ฒจ์๋๋ฐ์. ์ด ์ธ์ฆ์๋ ์๋ฒ๊ฐ ๊ฐ์ง๊ณ ์๋ค๊ฐ, ํด๋ผ์ด์ธํธ๊ฐ ํด๋น ์๋ฒ์๊ฒ ์์ฒญ์ ํ๋ฉด ์๋ฒ๊ฐ ํด๋ผ์ด์ธํธ์๊ฒ ์ ๋ฌํฉ๋๋ค.
ํด๋ผ์ด์ธํธ๋ ์๋ฒ๋ก๋ถํฐ ๋ฐ์ ์ธ์ฆ์๋ฅผ ์ด์ฉํด์ ํด๋น ์๋ฒ๊ฐ ์ ๋ขฐํ ์ ์๋์ง ํ์ธํ๊ณ , ์ดํ ํด๋น ์๋ฒ์ ํต์ ํ ๋ ์ธ์ฆ์์ ํฌํจ๋ ์๋ฒ์ ๊ณต๊ฐ ํค๋ฅผ ์ด์ฉํ์ฌ ์ํธํ ํต์ ์ ํ ์๋ ์๋ ๊ฑฐ์ฃ .
์ด ์ธ์ฆ์๋ฅผ TLS ํ๋กํ ์ฝ์ ์ฌ์ฉํ ์ธ์ฆ์๋ผ๊ณ ํด์ TLS ์ธ์ฆ์๋ผ๊ณ ๋ถ๋ฆฝ๋๋ค.
โ์ ๋ขฐํ ์ ์๋ ์๋ฒ์ธ ๊ฒ์ ์ด๋ป๊ฒ TLS ์ธ์ฆ์๋ก ์ ์ ์๋์?
TLS ์ธ์ฆ์๋ ์๋ฒ๊ฐ ์๋ ๋ณ๋์ ์ฃผ์ฒด๊ฐ ๋ฐ๊ธํ๋๋ฐ์. ์ผ๋ฐ์ ์ผ๋ก CA(Certificate Authority)๋ผ๊ณ ํ๋ ๊ณต์ธ๋ ๊ธฐ๊ด์์ TLS ์ธ์ฆ์๋ฅผ ๋ฐ๊ธํฉ๋๋ค.
์๋ฒ๊ฐ ์์ ์ ์ ๋ณด์ ๊ณต๊ฐ ํค๋ฅผ CA๋ก ๋ณด๋ด ์ธ์ฆ์ ์์ฑ์ ์์ฒญํ๋ฉด, CA๋ CA์ ๋น๊ณต๊ฐ ํค๋ฅผ ์ด์ฉํด์ ์๋ฒ๊ฐ ๋ณด๋ธ ๋๋ฉ์ธ ์ ๋ณด์ ์๋ฒ์ ๊ณต๊ฐ ํค๋ฅผ ์ํธํํจ์ผ๋ก์จ ์ธ์ฆ์๋ฅผ ์์ฑํ ๋ค์์ ์๋ฒ๋ก ์ ๋ฌํฉ๋๋ค.
ํด๋ผ์ด์ธํธ๊ฐ ํด๋น ์๋ฒ์ ์ฐ๊ฒฐ์ ์๋ํ ๋, ์๋ฒ๋ก๋ถํฐ TLS ์ธ์ฆ์๋ฅผ ๋ฐ๋๋ค๊ณ ํ์์ฃ . ์ด TLS ์ธ์ฆ์๋ CA์ ๋น๊ณต๊ฐ ํค๋ก ์ํธํ๋์ด ์๋๋ฐ์.
CA์ ๊ณต๊ฐ ํค๋ ๋๊ตฌ์๊ฒ๋ ๊ณต๊ฐ๋์ด ์๊ธฐ ๋๋ฌธ์ ํด๋ผ์ด์ธํธ๋ TLS ์ธ์ฆ์๋ฅผ CA์ ๊ณต๊ฐ ํค๋ก ๋ณตํธํ ์๋๋ฅผ ํ ๊ฒ์ด๊ณ , ๋ง์ฝ TLS ์ธ์ฆ์ ๋ณตํธํ์ ์ฑ๊ณตํ๋ฉด ํด๋น ์ธ์ฆ์๋ CA๊ฐ ๋ฐ๊ธํ ์ง์ง ์ธ์ฆ์๋ผ๋ ๋ป์ด๊ฒ ์ฃ .
์ด ๊ณผ์ ์ผ๋ก ํด๋น ์๋ฒ๊ฐ ์ ๋ขฐํ ์ ์์์ TLS ์ธ์ฆ์๋ฅผ ํตํด ์ ์ ์๋ ๊ฒ์ ๋๋ค.
TLS ์ธ์ฆ์์ ๋ํด ์ดํด๋ณด๋ค๋ณด๋... ์๊ทผ์ฌ์ฉ ๊ณต๊ฐ ํค์ ๋น๊ณต๊ฐ ํค๋ผ๋ ๊ฐ๋ ์ด ์๋ก ๋ฑ์ฅํ๋๋ฐ์. TLS ์ธ์ฆ์์์ ๊ณต๊ฐ ํค์ ๋น๊ณต๊ฐ ํค, ๋๋ ๋น๋์นญ ์ํธํ ๋ฐฉ์์ด๋ผ๊ณ ํ๋ ๊ฐ๋ ์ ๋ ์ ์๋ ๊ด๊ณ์ด๋ค๋ณด๋ ๊ฐ๋ณ๊ฒ ์ง๊ณ ๊ฐ๊ฒ ์ต๋๋ค.
์ฃผ๊ณ ๋ฐ๋ ๋ฐ์ดํฐ๋ฅผ ์ํธํํ๋ ๋ฐฉ์ ์ค ํ๋์ธ ๋น๋์นญ ์ํธํ ๋ฐฉ์์, ํ ์์ ๊ณต๊ฐ ํค์ ๋น๊ณต๊ฐ ํค๋ฅผ ๊ฐ์ง๊ณ ๋ฐ์ดํฐ๋ฅผ ์ํธํํ ์ ์์ต๋๋ค. ์ด ๋ฐฉ์์...
- ๊ณต๊ฐ ํค๋ก ์ํธํํ ๋ฐ์ดํฐ๋ ๊ฐ์ ์์ ๋น๊ณต๊ฐ ํค๋ก ํ ์ ์๊ณ ,
- ๋น๊ณต๊ฐ ํค๋ก ์ํธํํ ๋ฐ์ดํฐ๋ ๊ฐ์ ์์ ๊ณต๊ฐ ํค๋ก ํ ์ ์๋ ๊ฑด๋ฐ์.
์ด๋ ๊ฒ ๋ฐ์ดํฐ ์ํธํ์ ๋ณตํธํ์ ๋ ๊ฐ์ง ํค๋ฅผ ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์ ๋ ์์ ํ๋ค๋ ์ฅ์ ๊ณผ ๋๋ถ์ด ํน์ง์ด ํ ๊ฐ์ง ๋ ์์ต๋๋ค. ์ํธํ๋ฅผ ๊ณต๊ฐ ํค๋ก ํ๋๋, ๋น๊ณต๊ฐ ํค๋ก ํ๋๋์ ๋ฐ๋ผ ์ฌ์ฉ๋๋ ๋ถ์ผ๊ฐ ๋ฌ๋ผ์ง๋ค๋ ์ ์ธ๋ฐ์.
์์์ ์ดํด๋ดค๋ TLS ์ธ์ฆ์ ์ฌ์ฉ ๊ณผ์ ์ ๋ค์ ๋ณด๋ฉด, ๋น๋์นญ ์ํธํ๋ฅผ ์ฌ์ฉํ๋ ๋ฐฉ์์ด ๋ ๊ฐ์ง๋ก ๋๋ฉ๋๋ค.
- CA๊ฐ ์์ ์ ๋น๊ณต๊ฐ ํค๋ก ์ํธํํ ์ธ์ฆ์๋ฅผ ํด๋ผ์ด์ธํธ๊ฐ CA์ ๊ณต๊ฐ ํค๋ก ๋ณตํธํํ์ฌ CA๊ฐ ๋ฐ๊ธํ ์ธ์ฆ์์์ ํ์ธ
- ํด๋ผ์ด์ธํธ๊ฐ ์ธ์ฆ์์ ํฌํจ๋ ์๋ฒ์ ๊ณต๊ฐ ํค๋ก ํต์ ์ ์ํธํํ์ฌ ์๋ฒ๋ก ์ ์ก (์ดํ ์๋ฒ๊ฐ ์์ ์ ๋น๊ณต๊ฐ ํค๋ก ๋ณตํธํ)
์ฆ, ๋น๊ณต๊ฐ ํค๋ก ์ํธํํ ๊ฒฝ์ฐ์๋ ์ธ์ฆ์ ์ค์ ์ ๋ ๊ฒ์ด๊ณ , ๊ณต๊ฐ ํค๋ก ์ํธํํ ๊ฒฝ์ฐ์๋ ๋ฐ์ดํฐ ๋ณด์์ ์ค์ ์ ๋ ๊ฒ์ด๋ผ๊ณ ํ ์ ์์ต๋๋ค.
์ง๊ธ๊น์ง ์์๋ณธ TLS ์ธ์ฆ์๋ฅผ Kubernetes ํด๋ฌ์คํฐ ๋ด์์ ์ฝ๊ฒ ๋ฐ๊ธํ๊ณ ์๋น์ค๊ฐ ์ฌ์ฉํ ์ ์๋๋ก ๊ด๋ฆฌ ๊ฐ๋ฅํ ๊ฒ์ด ๋ฐ๋ก, ๋งจ ์์์ ์ด์ผ๊ธฐํ๋ cert-manager์ ๋๋ค.
๐cert-manager๊ฐ k8s ๋ด๋ถ์์ TLS ์ธ์ฆ์๋ฅผ ์ด๋ป๊ฒ ๊ด๋ฆฌํ๋์?
cert-manager๋ ๋ ๊ฐ์ง CRD(Custom Resource Definition, k8s์์ ์ปค์คํ ์ผ๋ก ์ ์ํ ๋ฆฌ์์ค ์ ์)๋ฅผ ์ฌ์ฉํ๋๋ฐ์. ๋ฐ๋ก, Issuer์ Certificate์ ๋๋ค.
Issuer๋ Kubernetes ํด๋ฌ์คํฐ ๋ด์์ ์ฌ์ฉํ TLS ์ธ์ฆ์๋ฅผ ๋ฐ๊ธํด์ฃผ๋ ๋ฆฌ์์ค์ ๋๋ค. ์์์ ์ดํด๋ดค๋ CA์ ๊ฐ์ ์ญํ ์ ์ํํ๋๋ฐ์.
์ธ๋ถ์ ์ด๋ฏธ ์กด์ฌํ๋ CA์ ์ฐ๋๋ Issuer Type๋ค์ด ์ด๋ฏธ ๊ฐ๋ฐ๋์ด ์๊ธฐ ๋๋ฌธ์ ์ด๊ฑธ ์ฌ์ฉํ ์๋ ์๊ณ , ํด๋ฌ์คํฐ ๋ด๋ถ์์ ์ง์ ์๋ช ํ๋ Issuer Type์ ์ฌ์ฉํด์ Issuer ๋ฆฌ์์ค๋ฅผ ๋ฐฐํฌํ ์ ์์ต๋๋ค.
๋ค์์ Certificate์ ๋๋ค. Issuer๊ฐ ๋ฐ๊ธํ ์ธ์ฆ์์ ๋ํด ์ ์ํ๋ ๋ฆฌ์์ค์ธ๋ฐ์. ์ธ์ฆ์ ๋์ ๋๋ฉ์ธ๊ณผ ์ ํจ ๊ธฐ๊ฐ, ๊ฐฑ์ ์์ ๋ฑ์ ์ ์ํ Certificate ๋ฆฌ์์ค๋ฅผ ๋ฐฐํฌํ๋ฉด, ๋ฏธ๋ฆฌ ๋ฐฐํฌ๋์ด ์๋ Issuer ๋ฆฌ์์ค๊ฐ ์ด๋ฅผ ๊ฐ์งํ์ฌ ์๋ช ํ ์ธ์ฆ์์ ํค ์ ๋ณด ๋ฑ์ Kubernetes Secret ๋ฆฌ์์ค๋ก ์ ์ฅํฉ๋๋ค.
์ด๋ ๊ฒ cert-manager๋ Kubernetes ๋ด์์ ์ฌ์ฉํ ์ธ์ฆ์๋ฅผ ์ฝ๊ฒ ๋ฐ๊ธ ๋ฐ ๊ด๋ฆฌํ ์ ์๋ค๋ ํน์ง ๋๋ถ์ ์ฌ์ฉ์๋ ์ ์ ๋ ๋ง์์ง๊ณ ์๋๋ฐ์. ์ต๊ทผ CNCF์์ ์กธ์ ์ ๋ฌ์ฑํ๊ธฐ ๋๋ฌธ์ ์ดํ ๋ ๋ง์ ์ ์ฉ ์ฌ๋ก๊ฐ ๊ธฐ๋๋๋ ํ๋ก์ ํธ์ ๋๋ค.
๐ญ๋ง์น๋ฉฐ...
์ด๋ฒ ์์์ง์์ cert-manager๋ผ๋ CNCF ํ๋ก์ ํธ์ ๋ํด ๋ค๋ฃจ๋ฉด์, TLS ์ธ์ฆ์์ ๋ํด์๋ ์ดํด๋ดค๋๋ฐ์.
ํน์ ์ด๋ฒ ๋ด์ฉ ๊ด๋ จํด์ ๋ ๊ถ๊ธํ ์ ์ด ์์ผ์๋ค๋ฉด ์๋ ๋ฉ์ผ๋ฆฌ ๋๊ธ ๋จ๊ฒจ์ฃผ์ธ์.๐
๊ทธ๋ผ, ๋ค์ ์์์ง์์ ๋ณด๋ค ์์ฐจ๊ณ ํฅ๋ฏธ๋ก์ด ๋ด์ฉ์ผ๋ก ์ฐพ์๋ต๊ฒ ์ต๋๋ค.
์ค๋๋ ๊ฐ์ฌํฉ๋๋ค, ๊ตฌ๋ ์๋ ๐บ
๐References
์๊ฒฌ์ ๋จ๊ฒจ์ฃผ์ธ์