Docs Menu
Docs Home
/
MongoDB ๋งค๋‰ด์–ผ
/ / /

์ž์ฒด ๊ด€๋ฆฌ ๋ฐฐํฌ์˜ Kerberos ์ธ์ฆ

์ด ํŽ˜์ด์ง€์˜ ๋‚ด์šฉ

  • ๊ฐœ์š”
  • Kerberos ๊ตฌ์„ฑ ์š”์†Œ ๋ฐ MongoDB
  • ์šด์˜ ๊ณ ๋ ค ์‚ฌํ•ญ
  • Kerberized MongoDB ํ™˜๊ฒฝ
  • ํ…Œ์ŠคํŠธ ๋ฐ ๊ฒ€์ฆ

MongoDB Enterprise ๋Š” Kerberos MongoDB ๋ฐ ์ธ์Šคํ„ด์Šค์— ๋Œ€ํ•œmongod mongos ํด๋ผ์ด์–ธํŠธ์˜ ์ธ์ฆ ์„ ์ง€์› ํ•ฉ๋‹ˆ๋‹ค. Kerberos ๋Š” ๋Œ€๊ทœ๋ชจ ํด๋ผ์ด์–ธํŠธ/ ์„œ๋ฒ„ ์‹œ์Šคํ…œ์„ ์œ„ํ•œ ์—…๊ณ„ ํ‘œ์ค€ ์ธ์ฆ ํ”„๋กœํ† ์ฝœ ์ž…๋‹ˆ๋‹ค. Kerberos ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด MongoDB ์™€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ๊ธฐ์กด ์ธ์ฆ ์ธํ”„๋ผ ๋ฐ ํ”„๋กœ์„ธ์Šค๋ฅผ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. MongoDB Enterprise ๋Š” MIT ๊ตฌํ˜„ ๋งŒ Kerberos ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. ์˜ .

Kerberos ๊ธฐ๋ฐ˜ ์‹œ์Šคํ…œ์—์„œ ์ธ์ฆ๋œ ํ†ต์‹ ์˜ ๋ชจ๋“  ์ฐธ๊ฐ€์ž๋ฅผ "์ฃผ์ฒด"๋ผ๊ณ  ํ•˜๋ฉฐ, ๋ชจ๋“  ์ฃผ์ฒด๋Š” ๊ณ ์œ ํ•œ ์ด๋ฆ„์„ ๊ฐ€์ ธ์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ฃผ์ฒด๋Š” ์˜์—ญ์ด๋ผ๋Š” ๊ด€๋ฆฌ ๋‹จ์œ„์— ์†ํ•ฉ๋‹ˆ๋‹ค. Kerberos ํ‚ค ๋ฐฐํฌ ์„ผํ„ฐ(KDC)๋Š” ๊ฐ ์˜์—ญ์— ๋Œ€ํ•ด ์˜์—ญ์˜ ์ฃผ์ฒด ๋ฐ ์ฃผ์ฒด์™€ ๊ด€๋ จ๋œ "๋น„๋ฐ€ ํ‚ค" ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์œ ์ง€ ๊ด€๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

ํด๋ผ์ด์–ธํŠธ-์„œ๋ฒ„ ์ธ์ฆ์˜ ๊ฒฝ์šฐ ํด๋ผ์ด์–ธํŠธ๋Š” KDC์— ํŠน์ • ์ž์‚ฐ์— ๋Œ€ํ•œ ์•ก์„ธ์Šค๋ฅผ ์œ„ํ•œ "ํ‹ฐ์ผ“"์„ ์š”์ฒญํ•ฉ๋‹ˆ๋‹ค. KDC๋Š” ํด๋ผ์ด์–ธํŠธ์˜ ๋น„๋ฐ€๊ณผ ์„œ๋ฒ„์˜ ๋น„๋ฐ€์„ ์‚ฌ์šฉํ•˜์—ฌ ๋น„๋ฐ€์„ ์ˆจ๊ธฐ๋ฉด์„œ๋„ ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„๊ฐ€ ์„œ๋กœ๋ฅผ ์ƒํ˜ธ ์ธ์ฆํ•  ์ˆ˜ ์žˆ๋Š” ํ‹ฐ์ผ“์„ ๊ตฌ์„ฑํ•ฉ๋‹ˆ๋‹ค.

