Kubeflow Authentication

Kubeflow Authentication, Profile, Istio, Dex

Kubeflow์—์„œ Istio ๋ฅผ ํ†ตํ•œ ์‚ฌ์šฉ์ž ์ธ์ฆ ๋ฐ ๋ฆฌ์†Œ์Šค ๊ถŒํ•œ ๊ด€๋ฆฌ

์ฟ ๋ฒ„๋„คํ‹ฐ์Šค๋Š” ์ด์Šคํ‹ฐ์˜ค์™€ ์—ฐ๋™ํ•˜์—ฌ ์‚ฌ์šฉ์ž ์ธ์ฆ์™€ ๋ฆฌ์†Œ์Šค ๊ถŒํ•œ ๊ด€๋ฆฌ๋ฅผ ์ˆ˜ํ–‰ํ•˜์—ฌ ์‚ฌ์šฉ ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค.

๋‹ค์Œ ์›Œํฌํ”Œ๋กœ์šฐ ์˜ˆ์‹œ๋Š” ์‚ฌ์šฉ์ž๊ฐ€ ์š”์ฒญํ•œ Kubeflow Central Dashboard์—์„œ ๋…ธํŠธ๋ถ ์„œ๋ฒ„ ์ƒ์„ฑ ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•˜๋Š” ๊ณผ์ •์ด๋‹ค.

1) ๋กœ๊ทธ์ธ ํ•˜์ง€ ์•Š์€ ์‚ฌ์šฉ์ž๊ฐ€ ๋ธŒ๋ผ์šฐ์ €๋ฅผ Kubeflow์— ์ ‘์†ํ•˜๋ฉด, Dex๋ฅผ ํ†ตํ•ด idP๋กœ Redirection ํ•œ๋‹ค. 2) ์‚ฌ์šฉ์ž๊ฐ€ ๋กœ๊ทธ์ธํ•˜๋ฉด, ์ฟ ํ‚ค๊ฐ€ ๋ธŒ๋ผ์šฐ์ €์— ์ €์žฅํ•˜๊ณ , ์‚ฌ์šฉ์ž์˜ Request๋ฅผ Istio Gateway์—์„œ JWT(JSON Web Token)๋ฅผ ํ™•์ธํ•œ ํ›„ idP์— ์ธ์ฆ์„ ์š”์ฒญํ•œ๋‹ค. (์ธ์ฆ์€ ํ•œ๋ฒˆ๋งŒ ์ˆ˜ํ–‰๋œ๋‹ค.) 3) Istio RBAC์€ Request ์ ‘๊ทผ๊ถŒํ•œ(Service, Namespace)์„ ํ™•์ธํ•œ๋‹ค. 4) Request ์ ‘๊ทผ๊ถŒํ•œ์ด ํ™•์ธ๋˜๋ฉด, Request๋ฅผ ํ•ด๋‹น Controller์— ์ „๋‹ฌํ•œ๋‹ค. 5) Controller๋Š” Kubernetes RBAC์—์„œ ์ธ์ฆ๋ฐ›๊ณ  ์‚ฌ์šฉ์ž ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•œ๋‹ค.

๋ชจ๋“  ์š”์ฒญ์€ AuthService(Authorization)๋กœ ์ „๋‹ฌํ•œ๋‹ค.

Istio RBAC

ServiceRole๊ณผ ServiceRoleBinding์œผ๋กœ ๋ฆฌ์†Œ์Šค ๊ถŒํ•œ์„ ์ •์˜ํ•œ๋‹ค.

์šฉ์–ด

Kubeflow Profile Kubeflow Profile CRD๋Š” ์‚ฌ์šฉ์ž ๋ณ„ ๋ฆฌ์†Œ์Šค ๊ถŒํ•œ์„ ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด ๊ณ ์•ˆ๋˜์—ˆ๋‹ค. ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค์—์„œ ์‚ฌ์šฉ์ž ๋ฆฌ์†Œ์Šค๋ฅผ ๊ฒฉ๋ฆฌํ•˜๋Š” ๊ฐœ๋…์ธ ๋„ค์ž„์ŠคํŽ˜์ด์Šค์˜ ๋ ˆํผ์ด๋‹ค. Profile ๋งˆ๋‹ค ํ•˜๋‚˜์˜ Namespace๋ฅผ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๊ณ , Profile ์†Œ์œ ์ž๋Š” ๋‹ค๋ฅธ ์‚ฌ์šฉ์ž์™€ ๊ณต์œ ํ•  ์ˆ˜ ์žˆ๋‹ค.

์‚ฌ์ง„์ถœ์ฒ˜: https://www.kubeflow.org/docs/components/multi-tenancy/design/

์ฐธ๊ณ ์ž๋ฃŒ

https://speakerdeck.com/chanyilin/authz?slide=12 https://medium.com/kubeflow/enabling-kubeflow-with-enterprise-grade-auth-for-on-premise-deployments-ae7dd13a69e5 https://www.kubeflow.org/docs

Last updated

Was this helpful?