์๋น์ค ๋ณด์(๊ธฐ์กด)
์ด ๋ฌธ์์์๋ ๋ถํ ๋ถ์ฐ API๋ฅผ ์ฌ์ฉํ๋ Cloud Service Mesh์ ์๋น์ค ๋ณด์์ ๊ฐ๋ตํ๊ฒ ์ค๋ช ํฉ๋๋ค. ์ด ๋ฌธ์๋ ์ธ์ฆ, ์ํธํ, ์น์ธ์ ๋ฐฐํฌ์ ์ถ๊ฐํ๋ ค๋ Cloud Service Mesh ์ฌ์ฉ์๋ฅผ ๋์์ผ๋ก ํฉ๋๋ค. ์ด ๋ฌธ์๋ ์ฌ์ฉ์๊ฐ Envoy ๋ฐ ํ๋ก์๋ฆฌ์ค gRPC ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฌ์ฉํ๋ Cloud Service Mesh์ ์ต์ํ๋ค๊ณ ๊ฐ์ ํฉ๋๋ค.
์ด ๋ฌธ์๋ ๋ถํ ๋ถ์ฐ API๋ฅผ ์ฌ์ฉํ๋ ๊ตฌ์ฑ์ ์ ์ฉ๋ฉ๋๋ค. ์๋น์ค ๋ผ์ฐํ API๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ ์๋น์ค ๋ณด์์ ์ฐธ์กฐํ์ธ์. ์ด ๋ฌธ์๋ ๊ธฐ์กด ๋ฌธ์์ ๋๋ค.
Cloud Service Mesh๋ฅผ ์ฌ์ฉํ๋ฉด ๋ฉ์์์ ์๋น์ค ๊ฐ ํต์ ์ ๋ณดํธํ ์ ์์ต๋๋ค. ๋ฉ์์ ๊ฐ ์๋น์ค์๋ ID๊ฐ ์์ต๋๋ค. ๋ค์ ๊ธฐ๋ฅ์ ๋ณด์ ํต์ ์ ์ง์ํ๋ ๋ฐ ๋์์ด ๋ฉ๋๋ค.
- Envoy๋ฅผ ์ฌ์ฉํ๋ Cloud Service Mesh์ ํ๋ก์๋ฆฌ์ค gRPC ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฌ์ฉํ๋ Cloud Service Mesh ๋ชจ๋์ ์ ์ก ๊ณ์ธต ๋ณด์(TLS) ๋ฐ ์ํธ TLS(mTLS)๋ฅผ ์ฌ์ฉํ๋ ์ธ์ฆ ๋ฐ ์ํธํ. ํด๋ผ์ด์ธํธ TLS ์ ์ฑ ๊ณผ ์๋ฒ TLS ์ ์ฑ ์ ์๋น์ค๊ฐ ์๋ก์๊ฒ ID๋ฅผ ์ฆ๋ช ํ๊ณ ์ํธํ๋ ํต์ ์ฑ๋์ ์ฌ์ฉํด์ผ ํ๋์ง ์ฌ๋ถ๋ฅผ ์ ์ดํฉ๋๋ค.
- ํด๋ผ์ด์ธํธ ๋ฐ ์์ฒญ์ ํน์ฑ์ ๋ฐ๋ฅธ ์น์ธ. ์น์ธ ์ ์ฑ ์ ์๋น์ค๊ฐ ๋ค๋ฅธ ์๋น์ค์ ์ก์ธ์คํ๋๋ก ํ์ฉํ ์ง ์ฌ๋ถ์ ํ์ฉ๋๋ ์์ ์ ์ ์ดํฉ๋๋ค.
๋น๊ณต๊ฐ ์ธ์ฆ ๊ธฐ๊ด(CA) ์๋น์ค์ธ Google์ Certificate Authority Service๊ฐ ์ ๊ณตํ๋ ์ธ์ฆ์์ ํค๋ฅผ ์ฌ์ฉํ๋ฉด ์๋น์ค ๋ณด์์ ๋ณด๋ค ์ฝ๊ฒ ์ ์งํ ์ ์์ต๋๋ค. CA ์๋น์ค๋ GKE ๋ฉ์ ์ธ์ฆ์๋ฅผ ์ ๊ณตํฉ๋๋ค. GKE ๋ฉ์ ์ธ์ฆ์ ๊ธฐ๋ฅ๊ณผ Cloud Service Mesh๋ฅผ ์ฌ์ฉํ๋ฉด ์ด๋ฌํ ์ธ์ฆ์๋ฅผ ์๋์ผ๋ก ๋ฐฐํฌํ๊ณ ์ํฌ๋ก๋์์ ์ฌ์ฉํ ์ ์์ต๋๋ค. ํฌ๋๋ฅผ ์์ ํ๋ฉด ์ํฌ๋ก๋๊ฐ mTLS ์ฌ์ฉ์ ์ธ์ฆ ์ ๋ณด๋ฅผ ์์ ํ๊ณ ์ฌ์ฉํ ์ ์๊ฒ ํ ์ ์์ต๋๋ค. GKE ๊ธฐ๋ฐ ์ํฌ๋ก๋์์๋ง Cloud Service Mesh ์๋น์ค ๋ณด์์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
์ต์ ๋ง์ดํฌ๋ก์๋น์ค ๊ธฐ๋ฐ ์ํคํ ์ฒ์์๋ ๋ ์๊ณ ์ง์ค์ ์ธ ์๋น์ค๊ฐ ๋๊ท๋ชจ ๋ชจ๋๋ฆฌ์ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋์ฒดํฉ๋๋ค. ์๋น์ค ํธ์ถ์ ๋คํธ์ํฌ๋ฅผ ํตํด ์๋ก ํต์ ํฉ๋๋ค. ์ด๋ฌํ ํธ์ถ(๋ชจ๋๋ฆฌ์ ์ ํ๋ฆฌ์ผ์ด์ ์์ ์ฒ๋ฆฌ ์ค์ธ ํธ์ถ)์ ๋ณด์ ๋ฌธ์ ๊ฐ ์์ผ๋ฏ๋ก ์ธ์ฆ, ์ํธํ, ์น์ธํ๋ ๊ฒ์ด ๊ฐ์ฅ ์ข์ต๋๋ค. ์ด๋ฌํ ๋จ๊ณ๋ ํธ๋ํฝ์ด ๋คํธ์ํฌ ๋ด๋ถ์์ ๋ฐ์ํ๋์ง ์ธ๋ถ์์ ๋ฐ์ํ๋์ง ์ฌ๋ถ์ ์๊ด์์ด ๋ชจ๋ ๋คํธ์ํฌ ํธ๋ํฝ์ด ์ํํ ๊ฒ์ผ๋ก ๊ฐ์ฃผ๋๋ ์ ๋ก ํธ๋ฌ์คํธ ์์น์ ์ง์ํฉ๋๋ค.
์๋น์ค ๋ฉ์ ์ค๊ณ ํจํด์ ์๋น์ค ๊ฐ ํต์ ๊ณผ ๊ด๋ จ๋ ๋ณต์ก์ฑ์ ๋น์ฆ๋์ค ๋ก์ง๊ณผ ๋ถ๋ฆฌํฉ๋๋ค. ๋์ ๋ฐ์ดํฐ ์์ญ์์ ์ด๋ฌํ ๋ณต์ก์ฑ์ ์ฒ๋ฆฌํฉ๋๋ค. ์๋น์ค ๋ฉ์ ์ค๊ณ ํจํด์ ์ ํ๋ฆฌ์ผ์ด์ ๋ณต์ก์ฑ์ ์ค์ด๋ ๊ฒ ์ธ์๋ ๊ตฌํ ๋ฐ ๊ด๋ฆฌ๊ฐ ์ด๋ ค์ธ ์ ์๋ ๋ณด์ ํจํด์ ์ฌ์ฉ ์ค์ ํฉ๋๋ค.
์ด ๋ชจ๋ธ์์๋ ํ๋ก์๋ฆฌ์ค gRPC ๋๋ Envoy ์ฌ์ด๋์นด๊ฐ Cloud Service Mesh์์ ๊ตฌ์ฑ ์ ๋ณด๋ฅผ ๊ฐ์ ธ์ค๊ณ CA ์๋น์ค ํ์์ ์ธ์ฆ์๋ฅผ ๊ฐ์ ธ์ ํต์ ์ ์์ ํ๊ฒ ์ธ์ฆํ๊ณ ์ํธํํฉ๋๋ค.
์ด๋ฌํ ๋ณด์ ๊ธฐ๋ฅ์ ๋ค์๊ณผ ๊ฐ์ ์ด์ ์ ์ ๊ณตํ๋ฏ๋ก Cloud Service Mesh ๋ฐฐํฌ ํ๋ก์ธ์ค๊ฐ ๋ ์ฌ์์ง๋๋ค.
- ๋ฉ์์ ๋ชจ๋ ์๋น์ค์ ํค ๋ฐ ์ธ์ฆ์ ์๋ ํ๋ก๋น์ ๋
- ํค ๋ฐ ์ธ์ฆ์๋ฅผ ์๋ ์ํํ์ฌ ๋ณด์์ ๊ฐํ
- Google Kubernetes Engine(GKE)๊ณผ ํตํฉ๋์ด ๋ฐฐํฌ ์ค๋ช ์, ๋ผ๋ฒจ๊ณผ ๊ฐ์ ๋ชจ๋ ๊ธฐ๋ฅ์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
- Cloud Service Mesh ๋ฐ CA ์๋น์ค ๊ด๋ฆฌํ ๋น๊ณต๊ฐ ์ธ์ฆ ๊ธฐ๊ด ํ์ ํฌํจํ Google ๊ด๋ฆฌ ์๋น์ค์ ๊ณ ๊ฐ์ฉ์ฑ
- Google Identity and Access Management(IAM)์ ์ฐ๊ฒฐ๋ ๋ณด์: ์น์ธ๋ Google ์๋น์ค ๊ณ์ ์ ๊ธฐ๋ฐ์ผ๋ก ์๋น์ค ์น์ธ
- Envoy ๊ธฐ๋ฐ ๋ฐ ํ๋ก์๋ฆฌ์ค ์ํฌ๋ก๋์ ์ํํ ์ํธ ์ด์ฉ์ฑ. ์๋ฅผ ๋ค์ด ์๋น์ค๊ฐ Envoy ํ๋ก์ ๋ค์ ์์ ์ ์์ง๋ง ํด๋ผ์ด์ธํธ๋ gRPC ํ๋ก์๋ฆฌ์ค ์๋น์ค ๋ฉ์ ๋ณด์์ ์ฌ์ฉํฉ๋๋ค. ๋ฐ๋๋ก ์๋น์ค๋ gRPC ํ๋ก์๋ฆฌ์ค ์๋น์ค ๋ฉ์ ๋ณด์ ๋ค์ ์์ ์ ์์ง๋ง ํด๋ผ์ด์ธํธ๋ Envoy ํ๋ก์๋ฅผ ์ฌ์ฉํฉ๋๋ค.
์๋น์ค ๊ฐ ํต์ ๋ณดํธ
Cloud Service Mesh๋ TLS๋ฅผ ์ฌ์ฉํ๋ ์ํธํ์ ์ธ์ฆ์ ํตํด ์น์ธ๊ณผ ์๋น์ค ๊ฐ ๋ณด์์ ์ ๊ณตํฉ๋๋ค. ํด๋ผ์ด์ธํธ TLS ์ ์ฑ ๊ณผ ์๋ฒ TLS ์ ์ฑ ์ ํตํด ์๋น์ค์์ ๋ค์์ ์ํํ ์ ์์ต๋๋ค.
- ID ์ด์ค์ ๋ฐ ๊ฒ์ฆ
- TLS ๋๋ mTLS๋ฅผ ์ฌ์ฉํ์ฌ ํต์ ์ธ์ ์ํธํ
์๋น์ค ๋ฉ์์์๋ ๋ฐ์ดํฐ ์์ญ์ด ์ด๋ฌํ ์ ํ์ ๋ณด์์ ์ฒ๋ฆฌํ๋ฏ๋ก ์ ํ๋ฆฌ์ผ์ด์ ์ด ๋ณด์์ ์ํด ํน๋ณํ ํ๋ก๋น์ ๋์ ๋ง๋ค ํ์๊ฐ ์์ต๋๋ค.
์น์ธ ์ ์ฑ ์ ์ ์ํ ๊ท์น์ ๋ฐ๋ผ ์ก์ธ์ค๋ฅผ ๊ฑฐ๋ถ ๋๋ ํ์ฉํ ์ ์๊ฒ ํด์ค๋๋ค.
์ํธํ์ TLS ์ฌ์ฉ
ํ ์๋น์ค๊ฐ HTTP, HTTP/2, ๋๋ gRPC ํ๋กํ ์ฝ์ ์ฌ์ฉํ์ฌ ๋ค๋ฅธ ์๋น์ค๋ฅผ ํธ์ถํ๋ฉด ํด๋น ๋คํธ์ํฌ๋ฅผ ์ ์กํ๋ ํธ๋ํฝ์ด ์ผ๋ฐ ํ ์คํธ๋ก ํ์๋ฉ๋๋ค. ์ด ํธ๋ํฝ์ ๊ณต๊ฒฉ์๊ฐ ํธ๋ํฝ์ ๊ฐ๋ก์ฑ์ ์ฝํ ์ธ ๋ฅผ ๊ฒ์ฌํ๊ฑฐ๋ ์กฐ์ํ ์ ์๋ ์ค๊ฐ์ ๊ณต๊ฒฉ์ ๋์์ด ๋ ์ ์์ต๋๋ค.
์ด ์ ์ฌ์ ์ธ ๋ฌธ์ ๋ฅผ ์ํํ๋ ค๋ฉด Cloud Service Mesh์ ํจ๊ป TLS๋ฅผ ํตํด HTTP, HTTP/2 ๋๋ gRPC๋ฅผ ์ฌ์ฉํ๋ฉด ๋ฉ๋๋ค. TLS๋ฅผ ํตํด ์ด๋ฌํ ํ๋กํ ์ฝ์ ์ฌ์ฉํ๋ฉด ํด๋ผ์ด์ธํธ์ ์๋ฒ ๊ฐ์ ํธ๋ํฝ์ ์๋ฒ ์ธ์ฆ์๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ๋ TLS๋ฅผ ์ฌ์ฉํ์ฌ ์ํธํ๋ฉ๋๋ค. ํธ๋ํฝ์ด ๋ ์ด์ ์ผ๋ฐ ํ ์คํธ๋ก ํ์๋์ง ์์ผ๋ฏ๋ก ๊ณต๊ฒฉ์๊ฐ ์ฝํ ์ธ ๋ฅผ ๊ฐ๋ก์ฑ์ ๊ฒ์ฌํ๊ฑฐ๋ ์กฐ์ํ ๊ฐ๋ฅ์ฑ์ด ์ค์ด๋ญ๋๋ค.
์ธ์ฆ์ TLS ์ฌ์ฉ
ํ ์๋น์ค๊ฐ ๋ค๋ฅธ ์๋น์ค๋ฅผ ํธ์ถํ ๋ ๋ค์ ์ง๋ฌธ์ ๊ณ ๋ คํด๋ณด์ธ์.
ํด๋ผ์ด์ธํธ๊ฐ ๊ฐ์ง ์๋ฒ๊ฐ ์๋ ์ฌ๋ฐ๋ฅธ ์๋ฒ๋ก๋ถํฐ ์๋ต์ ๋ฐ๊ณ ์๋์ง ์ด๋ป๊ฒ ์ ์ ์๋์? ์๋ฅผ ๋ค์ด HTTP ๊ธฐ๋ฐ์ ์ผ๋ฐ์ ์ธ ์์ฒญ-์๋ต ์ํธ์์ฉ์์ ํด๋ผ์ด์ธํธ๋ ์๋ฒ์ ID๋ฅผ ํ์ธํ์ง ์์ต๋๋ค.
๊ณต๊ฒฉ์๊ฐ ํด๋น ํธ๋ํฝ์ ๊ฐ๋ก์ฑ๋ฉด ์ด๋ป๊ฒ ๋๋์? ์๋ฅผ ๋ค์ด HTTP ํธ๋ํฝ์ ์ํธํ๋์ง ์์ผ๋ฏ๋ก ํธ๋ํฝ์ ์์ ํ๋ ๋ชจ๋ ์ฌ์ฉ์๊ฐ ์ฝํ ์ธ ๋ฅผ ๊ฒ์ฌํ ์ ์์ต๋๋ค. ์ด๋ฅผ ์ค๊ฐ์ ๊ณต๊ฒฉ์ด๋ผ๊ณ ํฉ๋๋ค.
์ด๋ฌํ ๋ฌธ์ ๋ฅผ ์ํํ๊ธฐ ์ํด TLS๋ฅผ ํตํด HTTP, HTTP/2, gRPC๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค. ํด๋ผ์ด์ธํธ์ ์๋ฒ ๊ฐ์ ์ด๋ฌํ ๊ตํ์์ ์๋ฒ๋ ์๋ฒ ์ธ์ฆ์๋ฅผ ์ฌ์ฉํ์ฌ ํด๋ผ์ด์ธํธ์ ID๋ฅผ ์ฆ๋ช ํด์ผ ํฉ๋๋ค. ๊ทธ๋ฌ๋ฉด ์์ฒญ๊ณผ ์๋ต์ด TLS๋ฅผ ์ฌ์ฉํ์ฌ ์ํธํ๋ฉ๋๋ค.
์ํธ TLS ์ธ์ฆ
Cloud Service Mesh์์ ํด๋ผ์ด์ธํธ์ ์๋ฒ์ ์ ํ๋ฆฌ์ผ์ด์ ๋คํธ์ํน์ ๊ตฌ์ฑํ ๋(์: ํด๋ผ์ด์ธํธ ์ธก์์ Envoy ํ๋ก์๋ฅผ ๊ตฌ์ฑํ๊ณ ์๋ฒ ์ธก์ ๋ค๋ฅธ Envoy ํ๋ก์๋ฅผ ๊ตฌ์ฑ) ์ํธ ์ธ์ฆ๊ณผ ๊ฐ์ ๊ณ ๊ธ ์ธ์ฆ ํจํด์ ํ์ฉํ ์ ์์ต๋๋ค.
์ํธ ์ธ์ฆ์ ๊ธฐ๋ฐ์ผ๋ก ํ์ง ์๋ ์ผ๋ฐ์ ์ธ HTTP over TLS ๊ตํ์์ ์๋ฒ์๋ ํด๋ผ์ด์ธํธ์ ์๋ฒ ๊ฐ์ ํต์ ์ ์ํธํํ๋ ๋ฐ ์ฌ์ฉํ๋ ์ธ์ฆ์๊ฐ ์์ต๋๋ค. ํด๋ผ์ด์ธํธ๋ TLS ํธ๋์ ฐ์ดํฌ ์ค์ ์๋ฒ๊ฐ ๋ฐํํ๋ ์๋ช ์ ํ์ธํ์ฌ ์๋ฒ์ ID๋ฅผ ๊ฒ์ฆํ ์ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ์๋ฒ๋ ํด๋ผ์ด์ธํธ์ ID๋ฅผ ๊ฒ์ฆํ์ง ์์ต๋๋ค.
์ํธ ์ธ์ฆ์ด ์ฌ์ฉ ์ค์ ๋๋ฉด ํด๋ผ์ด์ธํธ๋ ์ธ์ฆ์๋ฅผ ๊ฐ์ง๋๋ค. ํด๋ผ์ด์ธํธ๋ ์ด์ ๋จ๋ฝ์์ ์ค๋ช ํ ๋๋ก ์๋ฒ์ ID๋ฅผ ํ์ธํ๋ฉฐ ์๋ฒ๋ ํด๋ผ์ด์ธํธ์ ID๋ฅผ ํ์ธํ ์ ์์ต๋๋ค. ํด๋ผ์ด์ธํธ ์ธ์ฆ์์ ์๋ฒ ์ธ์ฆ์ ๋ ๋ค ํต์ ์ฑ๋์ ์ํธํํ๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค. ์ด๋ ๊ฒ ํ๋ฉด ์๋ฒ์์ ํ์ธ๋ ํด๋ผ์ด์ธํธ ID๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํด๋ผ์ด์ธํธ๋ฅผ ์น์ธํ ์๋ ์์ต๋๋ค.
์๋น์ค ํธ์ถ ์น์ธ
์น์ธ ์ ์ฑ
์ ์ฌ์ฉํ์ฌ ์๋น์ค ์ก์ธ์ค๋ฅผ ํ์ฉํ๊ฑฐ๋ ๊ฑฐ๋ถํ๋๋ก ์ ํํ ์ ์์ต๋๋ค.
Cloud Service Mesh๋ฅผ ์ฌ์ฉํ๋ฉด ์์ฒญ ๋งค๊ฐ๋ณ์๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์ก์ธ์ค๋ฅผ ์น์ธํ๋๋ก ํ์ฉ ๊ท์น๊ณผ ๊ฑฐ๋ถ ๊ท์น์ ์ ์ํ ์ ์์ต๋๋ค. mTLS ์ฐ๊ฒฐ์ client-cert
์์ ํ์๋๋ ํด๋ผ์ด์ธํธ ID, ์์ค IP ์ฃผ์, ํธ์คํธ ์ผ์น, ๋ฉ์๋ ์ผ์น, ํค๋ ์ผ์น๋ฅผ ํฌํจํ์ฌ ๋ ์ด์ด 3 ๋ฐ ๋ ์ด์ด 7 ๋งค๊ฐ๋ณ์๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์ด๋ฌํ ๊ท์น์ ๋ง๋ค ์ ์์ต๋๋ค. ๋ค์ ๋ค์ด์ด๊ทธ๋จ์ Envoy ํ๋ก์๋ฅผ ์ฌ์ฉํ ์น์ธ์ ๋ณด์ฌ์ค๋๋ค. ์ด ํ๋ก์ธ์ค๋ gRPC ํด๋ผ์ด์ธํธ์ ๋น์ทํฉ๋๋ค.
์น์ธ์ ์ฌ์ฉํ์ฌ ์ก์ธ์ค ์ ํ
์๋น์ค ๋ฉ์ ๋ด์ ๊ถ์ฅ์ฌํญ์ ์ต์ ๊ถํ์ ์์น์ ์ค์ํ๋ ๊ฒ์ ๋๋ค. ์๋น์ค์ ์ข ์๋๋ ํธ์ถ์๋ก๋ง ์๋น์ค ์ก์ธ์ค๋ฅผ ์ ํํ์ฌ ์ด ์์น์ ์ค์ํ ์ ์์ต๋๋ค. ํธ์ถ์๊ฐ ์น์ธ๋์ง ์์ ์๋น์ค์ ์ก์ธ์คํ๋ ค๊ณ ์๋ํ๋ฉด ์ด๋ฌํ ์๋๊ฐ ๊ฑฐ๋ถ๋ฉ๋๋ค.
Cloud Service Mesh๋ฅผ ์ฌ์ฉํ๋ฉด ์ ์ํ ๊ท์น์ ๋ฐ๋ผ ๋ฐ์ดํฐ ์์ญ์์ ์๋น์ค ์ก์ธ์ค๋ฅผ ํ์ฉ ๋๋ ๊ฑฐ๋ถํ ์ ์๋๋ก ์น์ธ ์ ์ฑ ์ ๊ตฌ์ฑํ ์ ์์ต๋๋ค. ์ด๋ฌํ ์ ์ฑ ์ ๋ค์ ๋ ๊ฐ์ง ๊ตฌ์ฑ์์๋ก ์ด๋ฃจ์ด์ง๋๋ค.
- ์์ : ํ์ฉ ๋๋ ๊ฑฐ๋ถ
- ๊ท์น ๋ชฉ๋ก
์์ฒญ ๋๋ RPC๊ฐ ์ ์ก๋๋ฉด ํธ์ถ๋ ์๋น์ค์ ๋ํ Cloud Service Mesh ํด๋ผ์ด์ธํธ์์ ๊ท์น ์ผ์น๊ฐ ์๋์ง ์ฌ๋ถ๋ฅผ ํ์ธํฉ๋๋ค. ์ผ์น๊ฐ ์์ผ๋ฉด ์์ฒญ ๋๋ RPC๊ฐ ํ์ฉ๋๊ฑฐ๋ ๊ฑฐ๋ถ๋ฉ๋๋ค. ๋ค์๊ณผ ๊ฐ์ด ์์ฑ๊ณผ ์ผ์น์ํฌ ๊ท์น์ ์ ์ํ ์ ์์ต๋๋ค.
- mTLS๊ฐ ์ฌ์ฉ๋ ๊ฒฝ์ฐ ํธ์ถ ์๋น์ค์ Kubernetes ์๋น์ค ๊ณ์
- ํธ์ถ ์๋น์ค์ IP ์ฃผ์(๋๋ ์ฃผ์ ๋ฒ์)
- ๋์ ์๋น์ค์ ํฌํธ
- ํธ์คํธ ์ด๋ฆ, ๋ฉ์๋, ์ฌ์ฉ์ ์ ์ HTTP ํค๋๋ฅผ ํฌํจํ ์์ฒญ์ HTTP ์์ฑ
๋ณด์ ์ด๋ฆ ์ง์
์ถ๊ฐ ๋ณด์ ๋ฉ์ปค๋์ฆ์ผ๋ก Cloud Service Mesh๋ฅผ ์ฌ์ฉํ์ฌ ๋ณด์ ์ด๋ฆ ์ง์ ์ ๊ตฌ์ฑํ ์ ์์ต๋๋ค. ์ด๋ ๊ฒ ํ๋ฉด ํด๋ผ์ด์ธํธ๊ฐ ์ฐ๊ฒฐํ๋ ค๊ณ ์๋ํ๋ ํน์ ์๋น์ค์ ๋ํด ํ์ฉ๋ ์ด๋ฆ ๋ชฉ๋ก ๋๋ SPIFFE(Secure Production Identity Framework for Everyone) ID๋ฅผ ์ ์ํ ์ ์์ต๋๋ค. TLS ๊ตํ ์ค์ ์๋น์ค์ ๋ฐฑ์๋๋ X.509 ์ธ์ฆ์๋ฅผ ํด๋ผ์ด์ธํธ์ ๋ฐํํฉ๋๋ค. ๊ทธ๋ฌ๋ฉด ํด๋ผ์ด์ธํธ๊ฐ ์ธ์ฆ์๋ฅผ ๊ฒ์ฌํ์ฌ X.509 ์ธ์ฆ์๊ฐ ์ด๋ฆ ๋๋ SPIFFE ID ์ค ํ๋์ ์ผ์นํ๋์ง ํ์ธํฉ๋๋ค. SPIFFE ID์ ๋ํ ์์ธํ ๋ด์ฉ์ Secure Production Identity Framework for Everyone์ ์ฐธ์กฐํ์ธ์.
๊ฒ์ดํธ์จ์ด์ ํธ๋ํฝ ๋ณด์
๊ฒ์ดํธ์จ์ด๋ฅผ ๊ตฌ์ฑํ๋ ค๋ฉด Cloud Service Mesh๋ฅผ ์ฌ์ฉํ๋ฉด ๋ฉ๋๋ค. ๊ฒ์ดํธ์จ์ด๋ ์ผ๋ฐ์ ์ผ๋ก ๋ค์ ์ค ํ๋์ ์ญํ ์ ํ๋ ๋ ๋ฆฝํ Envoy ํ๋ก์์ ๋๋ค.
- ๋ฉ์ ๋๋ ๋ค๋ฅธ ๋๋ฉ์ธ์ ๋ค์ด์ค๋ ํธ๋ํฝ์ ์ฒ๋ฆฌํ๋ ์ธ๊ทธ๋ ์ค ๊ฒ์ดํธ์จ์ด
- ๋ฉ์ ๋๋ ๋ค๋ฅธ ๋๋ฉ์ธ์์ ๋๊ฐ๋ ํธ๋ํฝ์ ์ฒ๋ฆฌํ๋ ์ด๊ทธ๋ ์ค ๊ฒ์ดํธ์จ์ด
- ์ธ๋ฐ์ด๋ ํธ๋ํฝ์ ํ๋ ์ด์์ ์๋น์ค์ ๋ถ์ฐํ๋ ๋ฆฌ๋ฒ์ค ํ๋ก์ ๋๋ ์ค๊ฐ ํ๋ก์
๋ฉ์๋ก ๋๋ ๋ฉ์์์ ํธ๋ํฝ์ ์ ์กํ๋ ค๋ ํด๋ผ์ด์ธํธ๋ ๊ฒ์ดํธ์จ์ด๋ก ํธ๋ํฝ์ ์ ์กํฉ๋๋ค. ๊ทธ๋ฌ๋ฉด ๊ฒ์ดํธ์จ์ด๊ฐ Cloud Service Mesh์ ์ค์ ํ ๊ท์น์ ๋ฐ๋ผ ์์ฒญ์ ์ฒ๋ฆฌํฉ๋๋ค. ์๋ฅผ ๋ค์ด ์ธ๊ทธ๋ ์ค ๊ฒ์ดํธ์จ์ด๋ฅผ ํตํด ๋ฉ์๋ก ๋ค์ด์ค๋ ํธ๋ํฝ์ด TLS๋ฅผ ์ฌ์ฉํ์ฌ ์ํธํ๋๋๋ก ํ ์ ์์ต๋๋ค.
๋ณด์ ๊ตฌ์ฑ์์
Cloud Service Mesh ์๋น์ค ๋ณด์์ ํด๋ผ์ด์ธํธ TLS ์ ์ฑ , ์๋ฒ TLS ์ ์ฑ , ์น์ธ ์ ์ฑ ์ ์ง์ํฉ๋๋ค. Cloud Service Mesh๊ฐ ๋ฐ์ดํฐ ์์ญ์ ๊ตฌ์ฑํ๊ณ ๋ณด์ ๊ธฐ๋ฅ์ ์ฌ์ฉ ์ค์ ํ ์ ์๋๋ก ์ด๋ฌํ ์ ์ฑ ์ ๋ง๋ญ๋๋ค. ์ด๋ฌํ ์ ์ฑ ์ ๋ง๋ค๊ฑฐ๋ ์ ๋ฐ์ดํธํ๊ธฐ ์ํด ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ณ๊ฒฝํ ํ์๊ฐ ์์ต๋๋ค.
์ํธํ ๋ฐ ์ง์๋๋ ์ธ์ฆ ๋ชจ๋
ํ ์๋น์ค๊ฐ ๋ค๋ฅธ ์๋น์ค๋ฅผ ํธ์ถํ ๋ ๋ณด์ ํต์ ์ ์ค์ ํ๋ ์ฒซ ๋ฒ์งธ ๋จ๊ณ๋ ๊ฐ ์๋น์ค๊ฐ ๋ค๋ฅธ ์๋น์ค์ ID๋ฅผ ์ฆ๋ช ํ๋๋ก ํ๋ ๊ฒ์ ๋๋ค. ์๋น์ค๊ฐ ID๋ฅผ ์ฆ๋ช ํด์ผ ํ๋ ์ ๋๋ ๊ตฌ์ฑํ TLS ๋ชจ๋์ ๋ฐ๋ผ ๊ฒฐ์ ๋ฉ๋๋ค.
๋ค์ ๋ณด์ ์์ค์ ๊ตฌ์ฑํ ์ ์์ต๋๋ค.
- ์ํธํ๋์ง ์์/์ธ์ฆ๋์ง ์์
- TLS
- ์ํธ TLS(mTLS)
- ํ์ฉ: ํด๋ผ์ด์ธํธ๊ฐ ์ฐ๊ฒฐ์ ์์ํ๋ ๋ฐฉ๋ฒ์ ๋ฐ๋ผ mTLS ๋๋ ์ํธํ๋์ง ์์/์ธ์ฆ๋์ง ์์
์ธ์ฆ์ ๋ฐ ์ธ์ฆ ๊ธฐ๊ด
์ธ์ฆ์ ๋ฐ ์ ๋ขฐํ ์ ์๋ ์ธ์ฆ ๊ธฐ๊ด(CA)์ ์๋น์ค ๋ฉ์์ ๊ฐ์ ๋ถ์ฐ ์์คํ ์์ ์ ๋ขฐ๋ฅผ ์ํ ๊ธฐ๋ฐ์ ์ ๊ณตํฉ๋๋ค. ์๋น์ค๋ ์ธ์ฆ์๋ฅผ ์ฌ์ฉํ์ฌ ID๋ฅผ ์ฆ๋ช ํ๊ณ ๋ค์๊ณผ ๊ฐ์ ๋ฐฉ๋ฒ์ผ๋ก ID์ ์ ํจ์ฑ์ ํ์ธํ ์ ์์ต๋๋ค.
- ๋ค๋ฅธ ์๋น์ค์ ID๋ฅผ ์ฆ๋ช ํ๋ ค๋ ์๋น์ค๋ ๋ค๋ฅธ ์๋น์ค์ ์ธ์ฆ์๋ฅผ ์ ๊ณตํฉ๋๋ค. ๋ ์๋น์ค ๋ชจ๋ ์ ๋ขฐํ๋ CA์์ ์ด ์ธ์ฆ์๋ฅผ ์ํธํ ์๋ช ํ๊ณ ๋ฐ๊ธํฉ๋๋ค.
- ์ด ์ธ์ฆ์๋ฅผ ์์ ํ๋ ์๋น์ค๋ ์ ๋ขฐํ ์ ์๋ CA์์ ๋ฐ๊ธํ ์ธ์ฆ์์ ์ ํจ์ฑ์ ํ์ธํ ์ ์์ต๋๋ค.
Cloud Service Mesh๋ ์ธ์ฆ ๊ธฐ๊ด์ด ์๋๋๋ค. ๋ณด์ ํต์ ์ ์ฌ์ฉ ์ค์ ํ๋ ค๋ฉด ๋ค์์ ์ํํ๋ ๋ฉ์ปค๋์ฆ์ ์ค์ ํด์ผ ํฉ๋๋ค.
- ID ๋ฐ ์ธ์ฆ์ ํ๋ก๋น์ ๋
- Cloud Service Mesh์์ ๊ตฌ์ฑํ๋ Envoy ํ๋ก์์ ๊ฐ์ Cloud Service Mesh ํด๋ผ์ด์ธํธ์์ ์ธ์ฆ์๋ฅผ ์ฌ์ฉํ ์ ์๊ฒ ํฉ๋๋ค.
Cloud Service Mesh๋ Google์ CA ์๋น์ค๋ฅผ ์ง์ํฉ๋๋ค. Envoy ๋ฐ ํ๋ก์๋ฆฌ์ค gRPC์ ์ค์ ๊ฐ์ด๋์๋ ์ด๋ฅผ ์ค์ ํ๋ ์๋ด๊ฐ ํฌํจ๋์ด ์์ต๋๋ค. ์์ธํ ๋ด์ฉ์ ๋ค์ ๋จ๊ณ๋ฅผ ์ฐธ์กฐํ์ธ์.
์ํคํ ์ฒ ๋ฐ ๋ฆฌ์์ค
Cloud Service Mesh์๋ ๋ฐ์ดํฐ ์์ญ์ ์ ์ฉํด์ผ ํ๋ ๋ณด์ ์ ์ฑ ์ ์ง์ ํ ์ ์๋ Google Cloud API ๋ฆฌ์์ค 3๊ฐ๋ก ๊ตฌ์ฑ๋ Network Security API ๋ค์์คํ์ด์ค๊ฐ ํฌํจ๋์ด ์์ต๋๋ค.
๋ฉ์์์๋ Google Cloud API ๋ฆฌ์์ค 2๊ฐ(ํด๋ผ์ด์ธํธ TLS ์ ์ฑ ๋ฐ ์๋ฒ TLS ์ ์ฑ )๊ฐ ์ธ์ฆ์ ์ง์ํฉ๋๋ค. ์ธ ๋ฒ์งธ ๋ฆฌ์์ค์ธ ์น์ธ ์ ์ฑ ์ ์น์ธ์ ์ง์ํฉ๋๋ค.
Network Services API ๋ค์์คํ์ด์ค์๋ Cloud Service Mesh์์ ๊ตฌ์ฑ(์๋ฒ TLS, ํด๋ผ์ด์ธํธ TLS, ์น์ธ ์ ์ฑ )์ ์๋ํฌ์ธํธ์ ์ ๊ณตํ ์ ์๋ ์๋ํฌ์ธํธ ์ ์ฑ ๋ฆฌ์์ค๊ฐ ํฌํจ๋์ด ์์ต๋๋ค. ์๋ํฌ์ธํธ๋ ๋ค๋ฅธ Cloud Service Mesh ํด๋ผ์ด์ธํธ์์ ์ธ๋ฐ์ด๋ ํต์ ์ ์ข ๋ฃํ๋ Cloud Service Mech ํด๋ผ์ด์ธํธ์ ๋๋ค.
๋ณด์ ์๋น์ค๋ฅผ ์ฌ์ฉ ์ค์ ํ๋ ค๋ฉด ๋ฐฐํฌ์์ ๋์ HTTPS ํ๋ก์๋ ๋์ gRPC ํ๋ก์๋ฅผ ์ฌ์ฉํฉ๋๋ค. ๋์ HTTP ํ๋ก์๋ ๋์ TCP ํ๋ก์๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค.
ํด๋ผ์ด์ธํธ TLS ์ ์ฑ
ํด๋ผ์ด์ธํธ TLS ์ ์ฑ ์ ์ฌ์ฉํ๋ฉด ํด๋ผ์ด์ธํธ ์ธก TLS ๋ชจ๋์ ๋ฐ์ดํฐ ์์ญ์ ์ ์ฉํ ์ธ์ฆ์ ์ ๊ณต์ ์ฒด ์ ๋ณด๋ฅผ ์ง์ ํ ์ ์์ต๋๋ค. ํด๋ผ์ด์ธํธ TLS ์ ์ฑ ์ TLS ๋ฐ mTLS ์ธ์ฆ์ ์ง์ํฉ๋๋ค. ํด๋ผ์ด์ธํธ TLS ์ ์ฑ ์ ์ ์ญ ๋ฐฑ์๋ ์๋น์ค ๋ฆฌ์์ค์ ์ฐ๊ฒฐ๋์ด์ผ ํฉ๋๋ค.
TLS๋ฅผ ๊ตฌ์ฑํ ๋๋ ํด๋ผ์ด์ธํธ๊ฐ serverValidationCa
API ํ๋๋ฅผ ํตํด TLS ๊ตํ ์ค์ ์๋ฒ์์ ์์ ํ๋ ์ธ์ฆ์๋ฅผ ๊ฒ์ฆํ๋ ๋ฉ์ปค๋์ฆ์ ์ ๊ณตํด์ผ ํฉ๋๋ค. ํด๋ผ์ด์ธํธ๋ ์ด ์ ๋ณด๋ฅผ ์ฌ์ฉํ์ฌ ์๋ฒ ์ธ์ฆ์๋ฅผ ๊ฒ์ฆํ๋ ๋ฐ ์ฌ์ฉํ ์ ์๋ ์ ํจ์ฑ ๊ฒ์ฌ ์ธ์ฆ์๋ฅผ ๊ฐ์ ธ์ต๋๋ค.
mTLS๋ฅผ ๊ตฌ์ฑํ ๋๋ ํด๋ผ์ด์ธํธ๊ฐ clientCertificate
API ํ๋๋ฅผ ํตํด ์ธ์ฆ์์ ๋น๊ณต๊ฐ ํค๋ฅผ ๊ฐ์ ธ์ค๋ ๋ฉ์ปค๋์ฆ์ ์ถ๊ฐ๋ก ์ ๊ณตํด์ผ ํฉ๋๋ค. ํด๋ผ์ด์ธํธ๋ TLS ํธ๋์
ฐ์ดํฌ ์ค์ ์ด ์ ๋ณด๋ฅผ ์ฌ์ฉํ์ฌ ์๋ฒ์ ์ธ์ฆ์๋ฅผ ์ ๊ณตํฉ๋๋ค.
์ด ์ถ์ ๋ฒ์ ์์ Cloud Service Mesh๋ ๊ด๋ฆฌํ ์ธ์ฆ ๊ธฐ๊ด์ธ CA ์๋น์ค๋ฅผ ์ง์ํฉ๋๋ค. ๊ตฌ์ฑ์ ๊ฐ๋จํฉ๋๋ค. ์ธ์ฆ์ ์ ๊ณต์
์ฒด๋ฅผ ๊ตฌ์ฑํ ๋ google_cloud_private_spiffe
ํ๋ฌ๊ทธ์ธ ์ด๋ฆ์ ์ง์ ํฉ๋๋ค. ๊ทธ๋ฌ๋ฉด xDS ํด๋ผ์ด์ธํธ๊ฐ ์ ์ ์์น์์ ์ธ์ฆ์์ ํค๋ฅผ ๋ก๋ํฉ๋๋ค. ๊ธฐ๋ณธ ์๊ฑด์ผ๋ก CA ์๋น์ค ํ์ ๊ตฌ์ฑํ๊ณ GKE ํด๋ฌ์คํฐ์์ ๋ฉ์ ์ธ์ฆ์๋ฅผ ์ฌ์ฉ ์ค์ ํด์ผ ํฉ๋๋ค.
์๋ฒ TLS ์ ์ฑ
์๋ฒ TLS ์ ์ฑ
(ServerTlsPolicy
๋ฆฌ์์ค)์ ์ฌ์ฉํ๋ฉด ์๋ฒ ์ธก TLS ๋ชจ๋์ ๋ฐ์ดํฐ ์์ญ์ ์ ์ฉํ ์ธ์ฆ์ ์ ๊ณต์
์ฒด ์ ๋ณด๋ฅผ ์ง์ ํ ์ ์์ต๋๋ค. ์๋ฒ TLS ์ ์ฑ
์ TLS, mTLS๋ฅผ ์ง์ํ๋ฉฐ Envoy์์๋ง Open_or_mTLS
์ธ์ฆ์ ์ง์ํฉ๋๋ค. ์๋ฒ TLS ์ ์ฑ
์ ๋์ HTTPS ํ๋ก์ ๋ฆฌ์์ค๋ ์๋ํฌ์ธํธ ์ ์ฑ
๋ฆฌ์์ค์ ์ฐ๊ฒฐ๋ ์ ์์ต๋๋ค.
์ฃผ์ฒด ๋์ฒด ์ด๋ฆ
์ ์ญ ๋ฐฑ์๋ ์๋น์ค์ securitySettings
ํ๋๋ฅผ ๊ตฌ์ฑํ ๋ subjectAltNames
ํ๋์ ์ฃผ์ฒด ๋์ฒด ์ด๋ฆ ๋ชฉ๋ก์ ์ ๊ณตํ ์ ์์ต๋๋ค. ํด๋ผ์ด์ธํธ๊ฐ ์๋น์ค ๋ฐฑ์๋ ์ค ํ๋์ TLS ํธ๋์
ฐ์ดํฌ๋ฅผ ์์ํ๋ฉด ์๋ฒ๋ X.509 ์ธ์ฆ์๋ฅผ ์ ๊ณตํฉ๋๋ค. ํด๋ผ์ด์ธํธ๊ฐ ์ธ์ฆ์์ subjectAltName
ํ๋๋ฅผ ๊ฒ์ฌํฉ๋๋ค. ํ๋์ ์ง์ ๋ ๊ฐ ์ค ํ๋๊ฐ ํฌํจ๋ ๊ฒฝ์ฐ ํต์ ์ด ๊ณ์๋ฉ๋๋ค. ์ด ๋ฉ์ปค๋์ฆ์ ์์ ๋ณด์ ์ด๋ฆ ์ง์ ์์ ์ค๋ช
ํฉ๋๋ค.
์น์ธ ์ ์ฑ
์น์ธ ์ ์ฑ
(AuthorizationPolicy
๋ฆฌ์์ค)์ ์๋ฒ๊ฐ ๋ค์ด์ค๋ ์์ฒญ ๋๋ RPC๋ฅผ ์น์ธํ๋ ๋ฐฉ๋ฒ์ ์ง์ ํฉ๋๋ค. ์์ฒญ์ ๋ณด๋ธ ํด๋ผ์ด์ธํธ ID, ํธ์คํธ, ํค๋, ๊ธฐํ HTTP ์์ฑ๊ณผ ๊ฐ์ ๋ค์ํ ๋งค๊ฐ๋ณ์๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ์ฌ ๋ค์ด์ค๋ ์์ฒญ ๋๋ RPC๋ฅผ ํ์ฉํ๊ฑฐ๋ ๊ฑฐ๋ถํ๋๋ก ๊ตฌ์ฑํ ์ ์์ต๋๋ค. ์น์ธ ์ ์ฑ
์ ๋์ HTTPS ํ๋ก์ ๋ฆฌ์์ค๋ ์๋ํฌ์ธํธ ์ ์ฑ
๋ฆฌ์์ค์ ์ฐ๊ฒฐ๋ ์ ์์ต๋๋ค.
์ ํ์ฌํญ
Cloud Service Mesh ์๋น์ค ๋ณด์์ GKE์์๋ง ์ง์๋ฉ๋๋ค. Compute Engine์ผ๋ก๋ ์๋น์ค ๋ณด์์ ๋ฐฐํฌํ ์ ์์ต๋๋ค.
ํ๋ก์๋ฆฌ์ค gRPC ์ ํ๋ฆฌ์ผ์ด์ ์ ์ ํ์ฌํญ
ํ๋ก์๋ฆฌ์ค gRPC ์๋น์ค์ ๋ํ ์๋น์ค ๋ณด์์๋ ๋ค์๊ณผ ๊ฐ์ ์ ํ์ฌํญ์ด ์์ต๋๋ค.
- ์ด ์ถ์ ๋ฒ์ ์ ์๋ฐ, Python, C++, Go๋ก ์ ํ๋ฉ๋๋ค.
๋ค์ ๋จ๊ณ
- ๊ตฌ์ฑ ์ต์ ์ ๋ํ ์์ธํ ๋ด์ฉ์ Cloud Service Mesh ์๋น์ค ๋ณด์ ์ฌ์ฉ ์ฌ๋ก(๊ธฐ์กด)๋ฅผ ์ฐธ์กฐํ์ธ์.
- Envoy ํ๋ก์๋ก ์๋น์ค ๋ณด์์ ๊ตฌ์ฑํ๋ ค๋ฉด Envoy๋ก Cloud Service Mesh ์๋น์ค ๋ณด์ ์ค์ (๊ธฐ์กด)์ ์ฐธ์กฐํ์ธ์.
- ํ๋ก์๋ฆฌ์ค gRPC ์ ํ๋ฆฌ์ผ์ด์ ์ผ๋ก ์๋น์ค ๋ณด์์ ๊ตฌ์ฑํ๋ ค๋ฉด ํ๋ก์๋ฆฌ์ค gRPC ์ ํ๋ฆฌ์ผ์ด์ ์ผ๋ก Cloud Service Mesh ์๋น์ค ๋ณด์ ์ค์ (๊ธฐ์กด)์ ์ฐธ์กฐํ์ธ์.