Kerberos ์ง€์›์šฉ MongoDB ๊ตฌ์„ฑ์˜ ๊ฒฝ์šฐ, ์ดํ•ด ๊ด€๊ณ„๊ฐ€ ์žˆ๋Š” ์‚ฌ์šฉ์ž ์ฃผ์ฒด ๋ฐ ์„œ๋น„์Šค ์ฃผ์ฒด๋ผ๋Š” ๋‘ ๊ฐ€์ง€์˜ ์ฃผ์ฒด ์ด๋ฆ„์ด ์žˆ์Šต๋‹ˆ๋‹ค.

Kerberos๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ธ์ฆํ•˜๋ ค๋ฉด MongoDB์˜ Kerberos ์‚ฌ์šฉ์ž ์ฃผ์ฒด๋ฅผ $external ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ถ”๊ฐ€ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž ์ฃผ์ฒด ์ด๋ฆ„์€ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ํ˜•์‹์„ ๊ฐ–์Šต๋‹ˆ๋‹ค.

<username>@<KERBEROS REALM>

Kerberos๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ธ์ฆํ•˜๋ ค๋Š” ๋ชจ๋“  ์‚ฌ์šฉ์ž์— ๋Œ€ํ•ด MongoDB์˜ $external ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ํ•ด๋‹น ์‚ฌ์šฉ์ž๋ฅผ ์ƒ์„ฑํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

2} ์ธ์ฆ ์‚ฌ์šฉ์ž(Kerberos, LDAP ๋˜๋Š” x.509 ์‚ฌ์šฉ์ž)์™€ ํ•จ๊ป˜ ํด๋ผ์ด์–ธํŠธ ์„ธ์…˜ ๋ฐ ์ธ๊ณผ์  ์ผ๊ด€์„ฑ ๋ณด์žฅ์„ ์‚ฌ์šฉํ•˜๋ ค๋ฉด ์‚ฌ์šฉ์ž ์ด๋ฆ„์ด 10KB๋ณด๋‹ค ํด ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. $external

MongoDB ์— ์‚ฌ์šฉ์ž๋ฅผ ์ถ”๊ฐ€ํ•˜๊ณ  ํ•ด๋‹น ์‚ฌ์šฉ์ž๋กœ ์ธ์ฆํ•˜๋Š” ์˜ˆ๋Š” Linux ์—์„œ Kerberos ์ธ์ฆ์„ ์‚ฌ์šฉ MongoDB ์ž์ฒด ๊ด€๋ฆฌํ˜• MongoDB ๊ตฌ์„ฑ ๋ฐ Windows ์—์„œ Kerberos ์ธ์ฆ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ž์ฒด ๊ด€๋ฆฌํ˜• MongoDB ๊ตฌ์„ฑ์„ ์ฐธ์กฐํ•˜์„ธ์š”.

ํŒ

๋‹ค์Œ๋„ ์ฐธ์กฐํ•˜์„ธ์š”.

์ž์ฒด ๊ด€๋ฆฌ ๋ฐฐํฌ์„œ๋ฒ„์—์„œ ์‚ฌ์šฉ์ž ๋ฐ ์—ญํ•  ๊ด€๋ฆฌ ๋ฅผ ์ฐธ์กฐํ•˜์—ฌ MongoDB ์—์„œ ์‚ฌ์šฉ์ž๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ๊ด€๋ฆฌํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๊ด€ํ•œ ์ผ๋ฐ˜ ์ •๋ณด๋ฅผ ํ™•์ธํ•˜์„ธ์š”.

