Azure-docs: RBAC๊ฐ€์žˆ๋Š” AKS๊ฐ€ Azure AD๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋Œ€์‹œ ๋ณด๋“œ๋ฅผ ๋ณผ ์ˆ˜ ์—†์Œ

์— ๋งŒ๋“  2019๋…„ 01์›” 30์ผ  ยท  48์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: MicrosoftDocs/azure-docs

์ ์ ˆํ•œ Azure AD ํ†ตํ•ฉ๊ณผ ํ•จ๊ป˜ RBAC ์‚ฌ์šฉ AKS ํด๋Ÿฌ์Šคํ„ฐ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์ปจํŠธ๋กค ํ”Œ๋ ˆ์ธ์—์„œ ์ž˜ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋Œ€์‹œ ๋ณด๋“œ์— ์•ก์„ธ์Šคํ•˜๊ธฐ ์œ„ํ•ด ์•ก์„ธ์Šค ํ† ํฐ az account get-access-token --query accessToken -o tsv ๋งŒ๋“ค๊ณ  kubectl-proxy ํ•ฉ๋‹ˆ๋‹ค.

์˜ˆ์ƒ ๋™์ž‘ : Azure AD ๊ทธ๋ฃน์˜ ๊ตฌ์„ฑ์›์€ ํ† ํฐ์„ ์‚ฌ์šฉํ•˜์—ฌ ๋Œ€์‹œ ๋ณด๋“œ์— ๋Œ€ํ•œ ์ „์ฒด ๊ถŒํ•œ์„ ๊ฐ€์งˆ ์ˆ˜ ์žˆ์–ด์•ผํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ์ „์— ์ž˜ ์ž‘๋™ํ–ˆ์Šต๋‹ˆ๋‹ค (ํด๋Ÿฌ์Šคํ„ฐ๋Š” ๊ฑฐ์˜ ํ•œ ๋‹ฌ์ด๋˜์—ˆ์Šต๋‹ˆ๋‹ค). ์ด์ œ ์ƒˆ ํด๋Ÿฌ์Šคํ„ฐ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

์‹ค์ œ ๋™์ž‘ : ๋Œ€์‹œ ๋ณด๋“œ๊ฐ€ ํด๋Ÿฌ์Šคํ„ฐ ๊ด€๋ฆฌ์ž์— ๋Œ€ํ•œ ์•ก์„ธ์Šค๋ฅผ ๊ธˆ์ง€ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

์‹ค์ œ๋กœ ํด๋Ÿฌ์Šคํ„ฐ๊ฐ€ ์ ์ ˆํ•œ Azure AD ํ†ตํ•ฉ์œผ๋กœ RBAC๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜์žˆ๋Š” ๊ฒฝ์šฐ kubernetes-dashboard ์„œ๋น„์Šค ๊ณ„์ •์— cluster-admin ์•ก์„ธ์Šค ๊ถŒํ•œ์„ ๋ถ€์—ฌํ•˜๋ฉด ๋ณด์•ˆ์ด ํ•ด์ œ๋œ๋‹ค๋Š” ์‚ฌ์‹ค์„ ์•Œ๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค. ๋˜๋Š” ๋Œ€์‹œ ๋ณด๋“œ URL๋กœ ๋ˆ„๊ตฌ๋‚˜ ํด๋Ÿฌ์Šคํ„ฐ์— ์•ก์„ธ์Šค ํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ๋ฌธ์„œ์—์„œ ์ดํ•ดํ•ฉ๋‹ˆ๋‹ค.

์„ค๋ช…

  1. AzureAD ๊ทธ๋ฃน์— ๋Œ€ํ•œ ์ ์ ˆํ•œ ClusterRoleBinding์ด ์žˆ์Šต๋‹ˆ๋‹ค (ํด๋Ÿฌ์Šคํ„ฐ ๊ด€๋ฆฌ์ž ์—ญํ•  ์‚ฌ์šฉ).
  2. ClusterRoleBinding kubernetes-dashboard ์„œ๋น„์Šค ๊ณ„์ •์„ cluster-admin ๋กœ ์˜ฌ๋ฆฌ๋ฉด ๋Œ€์‹œ ๋ณด๋“œ๊ฐ€ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. (์ด๊ฒƒ์€ ๋งค์šฐ ๋ถ„๋ช…ํ•˜์ง€๋งŒ ๋ช…์‹œ ์ ์œผ๋กœ ๋งŒ๋“ญ๋‹ˆ๋‹ค)

๋ฌธ์„œ ์„ธ๋ถ€ ์ •๋ณด

โš  ์ด ์„น์…˜์„ ํŽธ์ง‘ํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค.

Pri1 assigned-to-author container-servicsvc doc-bug triaged

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

@ MicahMcKittrick-MSFT ๋‚˜๋Š” ์ด๊ฒƒ์„ ํ†ตํ•ด ์ž˜ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ๋‚˜๋Š” ์ด๊ฒƒ์„ ์–ธ๊ธ‰ํ•˜๊ณ ์žˆ๋‹ค
https://docs.microsoft.com/en-us/azure/aks/kubernetes-dashboard#for -rbac-enabled-clusters
๋Œ€์‹œ ๋ณด๋“œ ์šฉ RBAC์™€ ์ •ํ™•ํ•˜๊ฒŒ ์ผ์น˜ํ•ฉ๋‹ˆ๋‹ค.

You can also integrate Azure Active Directory authentication to provide a more granular level of access. ์ด ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋” ๋งŽ์€ ๊ด€์‹ฌ์ด ์žˆ์Šต๋‹ˆ๋‹ค.!

๋ชจ๋“  48 ๋Œ“๊ธ€

@Sudharma์—์„œ ๋” ๋‚˜์€ ์ง€์›์„ ์œ„ํ•ด ์ฐธ์กฐ์ค‘์ธ ๋ฌธ์„œ๋ฅผ ๊ณต์œ ํ•ด ์ฃผ์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ?

์ด๊ฑฐ์˜ˆ์š”?

https://docs.microsoft.com/en-us/azure/aks/aad-integration

@ MicahMcKittrick-MSFT ๋‚˜๋Š” ์ด๊ฒƒ์„ ํ†ตํ•ด ์ž˜ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ๋‚˜๋Š” ์ด๊ฒƒ์„ ์–ธ๊ธ‰ํ•˜๊ณ ์žˆ๋‹ค
https://docs.microsoft.com/en-us/azure/aks/kubernetes-dashboard#for -rbac-enabled-clusters
๋Œ€์‹œ ๋ณด๋“œ ์šฉ RBAC์™€ ์ •ํ™•ํ•˜๊ฒŒ ์ผ์น˜ํ•ฉ๋‹ˆ๋‹ค.

You can also integrate Azure Active Directory authentication to provide a more granular level of access. ์ด ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋” ๋งŽ์€ ๊ด€์‹ฌ์ด ์žˆ์Šต๋‹ˆ๋‹ค.!

@Sudharma ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค!

@iainfoulds @seanmck ์ด ์งˆ๋ฌธ์— ๋Œ€ํ•ด ๋” ์–ธ๊ธ‰ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

