RBAC-ABAC.md
๐กRBAC & ABAC
์์๋ฅผ ํตํด ์ญํ ๊ธฐ๋ฐ ์ ๊ทผ ์ ์ด์ ์์ฑ ๊ธฐ๋ฐ ์ ๊ทผ ์ ์ด๋ฅผ ๋น๊ตํด๋ณด์.
| ๋ชฉํ | ์น๊ฐ๋ฐ ๊ฐ๋ ๋ค์ ๋ํด์ ๊ฐ๋จํ ์์๋ณด์. | | -------- | --------------------------------------- | | ํ์ต๋ด์ฉ | RBAC, ABAC | | ๋์ด๋ | ๐ฅ |
์ํฌ๋ฆฌ ๊ณต๋ถ ๐ ์์ ํ์ธ: RBAC, ABAC
๐ RBAC, Role-based Access Control
์์ด: ์๋ฐฑ์ด๋ผ ์ฝ์
์ญํ Role
์ ๋ฐ๋ผ ์ฌ์ฉ์์๊ฒ ๊ถํ์ ๋ถ์ฌํ๋ ์ ์ ์ธ ์ ๊ทผ ์ ์ด ๋ชจ๋ธ (๋ง์ด ์ฐ์)
1. ๊ฐ๋
| concept | ๊ตฌ๋ถ | ๋ด์ฉ | ์์ | | ---------- | ------ | ------------------------------------- | -------------------- | | User | ์ฌ์ฉ์ | ํ๋ ์ด์์ ์ญํ ์ ๊ฐ์ง ์ ์์ | ์ ์ A, ์ ์ B | | Role | ์ญํ | ์ฌ์ฉ์ ๊ทธ๋ฃน | ๊ด๋ฆฌ์, ๋งค๋์ , ์ฌ์ | | Resource | ์์ | ๋ณดํธํด์ผ ํ๋ ๋ฌผ๋ฆฌ์ ํน์ ๋ ผ๋ฆฌ์ ์์ | ๋ฐ์ดํฐ๋ฒ ์ด์ค, ํ์ผ | | Permission | ๊ถํ | ์์์ ๋ํ ์ ๊ทผ ๊ถํ, ํ์ฉ๋ ๋์ | RWX |
Administrator & User
| Administrator | ๊ด๋ฆฌ์ | ์ฌ์ฉ์์๊ฒ ์ญํ ์ ๋ถ์ฌ, ๊ฐ ์ญํ ์ ํด๋นํ๋ ๊ถํ ํ ๋น | | ------------- | ------ | ---------------------------------------------------- | | User | ์ฌ์ฉ์ | ์ญํ ์ ๊ฐ์ง๋ฉฐ, ์ญํ ์ ๋ฐ๋ผ ์์์ ์ ๊ทผ ๊ถํ์ ๊ฐ์ง |
2. ์์: ์น๊ณผ
- ์ญํ Role
| ์น๊ณผ ์์ฌ | ํ์ ์ง๋ฃ, ์น๋ฃ ๊ธฐ๋ก, ์ฒ๋ฐฉ | | --------- | -------------------------------- | | ๊ธฐ๊ณต์ฌ | ๋ณด์ฒ ๋ฌผ ์ ์ | | ํ์ | ์์ ์ ์ง๋ฃ ๊ธฐ๋ก, ์์ฝ ์ ๋ณด ํ์ธ |
- ์์ Resource
| ํ์ DB | ๊ฐ๋ณ ํ์์ ์ ๋ณด, ์น๋ฃ ๊ธฐ๋ก | | -------------- | ----------------------------- | | ์ง๋ฃ DB | ์น๋ฃ ๋ฐ ์ง๋ฃ ๊ธฐ๋ก | | ์๋ฃ ๋ณด์ฒ ๋ฌผ DB | ๋ณด์ฒ ๋ฌผ ์๋ขฐ ์ํ ๋ฐ ์ฃผ๋ฌธ ์ ๋ณด |
- ๊ถํ Permission
| | ํ์ | ์ง๋ฃ | ๋ณด์ฒ ๋ฌผ | | -------------- | ------------ | ------------ | ------------ | | ์น๊ณผ ์์ฌ ์ญํ | O | O | O | | ๊ธฐ๊ณต์ฌ ์ญํ | X | X | O | | ํ์ ์ญํ | O(๋ณธ์ธ ๊ธฐ๋ก) | O(๋ณธ์ธ ๊ธฐ๋ก) | O(๋ณธ์ธ ๊ธฐ๋ก) |
3. ๊ตฌํ
์ฌ์ฉ์ ์ธํฐํ์ด์ค(UI)๋ฅผ ๊ฐ๋ฐํ๊ณ , ์ฌ์ฉ์์
์ญํ Role
๊ณผ๊ถํ Permission
์ ๋ฐ๋ผ ๋ค๋ฅธ ํ๋ฉด๊ณผ ๊ธฐ๋ฅ์ด ๋ณด์ด๋๋ก ๊ตฌํ
- ๋ณด์์ ๊ณ ๋ คํ์ฌ ์ฌ์ฉ์ ์ญํ ๊ณผ ๊ถํ์ ๋ฐ๋ฅธ ์ก์ธ์ค ์ ์ด๋ฅผ ๊ตฌํ
| ๊ตฌ๋ถ | ๊ตฌํ | ์์ | | ------------------------- | --------------------------------------------------- | -------------------------------------------- | | ๋ก๊ทธ์ธ | ์ฌ์ฉ์ ๋ก๊ทธ์ธ | user๋ role์ ๊ฐ์ง | | ๋์๋ณด๋ | ๋ก๊ทธ์ธ์ ์ฑ๊ณตํ ์ฌ์ฉ์์ ์ญํ ์ ๋ฐ๋ผ, ๋์๋ณด๋ ์ ๊ทผ | ๊ด๋ฆฌ์๋ ๋ชจ๋ ์์๊ณผ ๊ธฐ๋ฅ ์ฌ์ฉ์ง์์ ํ์ํ ์ ๋ณด๋ง ํ์ธ | | ๋ฉ๋ด | ๋ก๊ทธ์ธ์ ์ฑ๊ณตํ ์ฌ์ฉ์์ ์ญํ ์ ๋ฐ๋ผ, ๋ฉ๋ด ํ์ธ | ์ง์์ ๊ด๋ฆฌ์ ๋ฉ๋ด๋ฅผ ๋ณผ ์ ์์ | | ๋ฒํผ | ๋ก๊ทธ์ธ์ ์ฑ๊ณตํ ์ฌ์ฉ์์ ์ญํ ์ ๋ฐ๋ผ, ๋ฒํผ ํ์ฑํ | ์ง์์ ๊ด๋ฆฌ์ permission์ ๋ฒํผ์ ๋ณผ ์ ์์ |
๐ ABAC, Attribute-based Access Control
์์ฑ Attribute
์ ๋ฐ๋ผ ์ ๊ทผ ๊ถํ์ ์ค์ ํ๋ ๋์ ์ธ ์ ๊ทผ ์ ์ด ๋ชจ๋ธ(์ ์ฐํจ)
1. ๊ฐ๋
| concept | ๊ตฌ๋ถ | ๋ด์ฉ | ์์ | | ---------- | ---- | --------------------------------- | --------------------------- | | Attributes | ์์ฑ | ์ฌ์ฉ์ ์์ฑ, ์์ ์์ฑ, ํ๊ฒฝ ์์ฑ | ์ฌ์ฉ์ ์์ฑ: ๋ถ์, ๋ณด์๋ ๋ฒจ |
์์ ์์ฑ: ์์น, ๋ฏผ๊ฐ๋, ์์ ๊ถ ํ๊ฒฝ ์์ฑ: ์๊ฐ, ๋คํธ์ํฌ ์กฐ๊ฑด | | Policies | ์ ์ฑ | ์์ฑ๊ฐ์ ๊ธฐ๋ฐํ์ฌ ์ก์ธ์ค ์ ์ด ๊ฒฐ์ | ์์ฑ ์กฐํฉ + ๊ถํ ํ ๋น | | Access Request | ์ก์ธ์ค ์์ฒญ | ์์์ ์ ๊ทผ ์ ๋ฐ์ํ๋ ์์ฒญ | ์์ฑ ํ๊ฐ ํ, ABAC ์ ์ฑ ์ ๋ฐ๋ผ ์ก์ธ์ค ๊ฒฐ์ |
2. ์์: ์น๊ณผ
| ์์ Resource | ์์ ์ค๋ช | Ownership | ์์ ๊ถ ์ค๋ช | | -------------- | -------------------------------------------------- | --------- | ------------------------------------------------------------------- | | ์น๊ณผ ๊ธฐ๋ก DB | ํ์์ ์น๋ฃ ๊ธฐ๋ก๊ณผ ์ง๋ฃ ์ ๋ณด DB | ์น๊ณผ | ์น๊ณผ๊ฐ ์์ ํ๊ณ ๊ด๋ฆฌ | | ์์ฝ ์์คํ | ํ์์ ์ง๋ฃ ์์ฝ๊ณผ ๊ด๋ จ๋ ์ ๋ณด๋ฅผ ์ฒ๋ฆฌํ๋ ์์คํ | ์น๊ณผ | ์น๊ณผ๊ฐ ์์ ํ๊ณ ๊ด๋ฆฌ | | ํ์ ๊ฐ์ธ ์ ๋ณด | ๊ฐ๋ณ ํ์์ ๊ฐ์ธ ์ ๋ณด์ ์ฐ๋ฝ์ฒ ๋ฑ ๊ฐ์ธ ์ ๋ณด | ํ์ | ํด๋น ํ์ ์์ ๊ถ: ํ์๋ ์์ ์ ๊ฐ์ธ ์ ๋ณด๋ฅผ ๊ด๋ฆฌํ๊ณ ์ ๊ทผํ ์ ์์ | | ์๋ฃ ๋ณด์ฒ ๋ฌผ DB | ๋ณด์ฒ ๋ฌผ ์ ์๊ณผ ๊ด๋ จ๋ ์ ๋ณด๋ฅผ ๋ด๊ณ ์๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค | ์น๊ณผ | ์น๊ณผ๊ฐ ๋ณด์ฒ ๋ฌผ ์ ์์ ๊ด๋ จ๋ ์์์ ์์ : ์ด์ ๋ํ ์ ๊ทผ ๊ถํ์ ๋ถ์ฌ |
3. ๊ตฌํ
ABAC๋ ๋ค์ํ
์์ฑ Attribute
์ ํ์ฉํ์ฌ๋์ ์ธ ์ก์ธ์ค Access
๋ฅผ ๊ตฌํํ ์ ์์ต๋๋ค.
- ์์
- A Clinic์ ํน์ ํ์์ ๊ฐ์ธ ์ ๋ณด๋ฅผ ์์ ํ ๋, ํ์ ์ญํ ์ ์ฌ์ฉ์์ด๋ฉฐ ์์ ๊ถ์ ๊ฐ์ง ๋ณธ์ธ์ด๋ผ๋ฉด ์์์ ์ ๊ทผ
- ๋ณด์ฒ ๋ฌผ ์๋ขฐ๊ฐ ์๋ฃ ์ํ๊ฐ ๋์์ ๋, ํ์ ์ญํ ์ ์ฌ์ฉ์๊ฐ ์์ ์ด ์์ ๊ถ์ ๊ฐ์ง ๋ณด์ฒ ๋ฌผ์ ํ์ธ ๊ฐ๋ฅ
- ํน์ ์๊ฐ์ ์๋ฃ ๋ณด์ฒ ๋ฌผ์ ์๋ขฐ ์ํ์ ์ ๊ทผ ๊ฐ๋ฅ ๋ฑ