๋ชจ๋“  MongoDB mongod ๋ฐ mongos ์ธ์Šคํ„ด์Šค(Windows์˜ ๊ฒฝ์šฐ mongod.exe ๋˜๋Š” mongos.exe)์—๋Š” ์—ฐ๊ฒฐ๋œ ์„œ๋น„์Šค ์ฃผ์ฒด๊ฐ€ ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์„œ๋น„์Šค ์ฃผ์ฒด ์ด๋ฆ„์€ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ํ˜•์‹์„ ๊ฐ–์Šต๋‹ˆ๋‹ค.

<service>/<fully qualified domain name>@<KERBEROS REALM>

MongoDB์˜ ๊ฒฝ์šฐ <service> ๊ธฐ๋ณธ๊ฐ’์€ mongodb์ž…๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด m1.example.com์ด MongoDB ์„œ๋ฒ„์ด๊ณ  example.com์ด EXAMPLE.COM Kerberos ์˜์—ญ์„ ์œ ์ง€ ๊ด€๋ฆฌํ•˜๋Š” ๊ฒฝ์šฐ, m1์€ ์„œ๋น„์Šค ์ฃผ์ฒด ์ด๋ฆ„ mongodb/m1.example.com@EXAMPLE.COM์„ ๊ฐ€์ ธ์•ผ ํ•ฉ๋‹ˆ๋‹ค.

<service>์— ๋‹ค๋ฅธ ๊ฐ’์„ ์ง€์ •ํ•˜๋ ค๋ฉด mongod ๋˜๋Š” mongos(๋˜๋Š” mongod.exe ๋˜๋Š” mongos.exe)๋ฅผ ์‹œ์ž‘ํ•˜๋Š” ๋™์•ˆ serviceName์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. mongosh ๋˜๋Š” ๋‹ค๋ฅธ ํด๋ผ์ด์–ธํŠธ๋Š” serviceName์„ ์‚ฌ์šฉํ•˜์—ฌ ๋‹ค๋ฅธ ์„œ๋น„์Šค ์ฃผ์ฒด ์ด๋ฆ„์„ ์ง€์ •ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

์„œ๋น„์Šค ์ฃผ์ฒด ์ด๋ฆ„์€ ์„œ๋น„์Šค ์ฃผ์ฒด ์ด๋ฆ„์˜ FQDN(์ •๊ทœํ™”๋œ ๋„๋ฉ”์ธ ์ด๋ฆ„) ๋ถ€๋ถ„์„ ์‚ฌ์šฉํ•˜์—ฌ ๋„คํŠธ์›Œํฌ๋ฅผ ํ†ตํ•ด ์—ฐ๊ฒฐํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๊ธฐ๋ณธ์ ์œผ๋กœ Kerberos๋Š” DNS๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ˜ธ์ŠคํŠธ๋ฅผ ํ™•์ธํ•˜๊ธฐ ์ „์— /etc/krb5.conf ํŒŒ์ผ์„ ์‚ฌ์šฉํ•˜์—ฌ ํ˜ธ์ŠคํŠธ๋ฅผ ์‹๋ณ„ํ•˜๋ ค๊ณ  ์‹œ๋„ํ•ฉ๋‹ˆ๋‹ค.

Windows์—์„œ MongoDB๋ฅผ ์„œ๋น„์Šค๋กœ ์‹คํ–‰ํ•˜๋Š” ๊ฒฝ์šฐ, MongoDB Windows ์„œ๋น„์Šค์— ์„œ๋น„์Šค ์ฃผ์ฒด ์ด๋ฆ„ ํ• ๋‹น์„ ์ฐธ์กฐํ•˜์„ธ์š”.

Linux ์‹œ์Šคํ…œ์€ ์„œ๋น„์Šค ์ฃผ์ฒด์— ๋Œ€ํ•œ Kerberos ์ธ์ฆ ํ‚ค๋ฅผ ํ‚คํƒญ ํŒŒ์ผ์— ์ €์žฅํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Linux์—์„œ ์‹คํ–‰๋˜๋Š” ๊ฐ Kerberized mongod ๋ฐ mongos ์ธ์Šคํ„ด์Šค๋Š” ํ•ด๋‹น ์„œ๋น„์Šค ์ฃผ์ฒด์— ๋Œ€ํ•œ ํ‚ค๊ฐ€ ํฌํ•จ๋œ ํ‚คํƒญ ํŒŒ์ผ์— ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

ํ‚คํƒญ ํŒŒ์ผ์„ ์•ˆ์ „ํ•˜๊ฒŒ ์œ ์ง€ํ•˜๋ ค๋ฉด mongod ๋˜๋Š” mongos ํ”„๋กœ์„ธ์Šค๋ฅผ ์‹คํ–‰ํ•˜๋Š” ์‚ฌ์šฉ์ž๋กœ๋งŒ ์•ก์„ธ์Šค๋ฅผ ์ œํ•œํ•˜๋Š” ํŒŒ์ผ ๊ถŒํ•œ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

Linux์—์„œ MongoDB ํด๋ผ์ด์–ธํŠธ๋Š” Kerberos์˜ kinit ํ”„๋กœ๊ทธ๋žจ์„ ์‚ฌ์šฉํ•˜์—ฌ ์‚ฌ์šฉ์ž ์ฃผ์ฒด๋ฅผ ์„œ๋ฒ„์— ์ธ์ฆํ•˜๊ธฐ ์œ„ํ•ด ์ž๊ฒฉ ์ฆ๋ช… ์บ์‹œ๋ฅผ ์ดˆ๊ธฐํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Linux ์‹œ์Šคํ…œ๊ณผ ๋‹ฌ๋ฆฌ Windows์—์„œ ์‹คํ–‰ ์ค‘์ธ mongod ๋ฐ mongos ์ธ์Šคํ„ด์Šค๋Š” ํ‚คํƒญ ํŒŒ์ผ์— ์•ก์„ธ์Šคํ•  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ๋Œ€์‹  mongod ๋ฐ mongos ์ธ์Šคํ„ด์Šค๋Š” ์šด์˜ ์ฒด์ œ๋ณ„ ์ž๊ฒฉ ์ฆ๋ช… ์ €์žฅ์†Œ์—์„œ ์„œ๋ฒ„ ์ž๊ฒฉ ์ฆ๋ช…์„ ์ฝ์Šต๋‹ˆ๋‹ค.

๊ทธ๋Ÿฌ๋‚˜ Windows Active Directory์—์„œ๋Š” Linux ์‹œ์Šคํ…œ์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ํ‚คํƒญ ํŒŒ์ผ์„ ๋‚ด๋ณด๋‚ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Ktpass ์ฐธ์กฐ ์„(๋ฅผ) ์ฐธ์กฐํ•˜์„ธ์š”.

Kerberos ์ง€์› ๋ฐ ์ธ์ฆ์„ ์œ„ํ•ด MongoDB ๋ฅผ ๊ตฌ์„ฑํ•˜๋ ค๋ฉด Linux ์—์„œ Kerberos ์ธ์ฆ์„ ์‚ฌ์šฉ MongoDB ์ž์ฒด ๊ด€๋ฆฌํ˜• MongoDB ๊ตฌ์„ฑ ๋ฐ Windows ์—์„œ Kerberos ์ธ์ฆ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ž์ฒด ๊ด€๋ฆฌํ˜• MongoDB ๊ตฌ์„ฑ์„ ์ฐธ์กฐํ•˜์„ธ์š”.

mongod ๋˜๋Š” mongos ์ธ์Šคํ„ด์Šค๋ฅผ ์‹คํ–‰ํ•˜๋Š” ๊ฐ ํ˜ธ์ŠคํŠธ์—๋Š” A ๋ฐ PTR DNS ๋ ˆ์ฝ”๋“œ๊ฐ€ ๋ชจ๋‘ ์žˆ์–ด์•ผ ์ •๋ฐฉํ–ฅ ๋ฐ ์—ญ๋ฐฉํ–ฅ ์กฐํšŒ๋ฅผ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

A ๋ฐ PTR DNS ๋ ˆ์ฝ”๋“œ๊ฐ€ ์—†์œผ๋ฉด ํ˜ธ์ŠคํŠธ๊ฐ€ Kerberos ๋„๋ฉ”์ธ ๋˜๋Š” KDC(ํ‚ค ๋ฐฐํฌ ์„ผํ„ฐ)์˜ ๊ตฌ์„ฑ ์š”์†Œ๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

์ธ์ฆ์— ์„ฑ๊ณตํ•˜๋ ค๋ฉด ๊ฐ mongod ๋ฐ mongos ์ธ์Šคํ„ด์Šค์˜ ์‹œ์Šคํ…œ ์‹œ๊ฐ„์ด Kerberos ์ธํ”„๋ผ์— ์žˆ๋Š” ๋‹ค๋ฅธ ํ˜ธ์ŠคํŠธ์˜ ์‹œ์Šคํ…œ ์‹œ๊ฐ„์—์„œ 5๋ถ„ ์ด๋‚ด์—ฌ์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๋‹ค์Œ MongoDB ๋“œ๋ผ์ด๋ฒ„๋Š” Kerberos ์ธ์ฆ์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.

MongoDB ๋Š” ๋‹ค๋ฅธ ์ธ์ฆ ๋ฉ”์ปค๋‹ˆ์ฆ˜๊ณผ ํ•จ๊ป˜ Kerberos ์ธ์ฆ ์„ ์‚ฌ์šฉํ•˜๋„๋ก ์ง€์›ํ•˜์ง€๋งŒ, ๋‹ค๋ฅธ ๋ฉ”์ปค๋‹ˆ์ฆ˜์€ ํ•„์š”ํ•œ ๊ฒฝ์šฐ์—๋งŒ ์ถ”๊ฐ€ํ•˜์„ธ์š”. ์ž์„ธํ•œ ๋‚ด์šฉ์€ Linux ์—์„œ Kerberos ์ธ์ฆ์„ ์‚ฌ์šฉ MongoDB ์ž์ฒด ๊ด€๋ฆฌํ˜• MongoDB ๊ตฌ์„ฑ ๋ฐ Windows ์—์„œ Kerberos ์ธ์ฆ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ž์ฒด ๊ด€๋ฆฌํ˜• MongoDB ๊ตฌ์„ฑ์˜ Incorporate Additional Authentication Mechanisms ์„น์…˜์„ ์ฐธ์กฐํ•˜์„ธ์š”.

mongokerberos ํ”„๋กœ๊ทธ๋žจ์€ MongoDB์™€ ํ•จ๊ป˜ ์‚ฌ์šฉํ•  ํ”Œ๋žซํผ์˜ Kerberos ๊ตฌ์„ฑ์„ ํ™•์ธํ•˜๊ณ  MongoDB ํด๋ผ์ด์–ธํŠธ์˜ Kerberos ์ธ์ฆ์ด ์˜ˆ์ƒ๋Œ€๋กœ ์ž‘๋™ํ•˜๋Š”์ง€ ํ…Œ์ŠคํŠธํ•  ์ˆ˜ ์žˆ๋Š” ํŽธ๋ฆฌํ•œ ๋ฐฉ๋ฒ•์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ mongokerberos ๋ฌธ์„œ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

mongokerberos MongoDB Enterprise์—์„œ๋งŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋Œ์•„๊ฐ€๊ธฐ

์ธ์ฆ