@Sudharma ์ด ์ง€์—ฐ์— ๋Œ€ํ•ด ์ฃ„์†กํ•ฉ๋‹ˆ๋‹ค. ๋‚˜๋Š” ์ด๊ฒƒ์„ ์žฌํ˜„ํ•˜๋ ค๊ณ  ๋…ธ๋ ฅํ–ˆ์ง€๋งŒ ๋‚ด๋ถ€ ๊ตฌ๋…์„ ์‚ฌ์šฉํ•˜์—ฌ RBAC ํด๋Ÿฌ์Šคํ„ฐ ์„ค์ •์„ ์–ป๋Š” ๋ฐ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ๋ชจ๋‘ ์‚ดํŽด๋ณด๊ณ  ์žˆ์œผ๋ฉฐ ๊ฐ€๋Šฅํ•œ ํ•œ ๋นจ๋ฆฌ ์—…๋ฐ์ดํŠธ ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

@iainfoulds ์‚ฌ๊ณผํ•˜์ง€๋งŒ ์ •ํ™•ํ•œ ํ…Œ์ŠคํŠธ๋ฅผ ์œ„ํ•ด ํ™˜๊ฒฝ ์„ค์ •์„ ํ•  ์ˆ˜ ์—†์—ˆ์Šต๋‹ˆ๋‹ค. ์–ด๋–ค ์ด์œ ๋กœ ๋‚ด RBAC ์‚ฌ์šฉ ํด๋Ÿฌ์Šคํ„ฐ๊ฐ€ ๊ฐœ์ธ ๊ตฌ๋…์—์„œ๋„ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ํ”„๋กœ๋น„์ €๋‹๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ์šด์—†์ด ๋ฉฐ์น  ๋™์•ˆ ์ด๊ฒƒ์„ ์‹œ๋„ํ•ด ์™”์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ๋„ ์žฌํ˜„ ํ•ด ์ฃผ์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ? ๋‚˜๋Š” ๋‹จ์ง€ ์šด์ด ์—†๋‹ค.

CC @ Karishma-Tiwari-MSFT @ jakaruna-MSFT๋„ ์žฌํ˜„์„ ์‹œ๋„ ํ•  ์ˆ˜ ์žˆ๋‹ค๋ฉด

@Sudharma ์ด ์ง€์—ฐ์— ๋Œ€ํ•ด ์ฃ„์†กํ•ฉ๋‹ˆ๋‹ค. ๋‚˜๋Š” ์ด๊ฒƒ์„ ์žฌํ˜„ํ•˜๋ ค๊ณ  ๋…ธ๋ ฅํ–ˆ์ง€๋งŒ ๋‚ด๋ถ€ ๊ตฌ๋…์„ ์‚ฌ์šฉํ•˜์—ฌ RBAC ํด๋Ÿฌ์Šคํ„ฐ ์„ค์ •์„ ์–ป๋Š” ๋ฐ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ๋ชจ๋‘ ์‚ดํŽด๋ณด๊ณ  ์žˆ์œผ๋ฉฐ ๊ฐ€๋Šฅํ•œ ํ•œ ๋นจ๋ฆฌ ์—…๋ฐ์ดํŠธ ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋ฌธ์ œ ์—†์–ด์š”. ๊ทธ๋Ÿฌ๋‚˜์ด ์†”๋ฃจ์…˜์— ์—ด๋งํ•˜๋ฏ€๋กœ ๊ณ„์† ์—…๋ฐ์ดํŠธํ•˜์‹ญ์‹œ์˜ค.

๋‚˜์—๊ฒŒ๋„ ๊ฐ™์€ ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค. ๋Œ€์‹œ ๋ณด๋“œ ๋กœ๊ทธ์ธ ํ”„๋กฌํ”„ํŠธ๋„ ๋กœ๊ทธ์ธ ํ™”๋ฉด์„ ํ†ตํ•ด ๋ฐœ๊ธ‰ ๋œ ํ† ํฐ์„ ์ „๋‹ฌํ•˜์ง€ ์•Š๋Š” ๊ฒƒ์„ ํ™•์ธํ–ˆ์Šต๋‹ˆ๋‹ค. ์—ฌ์ „ํžˆ ์„œ๋น„์Šค ๊ณ„์ •์„ ํ†ตํ•ด ๋Œ€์‹œ ๋ณด๋“œ ์—ฐ๊ฒฐ ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

๋˜ํ•œ ๊ถŒํ•œ ์ƒ์Šน์œผ๋กœ ์ธํ•ด ์„œ๋น„์Šค ๊ณ„์ •์— ๋Œ€ํ•œ ๋Œ€์‹œ ๋ณด๋“œ ์•ก์„ธ์Šค ๊ถŒํ•œ์„ ๋ถ€์—ฌํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.

๊ฐ„๋‹จํžˆ ๋งํ•ด ํ”„๋ก์‹œ๋ฅผ ํ†ตํ•œ ๋Œ€์‹œ ๋ณด๋“œ ์•ก์„ธ์Šค๋Š” ์„œ๋น„์Šค ๊ณ„์ •์—์„œ ์ž˜ ์ž‘๋™ํ•˜์ง€๋งŒ OpenID ์—ฐ๊ฒฐ ๊ณ„์ • ํ† ํฐ์—์„œ๋Š” ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์ด ๋ฌธ์ œ๋Š” ์šฐ๋ฆฌ์—๊ฒŒ๋„ ์—ฌ์ „ํžˆ ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ์—ฌ๊ธฐ ๋‚ด +1

์—ฌ๊ธฐ์—์„œ๋„ +1,

์•ˆ๋…•ํ•˜์„ธ์š” ํŒ€,

์ž‘๋™ ๋ฐฉ์‹๊ณผ ๊ธฐ๋ณธ Kubernetes ์—”์ง„๊ณผ ๋‹ค๋ฅธ ์ ์— ๋Œ€ํ•œ ์ž์„ธํ•œ ์ •๋ณด๋ฅผ ์ œ๊ณต ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? ๋‚˜๋Š” ์šฐ๋ฆฌ๊ฐ€ ๋™์ผํ•œ ์ง€์›์„ ์ œ๊ณต ํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ๊ถ๊ธˆํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ ํ”„๋ก์‹œ ์„œ๋น„์Šค๋ฅผ ํ†ตํ•ด Azure AD๋ฅผ ์‚ฌ์šฉํ•˜๋„๋ก ๋Œ€์‹œ ๋ณด๋“œ๋ฅผ ๊ตฌ์„ฑ ํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ๊ถ๊ธˆํ•˜์‹ญ๋‹ˆ๊นŒ?

๋ˆ„๊ตฌ๋“ ์ง€ ์ด๊ฒƒ์— ๋Œ€ํ•œ ์—…๋ฐ์ดํŠธ๊ฐ€ ์žˆ์Šต๋‹ˆ๊นŒ? "kubectl proxy"๋ฅผ ์‹คํ–‰ ํ•œ ํ›„ ํ† ํฐ์„ ๊ฐ€์ ธ ์˜ค๊ฑฐ๋‚˜ kube ๊ตฌ์„ฑ ํŒŒ์ผ์„ ์‚ฌ์šฉํ•˜๋ฉด ์•ก์„ธ์Šค ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ az aks browse๋ฅผ ์‹คํ–‰ํ•˜๋ฉด ์žฅ์น˜ ์ฝ”๋“œ๋กœ ์›น์„ ํ†ตํ•ด ๋กœ๊ทธ์ธํ•˜๋ผ๋Š” ๋ฉ”์‹œ์ง€๊ฐ€ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค (์ด๋ฏธ az ๋กœ๊ทธ์ธ์„ ์ˆ˜ํ–‰ ํ–ˆ์Œ์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ ). , ์ฝ”๋“œ๋ฅผ ์ž…๋ ฅํ•˜๋ฉด cmd ์ค„ "Oauth token : Unknown Error"์— ์˜ค๋ฅ˜๊ฐ€ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค. Rbac๋กœ ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ์„ค์ •ํ–ˆ์Šต๋‹ˆ๋‹ค (ํด๋ผ์ด์–ธํŠธ ๋ฐ ์„œ๋ฒ„ ์•ฑ ๋“ฑ๋ก ๋ฐ (https://docs.microsoft.com/en-us/azure/aks/aad-integration)์— ๋”ฐ๋ผ ๊ถŒํ•œ์„ ์„ค์ •ํ–ˆ์Šต๋‹ˆ๋‹ค.).

ํ™•์‹คํ•˜์ง€ ์•Š์€ ์œ ์ผํ•œ ์ ์€ ํด๋ผ์ด์–ธํŠธ, ์„œ๋ฒ„ ๋ฐ ์„œ๋น„์Šค ์ฃผ์ฒด์— ๋Œ€ํ•œ ์•ฑ ๋“ฑ๋ก์„ ์‚ฌ์šฉํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ด 3 ๊ฐœ์˜ ์•ฑ ๋“ฑ๋ก์ด ์žˆ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. terraform์„ ํ†ตํ•ด ํ”„๋กœ๋น„์ €๋‹๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๊ฐ€์ด๋“œ ๋ฌธ์„œ์—๋Š” ํด๋ผ์ด์–ธํŠธ ๋ฐ ์„œ๋ฒ„ ์•ฑ ๋“ฑ๋ก์— ๋Œ€ํ•œ ๊ถŒํ•œ ๋งŒ ์–ธ๊ธ‰๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

๋ˆ„๊ตฐ๊ฐ€๊ฐ€ ๋„์šธ ์ˆ˜ ์žˆ๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค.

์—ฌ์ „ํžˆ ๊ฐ™์€ ๋ฌธ์ œ์— ์ง๋ฉด ํ•ด ์žˆ์Šต๋‹ˆ๋‹ค. AD ๊ณ„์ •์„ ์‚ฌ์šฉํ•˜์—ฌ ๋Œ€์‹œ ๋ณด๋“œ, API ๋˜๋Š” kubectl์— ์•ก์„ธ์Šค ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

์•„๋ž˜ ๋ช…๋ น์ด ์ž‘๋™ํ•˜๋ฉด /home/user/.kube/config์— k8s ๊ด€๋ฆฌ์ž ์ž๊ฒฉ ์ฆ๋ช…์ด ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค.
az aks get-credentials --resource-group xxx-dev-test01 --name xxxk8sdev --admin

AD ์‚ฌ์šฉ์ž ๋˜๋Š” ๊ทธ๋ฃน๊ณผ ํด๋Ÿฌ์Šคํ„ฐ ์—ญํ•  ๋ฐ”์ธ๋”ฉ์„ ์ถ”๊ฐ€ ํ•œ ํ›„ ์ผ๋ฐ˜์ ์œผ๋กœ ์‚ฌ์šฉ์ž๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋กœ๊ทธ์ธ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
az aks get-credentials --resource-group xxx-dev-test01 --name xxxk8sdev

๊ทธ๋Ÿฌ๋ฉด ์žฅ์น˜ ํ† ํฐ์„ ์ž…๋ ฅํ•˜๋ผ๋Š” ๋ฉ”์‹œ์ง€๊ฐ€ ํ‘œ์‹œ๋˜๊ณ  ์‚ฌ์šฉ์ž๊ฐ€ ๋กœ๊ทธ์ธ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ด์ œ ์ด๊ฒƒ์€ ์ง€์†์ ์œผ๋กœ ์‹คํŒจํ•ฉ๋‹ˆ๋‹ค.
Kubectl ๋˜๋Š” ๋Œ€์‹œ ๋ณด๋“œ๋Š” ํด๋Ÿฌ์Šคํ„ฐ ๊ด€๋ฆฌ์ž๋ฅผ ํ†ตํ•ด์„œ๋งŒ ์•ก์„ธ์Šค ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ถ„๋ช…ํžˆ ๋ชจ๋“  ์‚ฌ์šฉ์ž์—๊ฒŒ ํด๋Ÿฌ์Šคํ„ฐ ๊ด€๋ฆฌ์ž ์ž๊ฒฉ ์ฆ๋ช…์„ ์ œ๊ณต ํ•  ์ˆ˜๋Š” ์—†์Šต๋‹ˆ๋‹ค.

์‚ฌ๋žŒ๋“ค์ด ์—ฌ๊ธฐ์„œ ๋ฌธ์ œ๋ฅผ ๊ฒช๊ณ ์žˆ์–ด ์ฃ„์†กํ•ฉ๋‹ˆ๋‹ค.

์—”์ง€๋‹ˆ์–ด๋ง ํŒ€์—์„œ ๋ฌธ์ œ๋ฅผ ์‹๋ณ„ํ–ˆ์œผ๋ฉฐ์ด๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ๋…ธ๋ ฅํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. AKS์˜ ํŠน์ • ๋™์ž‘์ด ์•„๋‹ˆ๋ผ ๊ธฐ๋ณธ Kubernetes ๋Œ€์‹œ ๋ณด๋“œ ๋ณ€๊ฒฝ ์ธ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. @ palma21 ์€ ํ•ด๊ฒฐ์„ ์œ„ํ•ด ํƒ€์ž„ ๋ผ์ธ์— ์ถ”๊ฐ€ ์ปจํ…์ŠคํŠธ๋ฅผ ์ œ๊ณต ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

@spbreed ๋ฌธ์ œ๋Š” kubectl์„ ํ†ตํ•ด ์•ก์„ธ์Šค ํ•  ์ˆ˜ ์—†๋‹ค๊ณ  ์–ธ๊ธ‰ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ๋‹ค๋ฅด๊ฒŒ ๋ณด์ž…๋‹ˆ๋‹ค (๋น„๋ฐ€์ด ๋งŒ๋ฃŒ๋˜์ง€ ์•Š์•˜๋Š”์ง€ ํ™•์ธํ•˜๊ณ  ์ง€์› ํ‹ฐ์ผ“์„ ์—ด์–ด ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ํ™•์ธํ•˜๊ณ  ๋„์›€์„ ์ค„ ์ˆ˜ ์žˆ์Œ).

๋Œ€์‹œ ๋ณด๋“œ์—๋งŒ ๋ฌธ์ œ๊ฐ€์žˆ๋Š” ๋‚˜๋จธ์ง€ ๋Œ€์‹œ ๋ณด๋“œ์˜ ๊ฒฝ์šฐ ์ตœ์‹  ๋ฒ„์ „์˜ ๋Œ€์‹œ ๋ณด๋“œ์—๋Š” https ๋˜๋Š” ์•ˆ์ „ํ•˜์ง€ ์•Š์€ ๋กœ๊ทธ์ธ ํ”Œ๋ž˜๊ทธ๊ฐ€ ํ•„์š”ํ•˜๊ฑฐ๋‚˜ ์„œ๋น„์Šค ๊ณ„์ • ๋กœ๊ทธ์ธ์— ํ•ด๋‹น๋ฉ๋‹ˆ๋‹ค.

์ด๋ฅผ ๊ฐ•์ œํ•˜๋ ค๋ฉด ๋Œ€์‹œ ๋ณด๋“œ ๋ฐฐํฌ๋ฅผ ํŽธ์ง‘ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
์˜ˆ.
kubectl edit deploy -n kube-system kubernetes-dashboard

๊ทธ๋ฆฌ๊ณ  ์ปจํ…Œ์ด๋„ˆ ์‚ฌ์–‘์— ์ถ”๊ฐ€ํ•˜์‹ญ์‹œ์˜ค.

containers:
- args:
  - --authentication-mode=token
  - --enable-insecure-login

์•ž์œผ๋กœ ์šฐ๋ฆฌ๋Š” ํ† ํฐ ์ธ์ฆ์„ ์‹œํ–‰ํ•˜๊ณ  ํฌํŠธ 9090์„ 8443์œผ๋กœ, ์ฒด๊ณ„๋ฅผ HTTPS๋กœ ๋ณ€๊ฒฝํ•˜๊ณ  ์ž์ฒด ์„œ๋ช… ๋œ ์ธ์ฆ์„œ๋ฅผ ์‚ฌ์šฉํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ณง ์ถœ์‹œ ๋  ์˜ˆ์ •์ด๋ฉฐ ์ถœ์‹œ ๋…ธํŠธ์— ๋ฐœํ‘œ ๋  ์˜ˆ์ •์ž…๋‹ˆ๋‹ค.
https://github.com/Azure/aks/releases

๊ฐ™์€ ๋ฌธ์ œ์— ์ง๋ฉดํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. AD ๊ณ„์ •์„ ์‚ฌ์šฉํ•˜์—ฌ ๋Œ€์‹œ ๋ณด๋“œ, API ๋˜๋Š” kubectl์— ์•ก์„ธ์Šค ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

๋‚ด ์‹ค์ˆ˜ : AD ๊ณ„์ •์„ ์‚ฌ์šฉํ•˜์—ฌ K8S ๋Œ€์‹œ ๋ณด๋“œ์— ์•ก์„ธ์Šค ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

๋Œ€์‹œ ๋ณด๋“œ์— ์•ก์„ธ์Šคํ•˜๊ธฐ ์œ„ํ•ด ์–ด๋–ค ํ”„๋กœ์„ธ์Šค๋ฅผ ๋”ฐ๋ฅด๊ณ  ์žˆ์Šต๋‹ˆ๊นŒ? ์œ„์˜ ๋‚ด ์˜๊ฒฌ์„ ์‹œ๋„ํ•ด ๋ณด์…จ์Šต๋‹ˆ๊นŒ?

https://github.com/MicrosoftDocs/azure-docs/issues/23789#issuecomment -485010803

@ palma21 ๋ฐฉ๊ธˆ ๊ท€ํ•˜์˜ ์ œ์•ˆ์„ ์‹œ๋„ํ–ˆ์ง€๋งŒ ๋Œ€์‹œ ๋ณด๋“œ์— ๋กœ๊ทธ์ธ ํ•  ๋•Œ ์˜ค๋ฅ˜ ๋ชฉ๋ก๊ณผ ๋™์ผํ•œ ๋ฌธ์ œ๊ฐ€ ๊ณ„์† ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

  • kubectl ํ”„๋ก์‹œ
  • http : // localhost : 8001 / api / v1 / namespaces / kube-system / services / kubernetes-dashboard / proxy / #! / login

configmaps๊ฐ€ ๊ธˆ์ง€๋จ : ์‚ฌ์šฉ์ž "clusterAdmin"์€ ๋„ค์ž„ ์ŠคํŽ˜์ด์Šค "default"์— configmap์„ ๋‚˜์—ด ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

์„œ๋น„์Šค ๊ณ„์ • 'kubernetes-dashboard'์— ๋Œ€ํ•œ ์—ญํ•  ๋ฐ”์ธ๋”ฉ์ด ์—†์Šต๋‹ˆ๋‹ค. ํด๋Ÿฌ์Šคํ„ฐ ๊ด€๋ฆฌ์ž ๊ณ„์ • ํ† ํฐ์œผ๋กœ ์‹œ๋„ํ–ˆ์Šต๋‹ˆ๋‹ค. ํด๋Ÿฌ์Šคํ„ฐ ๊ด€๋ฆฌ์ž์ด๊ณ  ์ ์ ˆํ•œ RBAC๊ฐ€ ์žˆ์ง€๋งŒ ๋‚ด AAD ๊ณ„์ •์œผ๋กœ ๋กœ๊ทธ์ธ ํ•  ์ˆ˜์—†๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์•„๋ž˜ ๋ช…๋ น์œผ๋กœ ์ƒ์„ฑ ๋œ ํ† ํฐ์ด ์ „๋‹ฌ์ž ํ† ํฐ ๋กœ๊ทธ์ธ์— ์œ ํšจํ•ฉ๋‹ˆ๊นŒ?

  • az ๊ณ„์ • get-access-token --query accessToken -o tsv

ํฌ๋“œ ์„ธ๋ถ€ ์ •๋ณด ์Šค ๋‹ˆํŽซ :

์ปจํ…Œ์ด๋„ˆ :
๋ณธ๊ด€:
์ปจํ…Œ์ด๋„ˆ ID : docker : // 610c6b258cde01196c03c918c3acca6c3c6ba531153ad1b7e0f034e032065319
์ด๋ฏธ์ง€ : k8s.gcr.io/kubernetes-dashboard-amd64:v1.10.1
์ด๋ฏธ์ง€ ID : docker- pullable : //k8s.gcr.io/kubernetes-dashboard-amd64@sha256 : 0ae6b69432e78069c5ce2bcde0fe409c5c4d6f0f4d9cd50a17974fea38898747
ํฌํŠธ : 9090 / TCP
ํ˜ธ์ŠคํŠธ ํฌํŠธ : 0 / TCP
์ธ์ˆ˜ :
--authentication-mode = token
-๋น„๋ณด์•ˆ ๋กœ๊ทธ์ธ ํ™œ์„ฑํ™”
์ƒํƒœ : ์‹คํ–‰ ์ค‘
์‹œ์ž‘ : 2019 ๋…„ 4 ์›” 25 ์ผ ๋ชฉ์š”์ผ 12:04:43 +0100

์ด ๋ฉ”์‹œ์ง€๋Š” clusterAdmin ์—ญํ• ์— ํ•ด๋‹น ๋„ค์ž„ ์ŠคํŽ˜์ด์Šค์˜ ๊ตฌ์„ฑ ๋งต์„ ๋‚˜์—ด ํ•  ๊ถŒํ•œ์ด ์—†์Œ์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค. ์ด๋ฅผ ์‚ฌ์šฉ์ž ์—ญํ• ์— ์ถ”๊ฐ€ํ•˜์—ฌ ํ•ด๊ฒฐ๋˜๋Š”์ง€ ํ™•์ธํ•ด ์ฃผ์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ?
๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ClusterAdmin ์—ญํ•  yaml ๋ฐ ๋Œ€์‹œ ๋ณด๋“œ ๋ฐฐํฌ yaml์„ ๋ณด๋‚ด ์ฃผ์‹œ๋ฉด ์‚ดํŽด๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์„œ๋น„์Šค ๊ณ„์ • (๊ธฐ๋ณธ ๋Œ€์‹œ ๋ณด๋“œ ์•„๋‹˜)์œผ๋กœ ๋‹ค์‹œ ์‹œ๋„ํ–ˆ๋Š”๋ฐ ์ž˜ ์ž‘๋™ํ•˜๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ํด๋Ÿฌ์Šคํ„ฐ ๊ด€๋ฆฌ์ž ์—ญํ•  ๋ฐ”์ธ๋”ฉ์ด์žˆ๋Š” AAD ์‚ฌ์šฉ์ž์˜ ํ† ํฐ์„ ์‚ฌ์šฉํ•˜๋ฉด ๋กœ๊ทธ์ธ์— ์‹คํŒจํ•ฉ๋‹ˆ๋‹ค. ์˜ฌ๋ฐ”๋ฅธ RBAC๋ฅผ ์‚ฌ์šฉํ•˜๋Š” AAD๊ฐ€ ํ† ํฐ์œผ๋กœ ๋Œ€์‹œ ๋ณด๋“œ์— ๋กœ๊ทธ์ธํ•˜๊ณ  RBAC ๋ฐ”์ธ๋”ฉ์— ์ •์˜ ๋œ๋Œ€๋กœ ๋Œ€์‹œ ๋ณด๋“œ์—์„œ ๊ถŒํ•œ ์ˆ˜์ค€์„๋ฐ›์„ ์ˆ˜ ์žˆ์–ด์•ผํ•ฉ๋‹ˆ๊นŒ?

๋„ค, ๊ทธ๋ž˜์•ผํ•ฉ๋‹ˆ๋‹ค. k8s ๋Œ€์‹œ ๋ณด๋“œ์— ํ† ํฐ์„ ๊ฐ€์ ธ ์˜ค๋Š” ์‚ฌ์šฉ์ž์™€ ํ•จ๊ป˜ ๊ธฐ๋ณธ NS์˜ ๊ตฌ์„ฑ ๋งต์„ ๋‚˜์—ด ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? ์‚ฌ์šฉ์ž์™€ ํ•จ๊ป˜ ํ•ด๋‹น ์ž‘์—…์„ ์ˆ˜ํ–‰ ํ•  ์ˆ˜ ์žˆ๋‹ค๋ฉด ์˜ˆ์ƒ ํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ๋Œ€์‹œ ๋ณด๋“œ์— ์ „๋‹ฌํ•˜๋Š” ํ† ํฐ์„ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

ํ•ด๊ฒฐ ๋œ ๊ฒƒ์œผ๋กœ ๋ณด์ด๋Š”์ด ์Šค๋ ˆ๋“œ์˜ ์ŠคํŒธ์„ ๋ฐฉ์ง€ํ•˜๋ ค๋ฉด jpalma [at] microsoft.com์œผ๋กœ ๋ฉ”์ผ์„ ๋ณด๋‚ด์ฃผ์„ธ์š”.

์ด๋ฅผ ๊ฐ•์ œํ•˜๋ ค๋ฉด ๋Œ€์‹œ ๋ณด๋“œ ๋ฐฐํฌ๋ฅผ ํŽธ์ง‘ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
์˜ˆ.
kubectl edit deploy -n kube-system kubernetes-dashboard

๊ทธ๋ฆฌ๊ณ  ์ปจํ…Œ์ด๋„ˆ ์‚ฌ์–‘์— ์ถ”๊ฐ€ํ•˜์‹ญ์‹œ์˜ค.

containers:
- args:
  - --authentication-mode=token
  - --enable-insecure-login

์•ž์œผ๋กœ ์šฐ๋ฆฌ๋Š” ํ† ํฐ ์ธ์ฆ์„ ์‹œํ–‰ํ•˜๊ณ  ํฌํŠธ 9090์„ 8443์œผ๋กœ, ์ฒด๊ณ„๋ฅผ HTTPS๋กœ ๋ณ€๊ฒฝํ•˜๊ณ  ์ž์ฒด ์„œ๋ช… ๋œ ์ธ์ฆ์„œ๋ฅผ ์‚ฌ์šฉํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ณง ์ถœ์‹œ ๋  ์˜ˆ์ •์ด๋ฉฐ ์ถœ์‹œ ๋…ธํŠธ์— ๋ฐœํ‘œ ๋  ์˜ˆ์ •์ž…๋‹ˆ๋‹ค.
https://github.com/Azure/aks/releases

์—ฌ๋Ÿฌ๋ถ„์€ ํƒ€์ž„ ๋ผ์ธ์„ ์•ฝ์†ํ•˜์…จ์Šต๋‹ˆ๋‹ค. ํ˜„์žฌ๋Š” ํ•ด๊ฒฐ์ฑ…์ด ์—†์œผ๋ฉฐ์ด ์•ˆ์ „ํ•˜์ง€ ์•Š์€ ํ•ด๊ฒฐ์ฑ…์„ ๋‹ค์‹œ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ด ๋ฌธ์ œ๋Š” ์˜ค๋žซ๋™์•ˆ ์—ด๋ ค ์žˆ์ง€๋งŒ ๋™์‹œ์— ๋‹ค๋ฅธ ๊ฒƒ๋“ค์ด ์ฐธ์„ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์‹ค์‹œ๊ฐ„ ์ผ์ •์„ ์•Œ๋ ค ์ฃผ์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ ??

@iainfoulds ์‹ค์ œ๋กœ timelienes๋ฅผ ์ œ๊ณต ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ ??
์ธ์šฉ :

@ palma21 ์€ ํ•ด๊ฒฐ์„ ์œ„ํ•ด ํƒ€์ž„ ๋ผ์ธ์— ์ถ”๊ฐ€ ์ปจํ…์ŠคํŠธ๋ฅผ ์ œ๊ณต ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

@ palma21 ํ˜„์žฌ ์†”๋ฃจ์…˜์€ ์ด์ƒ์ ์ด์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์–ด๋–ค ์ด์œ ๋กœ ์ฝ”๋“œ ์ค„์ด ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
์˜ค๋ฅ˜ : "kubernetes-dashboard"๋ฐฐํฌ๊ฐ€ ์ž˜๋ชป๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์•ž์œผ๋กœ ์šฐ๋ฆฌ๋Š” ํ† ํฐ ์ธ์ฆ์„ ์‹œํ–‰ํ•˜๊ณ  ํฌํŠธ 9090์„ 8443์œผ๋กœ ๋ณ€๊ฒฝํ•˜๊ณ  ์ฒด๊ณ„๋ฅผ HTTPS๋กœ ๋ณ€๊ฒฝํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.
์–ธ์ œ???

๋ฐฐํฌ ๋งค๋‹ˆํŽ˜์ŠคํŠธ๊ฐ€ ์œ ํšจํ•˜์ง€ ์•Š์€ ๊ฒฝ์šฐ ๊ตฌ๋ฌธ ๋˜๋Š” ๋“ค์—ฌ ์“ฐ๊ธฐ ๋ฌธ์ œ ์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ๊ทธ๊ฒƒ์„ ๋‹ค์‹œํ–ˆ๊ณ  ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.
์ธ๋ผ์ธ์œผ๋กœ ์‹œ๋„
args: ["--authentication-mode=token", "--enable-insecure-login"]

6 ์›” ๋ง์—์ด ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด ์ ์šฉ๋ฉ๋‹ˆ๋‹ค.

์ด๊ฒƒ์€ @ palma21 ๋…ธํŠธ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค.
aks-dashboard.sh

# As a workaround accessing the dashboard using a token without enforcing https secure communication (tunnel is exposed ver http), you can edit the dashboard deployment with adding the following argument
# It is an issue currently being discussed here https://github.com/MicrosoftDocs/azure-docs/issues/23789
# args: ["--authentication-mode=token", "--enable-insecure-login"] under spec: containers
# spec:
#   containers:
#   - name: *****
#     image: *****
#     args: ["--authentication-mode=token", "--enable-insecure-login"]
kubectl edit deploy -n kube-system kubernetes-dashboard

# Get AAD token for the signed in user (given that user has the approperiate access). Use (az login) if you are not signed in
SIGNED_USER_TOKEN=$(az account get-access-token --query accessToken -o tsv)
echo $SIGNED_USER_TOKEN

# establish a tunnel and login via token above
# If AAD enabled, you should see the AAD sign in experience with a link and a code to https://microsoft.com/devicelogin
az aks browse --resource-group $RG --name $CLUSTER_NAME

# You can also use kubectl proxy to establish the tunnel as well
# kubectl proxy
# Then you can navigate to sign in is located http://localhost:8001/api/v1/namespaces/kube-system/services/kubernetes-dashboard/proxy/#!/login

# Note: you can also use the same process but with generated kubeconfig file for a Service Account that is bound to a specific namespace to login to the dashboad.

๋‚˜๋Š” ์ด๊ฒƒ์„ ์‹œ๋„ํ–ˆ๋‹ค :
kubectl edit deploy -n kube-system kubernetes-dashboard
2019 ๋…„ 9 ์›” 12 ์ผ์— ๋ฐฐํฌ ๋œ ์ตœ์‹  AKS๋กœ.
yaml ํŒŒ์ผ๋กœ ์ฑ„์›Œ์ง„ ๋ฉ”๋ชจ์žฅ์ด ์—ด๋ ธ์ง€๋งŒ ์ €์žฅํ•˜๊ณ  ๋‹ซ์•˜์„ ๋•Œ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค.

error: deployments.extensions "kubernetes-dashboard" is invalid
error: Edit cancelled, no valid changes were saved.

์–ด๋–ค ์•„์ด๋””์–ด?

์ด๊ฒƒ์€ ๋งค์šฐ ์ค‘์š”ํ•œ ๋ฒ„๊ทธ ์ธ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๋‚ด๊ฐ€ ์ดํ•ดํ•˜๋Š”๋Œ€๋กœ AAD ๋กœ๊ทธ์ธ์„ ์‚ฌ์šฉํ•˜์—ฌ Kubernetes ๋Œ€์‹œ ๋ณด๋“œ์— ์•ก์„ธ์Šค ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

๋” ๋‚˜์œ ๊ฒƒ์€ ๋ฌธ์„œ ๊ฐ€ ์ž˜๋ชป๋˜์—ˆ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

Kubernetes ๋Œ€์‹œ ๋ณด๋“œ์— ๋Œ€ํ•œ ์ธ์ฆ์„ ์„ค์ •ํ•  ๋•Œ ๊ธฐ๋ณธ ๋Œ€์‹œ ๋ณด๋“œ ์„œ๋น„์Šค ๊ณ„์ •์— ํ† ํฐ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. ํ† ํฐ์„ ์‚ฌ์šฉํ•˜๋ฉด ๊ฐ ์‚ฌ์šฉ์ž๊ฐ€ ์ž์‹ ์˜ ๊ถŒํ•œ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ธฐ๋ณธ ๋Œ€์‹œ ๋ณด๋“œ ์„œ๋น„์Šค ๊ณ„์ •์„ ์‚ฌ์šฉํ•˜๋ฉด ์‚ฌ์šฉ์ž๊ฐ€ ์ž์‹ ์˜ ๊ถŒํ•œ์„ ์šฐํšŒํ•˜๊ณ  ๋Œ€์‹  ์„œ๋น„์Šค ๊ณ„์ •์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด ์Šค๋ ˆ๋“œ๋ฅผ ์ฝ์Œ์œผ๋กœ์จ ์ด๊ฒƒ์€ ๊นจ์กŒ์Šต๋‹ˆ๋‹ค. ์ด ๋ฒ„๊ทธ๋ฅผ ์ˆ˜์ •ํ•˜๊ฑฐ๋‚˜ ์ตœ์†Œํ•œ ๋ฌธ์„œ๋ฅผ ์—…๋ฐ์ดํŠธํ•˜์—ฌ ํ˜„์žฌ ๋ถˆ๊ฐ€๋Šฅํ•˜๋‹ค๋Š” ๊ฒƒ์„ ๋ช…ํ™•ํžˆ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

์ด ํ‹ฐ์ผ“์€ 1 ์›” 30 ์ผ์— ์ฒ˜์Œ ์ œ๊ธฐ๋˜์—ˆ์œผ๋ฉฐ,์ด ๋ฒ„๊ทธ๊ฐ€ ๊ณต๊ฐœ๋˜๊ธฐ๊นŒ์ง€๋Š” ์˜ค๋žœ ์‹œ๊ฐ„์ด ๊ฑธ๋ฆฝ๋‹ˆ๋‹ค.

6 ์›” ๋ง์—์ด ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด ์ ์šฉ๋ฉ๋‹ˆ๋‹ค.

@ palma21 June์ด

์œ„์—์„œ ์‚ดํŽด๋ณธ ์ƒˆ ๋ฌธ์„œ๋ฅผ ํฌํ•จํ•˜์—ฌ ๋กค์•„์›ƒํ–ˆ์ง€๋งŒ ์ƒˆ ๋ธŒ๋ผ์šฐ์ € ๋™์ž‘๊ณผ ๋ฒ„๊ทธ๋กœ ์ธํ•ด ๋กค๋ฐฑํ•ด์•ผํ–ˆ์Šต๋‹ˆ๋‹ค.

์ด๋ฒˆ ๋‹ฌ ๋ง๊นŒ์ง€ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ํ˜„์žฌ ์ž‘์—… ์ค‘์ž…๋‹ˆ๋‹ค.

๊ทธ ๋™์•ˆ์ด ๊ธฐ๋Šฅ์„ ํ™œ์„ฑํ™”ํ•˜๋Š” ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์ด ์žˆ์Šต๋‹ˆ๋‹ค.
๋ฐฐํฌ ํŽธ์ง‘
์ธ์ˆ˜ : [ "--authentication-mode = token", "--enable-insecure-login"]

์œ„์˜ ์˜ค๋ฅ˜๋Š” ๊ตฌ๋ฌธ ๋˜๋Š” ํŽธ์ง‘๊ธฐ ๋ฌธ์ œ์ธ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๋ฐฉ๊ธˆ ๋‹ค์‹œ ํ…Œ์ŠคํŠธํ–ˆ๋Š”๋ฐ ์—ฌ์ „ํžˆ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

์ด ๋ฒ„๊ทธ์™€ ๊ด€๋ จ๋œ ์—…๋ฐ์ดํŠธ๊ฐ€ ์žˆ์Šต๋‹ˆ๊นŒ?

๊ฐ™์€ ๋ฌธ์ œ์— ์ง๋ฉด ํ•ด ์žˆ๋Š”๋ฐ, ์ด์— ๋Œ€ํ•œ ์—…๋ฐ์ดํŠธ๊ฐ€ ์žˆ์Šต๋‹ˆ๊นŒ? ๊ทธ๋ฆฌ๊ณ  ์ˆ˜์ • ๋  ์˜ˆ์ •์ธ ETA๊ฐ€ ์žˆ์Šต๋‹ˆ๊นŒ?

์ด๋Ÿฐ ๋ฒ„๊ทธ๊ฐ€ ์žˆ๋Š”์ง€ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด AKS๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ’€ ์Šคํƒ ์†”๋ฃจ์…˜์„ ๋ฐฐํฌํ•˜๋Š” ๋ฐ ๋ช‡ ๋‹ฌ์„ ์†Œ๋น„ํ•˜๋Š” Microsoft ์ œํ’ˆ์— ๋Œ€ํ•ด ๋ฒ ํŒ…ํ•˜๋Š” ๊ฒƒ์€ ์ •๋ง ์‹ค๋ง ์Šค๋Ÿฝ์Šต๋‹ˆ๋‹ค ....

์ด ๋ฌธ์ œ๋„ ์ŠคํŒธ์œผ๋กœ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด ๋ฐ”๋กœ @ Microsoft 1์„ ํ†ตํ•ด ๋‚ด ๊ณ ์šฉ์ฃผ์˜ ์ง€์› ๋‹ด๋‹น์ž๊ฐ€ ์ €์—๊ฒŒํ•˜๋ผ๊ณ  ํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๊ฒ ์Šต๋‹ˆ๊นŒ ๋งค์šฐ SSL ์˜คํ”„ ์ „ํ™˜ ํฌํ•จ ๋“ค์—ฌ์ง€์ง€ ์•Š๋Š” ์†”๋ฃจ์…˜์žˆ๋‹ค.

1 : ๊ณ ๊ฐ ์„œ๋น„์Šค ๋ฐ ์ง€์› / Microsoft Azure ๊ธฐ์ˆ  ์ง€์› / Azure ์ปจํ…Œ์ด๋„ˆ ํŒ€-EMEA-์—์„œ _ ์ง€์› ์—์Šค์ปฌ๋ ˆ์ด์…˜ ์—”์ง€๋‹ˆ์–ด _๋กœ๋ถ€ํ„ฐ ๊ฐœ์ธ์ ์œผ๋กœ ์ง์ ‘ ์ง€์นจ์„ ๋ฐ›์•˜์Šต๋‹ˆ๋‹ค.

์ €๋Š” ์—ฌ๊ธฐ์˜ ํˆฌ๋ช…์„ฑ๊ณผ MS์˜ ํ›Œ๋ฅญํ•œ ์ปค๋ฎค๋‹ˆ์ผ€์ด์…˜์„ ์ข‹์•„ํ•ฉ๋‹ˆ๋‹ค. ๐Ÿคฆโ€โ™‚

@ palma21 ์ด ๋ฌธ์ œ์— ๋Œ€ํ•œ ์—…๋ฐ์ดํŠธ๊ฐ€ ์žˆ์œผ๋ฉด ๊ณต์œ ํ•ด ์ฃผ์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ? ๊ฐ์‚ฌ :)

์ด๊ฒƒ์— ๋Œ€ํ•œ ์—…๋ฐ์ดํŠธ๋ฅผ ์–ป๋Š” ๊ฒƒ์ด ์ข‹์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค

์ด ๋ฌธ์ œ์— ๋Œ€ํ•œ ์ˆ˜์ • ์‚ฌํ•ญ์ด ์žˆ์Šต๋‹ˆ๊นŒ? ์•„๋‹ˆ๋ฉด RBAC ์ง€์› AKS ํด๋Ÿฌ์Šคํ„ฐ ํ…Œ๋„ŒํŠธ๊ฐ€ ํ•ดํ‚น ๋งŒ ๊ฑฐ์น˜๋ฉด๋ฉ๋‹ˆ๊นŒ?

์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ์ถ”์  ํ•  ์ˆ˜์žˆ๋Š” ๋ฐฑ ๋กœ๊ทธ ํ•ญ๋ชฉ ์ด๋ฆ„์€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?

์—…๋ฌด๋ฅผ ํ†ตํ•ด ์ผ๋ถ€ Microsoft ์ „๋ฌธ๊ฐ€์™€ ์ด์•ผ๊ธฐ๋ฅผ ๋‚˜๋ˆŒ ์ˆ˜์žˆ๋Š” ๊ฐœ์ธ์œผ๋กœ์„œ ๊ณต์œ  ํ•  ์ˆ˜์žˆ๋Š” ์ตœ์‹  ๋‰ด์Šค๋Š” Dashboard Plugin ์ด ๋ณธ์งˆ์ ์œผ๋กœ ์•ˆ์ „ํ•˜์ง€ ์•Š๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค (์ด๋ฆ„์ด์—†๋Š” Microsoft Architect K8s Advisor Expert-์ œ๋ชฉ์ด ์•„๋‹ˆ๋ผ ํ•ด๋‹น ์ œ๋ชฉ์— ๋Œ€ํ•œ ์„ค๋ช… ์ž„). ์‚ฌ์šฉํ•ด์„œ๋Š” ์•ˆ๋ฉ๋‹ˆ๋‹ค.

๋‚˜๋Š” ๊ทธ ์„ฑ๋ช…์— ๋™์˜ํ•˜๋ฉฐ,์ด ๊ฐ™์€ ์งˆ๋ฌธ์„ ๋ฌป๋Š” ๋ฏธ๋ž˜์˜ ๋ชจ๋“  ์‚ฌ๋žŒ๋“ค์—๊ฒŒ K8s์˜ ๋ณด์•ˆ ์œ„ํ—˜ / ๋ฌธ์ œ๋ฅผ ์ดํ•ดํ•˜๊ธฐ ์œ„ํ•ด K8s๋ฅผ ์ฝ๊ณ  ๋Šฅ๋ ฅ์„ ๊ตฌ์ถ•ํ•˜๋„๋ก ์š”์ฒญํ•ฉ๋‹ˆ๋‹ค.

(๋…ธ๋ธŒ ๋ฐ ๋‹ค์ด์–ผ๊ณผ ์›น UI๋ฅผ ๊ฐ€์ง„ ๋Œ€์‹ ์— ๋‹จ์ง€ ์™„๋ฒฝํ•˜๊ฒŒ ์‹คํ–‰ํ•  ์ˆ˜์žˆ๋Š” CLI ๋„๊ตฌ ์‚ฌ์šฉ์˜ ๋‹จ์ˆœํ•œ ์ด์ต์„ ์œ„ํ•ด - ๊ทธ ์ค‘ ๊ฐ™์€ ํ‘œ์ค€์œผ๋กœ ์ ์  ๋” ๋งŽ์€ K8S์— ์ถ”๊ฐ€๊ฐ€ kustomize์„ ).

https://github.com/pusher/oauth2_proxy ๋กœ ์ˆ˜ํ–‰ ํ•  ์ˆ˜

์•ˆ๋…•ํ•˜์„ธ์š”.

https://github.com/pusher/oauth2_proxy ๋กœ ์ˆ˜ํ–‰ ํ•  ์ˆ˜

์•ˆ๋…•ํ•˜์„ธ์š”
๋Œ€์‹œ ๋ณด๋“œ ์ˆ˜ ์‹ ์šฉ yaml, oauth2_proxy ์šฉ values.yaml ๋ฐ Azure AD ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ๋Œ€ํ•œ ์ ์šฉ ๊ฐ€๋Šฅํ•œ ์„ค์ •์„ ํฌํ•จํ•˜๋Š” ์‹คํ–‰ ๊ฐ€๋Šฅํ•œ ์˜ˆ์ œ๋ฅผ ์—ฐ๊ฒฐํ•˜๊ฑฐ๋‚˜ ๊ณต์œ ํ•ด ์ฃผ์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ?
๋ช‡ ์ผ ๋™์•ˆ Azure AD์—์„œ ์ž‘๋™ํ•˜๋„๋ก oauth2_proxy๋ฅผ ์–ป์œผ๋ ค๊ณ  ๋…ธ๋ ฅํ–ˆ์ง€๋งŒ์ด๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ์ถฉ๋ถ„ํžˆ ์ž์„ธํžˆ ์„ค๋ช…ํ•˜๊ณ  ๋‹ค์–‘ํ•œ ํ”Œ๋ž˜๊ทธ ๋ฐ ์„ค์ •์„ ์‹คํ—˜ํ•˜๋Š” ๋ฐ ํ•„์š”ํ•œ ์ „์ฒด ์‹คํ–‰ ๊ฐ€๋Šฅํ•œ ์˜ˆ์ œ๋ฅผ ์ฐพ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ์ถฉ๋ถ„ํžˆ ๋ฉ€์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
์ •๋ง ๊ฐ์‚ฌํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค!

@edemen ๋‚ด ํŒ :

  • ๊ธฐ๋ณธ AKS ๋Œ€์‹œ ๋ณด๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ๋ง๊ณ  helm์œผ๋กœ ๋ณ„๋„๋กœ ์„ค์น˜ (v1.10.1)
    ํˆฌ๊ตฌ ๊ฐ’
    nginx.ingress.kubernetes.io/auth-url: "https://yourvalue/oauth2/auth" nginx.ingress.kubernetes.io/auth-signin: "https://yourvalue/oauth2/start?rd=$escaped_request_uri" nginx.ingress.kubernetes.io/configuration-snippet: | auth_request_set $token $upstream_http_authorization; proxy_set_header Authorization $token;
  • Helm https://github.com/helm/charts/blob/master/stable/oauth2-proxy๋กœ oauth2_proxy ์„ค์น˜
  • ํˆฌ๊ตฌ ๊ฐ’
    extraArgs: provider: "azure" azure-tenant: "yourvalues" whitelist-domain: "yourvalues" cookie-domain: "yourvalues" set-authorization-header: "true"
    ๊ณผ
    ingress: enabled: true path: /oauth2

์ด๊ฒƒ์œผ๋กœ ์ถฉ๋ถ„ํ•ฉ๋‹ˆ๋‹ค.

์•ˆ๋…•ํ•˜์„ธ์š”.
๋‹ต์žฅ ํ•ด์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.
์˜ค๋Š˜ Azure AD ๋ฐ oauth2 ํ”„๋ก์‹œ๊ฐ€ ์ž‘๋™ํ•˜๋„๋ก ๊ด€๋ฆฌํ–ˆ์ง€๋งŒ login.live.com์—์„œ ๋ฐ˜ํ™˜ ํ•œ 400 ์˜ค๋ฅ˜ (์ž์„ธํ•œ ๋‚ด์šฉ์€ https://github.com/oauth2-)๋กœ ์ธํ•ด ๋งŽ์€ ์„ค์ •์ด ์˜ค๋ฅ˜ 500์œผ๋กœ ๋๋‚ฉ๋‹ˆ๋‹ค. proxy / oauth2-proxy / issues / 458)
๊ธฐ๋ณธ์ ์œผ๋กœ set-authorization-header: "true" ํ•˜๋ฉด oauth2 ํ”„๋ก์‹œ๋ฅผ ์‚ฌ์šฉํ•œ ์ธ์ฆ์ด Azure์—์„œ ์ „ํ˜€ ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ด์œ ๋ฅผ ์•Œ์•„ ๋‚ด๋ ค๊ณ ํ–ˆ์ง€๋งŒ ์ง€๊ธˆ๊นŒ์ง€๋Š” ์•„๋ฌด๊ฒƒ๋„ ์—†์Šต๋‹ˆ๋‹ค.
๋งŒ์ผ์„ ๋Œ€๋น„ํ•˜์—ฌ helm install oauth2-proxy stable/oauth2-proxy -n oauth2-proxy --values oauth2-proxy-values.yaml oauth2 ํ”„๋ก์‹œ๋ฅผ ์„ค์น˜ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

์‹ ๊ฒฝ ์“ฐ์ง€ ๋งˆ. ๋ถ„๋ช…ํžˆ Dashboard v1.10.1์€ ์šฐ๋ฆฌ๊ฐ€ ๊ฐ€์ง€๊ณ ์žˆ๋Š” Kubernetes 1.16์—์„œ๋„ ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค

AKS์™€ ํ•จ๊ป˜ ์ž‘๋™ํ•˜๋Š” ๊ธฐ๋ณธ Kubernetes ๋Œ€์‹œ ๋ณด๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์€ ์šด์ด ์ข‹์ง€ ์•Š์•˜์ง€๋งŒ ์ž‘์—…์— ๋งŽ์€ ์‹œ๊ฐ„์„ ์†Œ๋น„ํ•˜์ง€ ์•Š์•˜๋‹ค๋Š” ๊ฒƒ์„ ์ธ์ •ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค. ์ž‘๋™ํ•˜๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ด๋Š” ์†”๋ฃจ์…˜ (์‹œ๊ฐ„์— ๋ชจ๋“  ๋ฌธ์ œ๊ฐ€ ํ‘œ์‹œ๋จ)์€ kubectl proxy ์™€ ํ•จ๊ป˜ ํ‘œ์ค€ ๋Œ€์‹œ ๋ณด๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ๋กœ์ปฌ ์‚ฌ์šฉ์ž kubeconfig๋ฅผ ์—…๋กœ๋“œํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋‹จ์ˆœํ•œ URL๋งŒํผ ์‰ฝ๊ณ  ์ข‹์ง€๋Š” ์•Š์ง€๋งŒ AD ์‚ฌ์šฉ์ž ์ปจํ…์ŠคํŠธ์—์„œ ์‹คํ–‰๋˜๋Š” ๋Œ€์‹œ ๋ณด๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฐ€์žฅ ์ข‹์€ ๋ฐฉ๋ฒ• ์ธ ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ด๋Š” ๋‹ค๋‹จ๊ณ„ ํ”„๋กœ์„ธ์Šค์ž…๋‹ˆ๋‹ค. ๋Œ€์‹œ ๋ณด๋“œ ์ž์ฒด๋ฅผ ๋งŽ์ด ์‚ฌ์šฉ์ž ์ง€์ •ํ•˜์ง€ ์•Š์•„๋„๋˜์ง€๋งŒ Azure AD๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊น”๋”ํ•œ ์ ‘๊ทผ ๋ฐฉ์‹์„ ๊ณ„์† ์ฃผ์‹œํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

@edemen ๋ฌผ๋ก  ์ด๊ฒƒ์€ K8s <1.15์—์„œ๋งŒ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. K8s 1.16์˜ ๊ฒฝ์šฐ ์ƒˆ๋กœ์šด v2.0 ๋Œ€์‹œ ๋ณด๋“œ๊ฐ€ ๊ณต์‹ ์ถœ์‹œ ๋  ๋•Œ๊นŒ์ง€ ๊ธฐ๋‹ค๋ ค์•ผํ•ฉ๋‹ˆ๋‹ค.

Dashboard v2๊ฐ€ https://github.com/kubernetes/dashboard/releases/tag/v2.0.0 ์„ ์‹œ์ž‘ํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ k8s 1.16์„ ๋ถ€๋ถ„์ ์œผ๋กœ ์ง€์›ํ•˜๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

@SayakMukhopadhyay ๋ฒ„์ „

์˜๊ฒฌ์„ ๋ณด๋‚ด ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค!

์ด ๊ธฐ์‚ฌ๋Š” ์ตœ๊ทผ Kubernetes ๋Œ€์‹œ ๋ณด๋“œ ๋กœ๊ทธ์ธ์— ๋Œ€ํ•œ ์„ธ๋ถ€ ์‚ฌํ•ญ์œผ๋กœ ์—…๋ฐ์ดํŠธ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

๋‹ซ์•„์ฃผ์„ธ์š”

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