์ ๊ทผ ์ ์ด ํ๋ฌ๊ทธ์ธ๋ณ ์คํค๋ง ์์์ Access Control Policy ์น์ ์ ์ฐธ์กฐํ์ญ์์ค. ์ด ์น์ ์์๋ ๊ธฐ๋ณธ ํ๋ฌ๊ทธ์ธ์ ๊ตฌ๋ ๋ฐฉ์์ ๊ฐ๊ด์ ์ผ๋ก ์ค๋ช ํฉ๋๋ค.
ํ๋กํ ์ฝ์ ํ์ฅ์ฑ๊ณผ ์ ๊ทผ์ ์ด ์ ์ฑ ์ ์ ํฉ์ฑ์ ์ํด์, ์ ๊ทผ ์ ์ด ์ ์ฑ ์ ํ๋กํ ์ฝ๋ณ ์๋ํฌ์ธํธ๊ฐ ์๋๋ผ ์ก์ ๊ณผ ์ด๋ฒคํธ๋ฅผ ์ฃผ์ฒด๋ก ์ ์ฉ๋ฉ๋๋ค.
์ ๊ทผ ์ ์ด ์ ์ฑ ์ ํ๊ฐ๋ API Gateway์ ๋ฉ๋ชจ๋ฆฌ์ LRU ๋ฐฉ์์ผ๋ก ์บ์๋๋ฉฐ ํ ์์ฒญ์์ ์ค๋ณต ์ํ๋์ง ์์ต๋๋ค. ์บ์ ํค๋ฅผ ์์ฑ ํ ๋ ์์ฒญ์ ์ ํํ ๊ตฌ๋ถํ๊ธฐ ์ํด์ ์ปจํ ์คํธ(์ธ์ฆ ์ ๋ณด) ๋ฐ ํธ์ถ ํ์ด๋ก๋ ๋ฑ์ ์ ๋ณด๊ฐ ๋ฐ์๋ฉ๋๋ค.
์ ์ฉ๋๋ ํ๋ฌ๊ทธ์ธ์ ์์๋ ์ ํจํฉ๋๋ค. ์ฐ์ ํ๋ ํ๋ฌ๊ทธ์ธ์์ ์คํจ ํ ๊ฒฝ์ฐ ๋ค์ ํ๋ฌ๊ทธ์ธ์ ์ ์ฑ
์ ํ๊ฐ๋์ง ์์ต๋๋ค. ์ ๊ทผ ์ ์ด ํ๋ฌ๊ทธ์ธ์ ๊ธฐ๋ณธ ์ต์
์์ OAuth2 Scope ํ๋ฌ๊ทธ์ธ(scopes)์ด FBAC ํ๋ฌ๊ทธ์ธ(filter)๋ณด๋ค ์ฐ์ ํฉ๋๋ค.
OAuth2 Scope ํ๋ฌ๊ทธ์ธ์ ๊ฐ ์ ์ฑ
์ scopes์ ๋์ด๋ ์ค์ฝํ๋ฅผ context.scopes๊ฐ ํ๋ ์ด์์ ์ค์ฝํ๋ฅผ ํฌํจํ๋ ๊ฒฝ์ฐ ์ ๊ทผ์ ํ์ฉํฉ๋๋ค.
FBAC ํ๋ฌ๊ทธ์ธ์ ๊ฐ ์ ์ฑ
์ filter ํญ๋ชฉ์ ๋งตํ๋ Inline JavaScript Function String์ VM์์ ์คํํ๊ณ ๊ทธ Boolean ๊ฐ์ผ๋ก ์ ๊ทผ ์ ์ด ์ฌ๋ถ๋ฅผ ํ๋จํฉ๋๋ค. ํ๊ฐ์ค ์๋ฌ๊ฐ ๋ฐ์ํ๊ฑฐ๋ Boolean ๊ฐ์ด ๋ฆฌํด๋์ง ์๋ ๊ฒฝ์ฐ, API Gateway์์ ์ถ์ฒ ๋
ธ๋๋ก ์ ๋ฌ๋๋ฉฐ ์ ๊ทผ์ด ๊ฑฐ๋ถ๋ฉ๋๋ค.
๋๋ฒ๊น
์ค์ Inline JavaScript Function String์์ console ๊ฐ์ฒด๋ฅผ ์ฌ์ฉํด ๋ฉ์ธ์ง๋ฅผ ์ถ๋ ฅํ๋ ๊ฒฝ์ฐ, ๊ทธ ๋ฉ์ธ์ง๋ console ๊ฐ์ฒด์ ๋ฐ์ธ๋ฉ๋ report ์ปค๋ฅํฐ๊ฐ ์ถ์ฒ ๋
ธ๋๋ก ์ ๋ฌํฉ๋๋ค.