arrow-left

All pages
gitbookPowered by GitBook
1 of 1

Loading...

Policy Plugin

hashtag
2. Access Control Policy

์ ‘๊ทผ ์ œ์–ด ํ”Œ๋Ÿฌ๊ทธ์ธ๋ณ„ ์Šคํ‚ค๋งˆ ์–‘์‹์€ Access Control Policy ์„น์…˜์„ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค. ์ด ์„น์…˜์—์„œ๋Š” ๊ธฐ๋ณธ ํ”Œ๋Ÿฌ๊ทธ์ธ์˜ ๊ตฌ๋™ ๋ฐฉ์‹์„ ๊ฐœ๊ด„์ ์œผ๋กœ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.

ํ”„๋กœํ† ์ฝœ์˜ ํ™•์žฅ์„ฑ๊ณผ ์ ‘๊ทผ์ œ์–ด ์ •์ฑ…์˜ ์ •ํ•ฉ์„ฑ์„ ์œ„ํ•ด์„œ, ์ ‘๊ทผ ์ œ์–ด ์ •์ฑ…์€ ํ”„๋กœํ† ์ฝœ๋ณ„ ์—”๋“œํฌ์ธํŠธ๊ฐ€ ์•„๋‹ˆ๋ผ ์•ก์…˜๊ณผ ์ด๋ฒคํŠธ๋ฅผ ์ฃผ์ฒด๋กœ ์ ์šฉ๋ฉ๋‹ˆ๋‹ค.

์ ‘๊ทผ ์ œ์–ด ์ •์ฑ…์˜ ํ‰๊ฐ€๋Š” API Gateway์˜ ๋ฉ”๋ชจ๋ฆฌ์— LRU ๋ฐฉ์‹์œผ๋กœ ์บ์‹œ๋˜๋ฉฐ ํ•œ ์š”์ฒญ์—์„œ ์ค‘๋ณต ์ˆ˜ํ–‰๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์บ์‹œ ํ‚ค๋ฅผ ์ƒ์„ฑ ํ•  ๋•Œ ์š”์ฒญ์„ ์ •ํ™•ํžˆ ๊ตฌ๋ถ„ํ•˜๊ธฐ ์œ„ํ•ด์„œ ์ปจํ…์ŠคํŠธ(์ธ์ฆ ์ •๋ณด) ๋ฐ ํ˜ธ์ถœ ํŽ˜์ด๋กœ๋“œ ๋“ฑ์˜ ์ •๋ณด๊ฐ€ ๋ฐ˜์˜๋ฉ๋‹ˆ๋‹ค.

์ ์šฉ๋˜๋Š” ํ”Œ๋Ÿฌ๊ทธ์ธ์˜ ์ˆœ์„œ๋Š” ์œ ํšจํ•ฉ๋‹ˆ๋‹ค. ์šฐ์„ ํ•˜๋Š” ํ”Œ๋Ÿฌ๊ทธ์ธ์—์„œ ์‹คํŒจ ํ•  ๊ฒฝ์šฐ ๋‹ค์Œ ํ”Œ๋Ÿฌ๊ทธ์ธ์˜ ์ •์ฑ…์€ ํ‰๊ฐ€๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ ‘๊ทผ ์ œ์–ด ํ”Œ๋Ÿฌ๊ทธ์ธ์˜ ๊ธฐ๋ณธ ์˜ต์…˜์—์„œ OAuth2 Scope ํ”Œ๋Ÿฌ๊ทธ์ธ(scopes)์ด FBAC ํ”Œ๋Ÿฌ๊ทธ์ธ(filter)๋ณด๋‹ค ์šฐ์„ ํ•ฉ๋‹ˆ๋‹ค.

hashtag
A. OAuth2 Scope

OAuth2 Scope ํ”Œ๋Ÿฌ๊ทธ์ธ์€ ๊ฐ ์ •์ฑ…์˜ scopes์— ๋‚˜์—ด๋œ ์Šค์ฝ”ํ”„๋ฅผ context.scopes๊ฐ€ ํ•˜๋‚˜ ์ด์ƒ์˜ ์Šค์ฝ”ํ”„๋ฅผ ํฌํ•จํ•˜๋Š” ๊ฒฝ์šฐ ์ ‘๊ทผ์„ ํ—ˆ์šฉํ•ฉ๋‹ˆ๋‹ค.

hashtag
B. FBAC

FBAC ํ”Œ๋Ÿฌ๊ทธ์ธ์€ ๊ฐ ์ •์ฑ…์˜ filter ํ•ญ๋ชฉ์— ๋งตํ•‘๋œ Inline JavaScript Function String์„ VM์—์„œ ์‹คํ–‰ํ•˜๊ณ  ๊ทธ Boolean ๊ฐ’์œผ๋กœ ์ ‘๊ทผ ์ œ์–ด ์—ฌ๋ถ€๋ฅผ ํŒ๋‹จํ•ฉ๋‹ˆ๋‹ค. ํ‰๊ฐ€์ค‘ ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•˜๊ฑฐ๋‚˜ Boolean ๊ฐ’์ด ๋ฆฌํ„ด๋˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ, API Gateway์—์„œ ์ถœ์ฒ˜ ๋…ธ๋“œ๋กœ ์ „๋‹ฌ๋˜๋ฉฐ ์ ‘๊ทผ์ด ๊ฑฐ๋ถ€๋ฉ๋‹ˆ๋‹ค.

๋””๋ฒ„๊น… ์ค‘์— Inline JavaScript Function String์—์„œ console ๊ฐ์ฒด๋ฅผ ์‚ฌ์šฉํ•ด ๋ฉ”์„ธ์ง€๋ฅผ ์ถœ๋ ฅํ•˜๋Š” ๊ฒฝ์šฐ, ๊ทธ ๋ฉ”์„ธ์ง€๋Š” console ๊ฐ์ฒด์— ๋ฐ”์ธ๋”ฉ๋œ report ์ปค๋„ฅํ„ฐ๊ฐ€ ์ถœ์ฒ˜ ๋…ธ๋“œ๋กœ ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค.