Kubernetes Role-Based Access Control(RBAC)
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Kubernetes์๋ API ์๋ฒ์ ๋ํ ์ฌ์ฉ ๊ถํ์ ์ค์ ํ๋ ๋ฐ ๋์์ด ๋๋ ์ญํ ๊ธฐ๋ฐ ์ก์ธ์ค ์ ์ด(RBAC)๋ผ๋ ๊ถํ ๋ชจ๋์ด ์์ต๋๋ค.
RBAC์ ๊ถํ ๋ชจ๋ธ์ ์ธ ๊ฐ์ง ๊ฐ๋ณ ๋ถ๋ถ์ผ๋ก ๊ตฌ์ฑ๋ฉ๋๋ค:
์ฃผ์ฒด (์ฌ์ฉ์, ๊ทธ๋ฃน ๋๋ ์๋น์ค ๊ณ์ ) โ ๊ถํ์ ๋ฐ์ ๊ฐ์ฒด์ ๋๋ค.
RoleBinding\ClusterRoleBinding โ Role\ClusterRole๊ณผ ์ฃผ์ฒด ๊ฐ์ ์ฐ๊ฒฐ์ ๋๋ค.
โRolesโ์ โClusterRolesโ์ ์ฐจ์ด๋ ์ญํ ์ด ์ ์ฉ๋ ์์น์ ์์ต๋๋ค โ โRoleโ์ ํ๋์ ํน์ ๋ค์์คํ์ด์ค์๋ง ์ก์ธ์ค๋ฅผ ๋ถ์ฌํ๋ ๋ฐ๋ฉด, โClusterRoleโ์ ํด๋ฌ์คํฐ์ ๋ชจ๋ ๋ค์์คํ์ด์ค์์ ์ฌ์ฉํ ์ ์์ต๋๋ค. ๋ํ, ClusterRoles๋ ๋ค์์ ๋ํ ์ก์ธ์ค๋ ๋ถ์ฌํ ์ ์์ต๋๋ค:
ํด๋ฌ์คํฐ ๋ฒ์ ๋ฆฌ์์ค(์: ๋ ธ๋).
๋น๋ฆฌ์์ค ์๋ํฌ์ธํธ(์: /healthz).
๋ชจ๋ ๋ค์์คํ์ด์ค์ ๊ฑธ์ณ ์๋ ๋ค์์คํ์ด์ค ๋ฆฌ์์ค(์: Pods).
Kubernetes 1.6๋ถํฐ RBAC ์ ์ฑ ์ ๊ธฐ๋ณธ์ ์ผ๋ก ํ์ฑํ๋์ด ์์ต๋๋ค. ๊ทธ๋ฌ๋ RBAC๋ฅผ ํ์ฑํํ๋ ค๋ฉด ๋ค์๊ณผ ๊ฐ์ ๋ฐฉ๋ฒ์ ์ฌ์ฉํ ์ ์์ต๋๋ค:
Role ๋๋ ClusterRole์ ํ ํ๋ฆฟ์์๋ ์ญํ ์ ์ด๋ฆ, ๋ค์์คํ์ด์ค(์ญํ ์ ๊ฒฝ์ฐ) ๋ฐ apiGroups, resources ๋ฐ verbs๋ฅผ ์ง์ ํด์ผ ํฉ๋๋ค:
apiGroups๋ ์ด ๊ท์น์ด ์ ์ฉ๋๋ ๋ค์ํ API ๋ค์์คํ์ด์ค๋ฅผ ํฌํจํ๋ ๋ฐฐ์ด์ ๋๋ค. ์๋ฅผ ๋ค์ด, Pod ์ ์๋ apiVersion: v1์ ์ฌ์ฉํฉ๋๋ค. rbac.authorization.k8s.io ๋๋ [*]์ ๊ฐ์ ๊ฐ์ ๊ฐ์ง ์ ์์ต๋๋ค.
resources๋ ์ด ๊ท์น์ด ์ ์ฉ๋๋ ๋ฆฌ์์ค๋ฅผ ์ ์ํ๋ ๋ฐฐ์ด์
๋๋ค. ๋ชจ๋ ๋ฆฌ์์ค๋ ๋ค์ ๋ช
๋ น์ด๋ก ์ฐพ์ ์ ์์ต๋๋ค: kubectl api-resources --namespaced=true
verbs๋ ํ์ฉ๋ ๋์ฌ๋ฅผ ํฌํจํ๋ ๋ฐฐ์ด์ ๋๋ค. Kubernetes์ ๋์ฌ๋ ๋ฆฌ์์ค์ ์ ์ฉํด์ผ ํ๋ ์์ ์ ์ ํ์ ์ ์ํฉ๋๋ค. ์๋ฅผ ๋ค์ด, list ๋์ฌ๋ ์ปฌ๋ ์ ์ ๋ํด ์ฌ์ฉ๋๋ฉฐ "get"์ ๋จ์ผ ๋ฆฌ์์ค์ ๋ํด ์ฌ์ฉ๋ฉ๋๋ค.
(์ด ์ ๋ณด๋ ๋ฌธ์ ์์ ๊ฐ์ ธ์์ต๋๋ค)
Kubernetes๋ ๋๋๋ก ์ ๋ฌธ ๋์ฌ๋ฅผ ์ฌ์ฉํ์ฌ ์ถ๊ฐ ๊ถํ์ ๋ํ ์น์ธ์ ํ์ธํฉ๋๋ค. ์๋ฅผ ๋ค์ด:
policy
API ๊ทธ๋ฃน์ podsecuritypolicies
๋ฆฌ์์ค์ ๋ํ use
๋์ฌ.
rbac.authorization.k8s.io
API ๊ทธ๋ฃน์ roles
๋ฐ clusterroles
๋ฆฌ์์ค์ ๋ํ bind
๋ฐ escalate
๋์ฌ.
์ฝ์ด API ๊ทธ๋ฃน์ users
, groups
, ๋ฐ serviceaccounts
์ ๋ํ impersonate
๋์ฌ, ๊ทธ๋ฆฌ๊ณ authentication.k8s.io
API ๊ทธ๋ฃน์ userextras
.
๊ฐ ๋ฆฌ์์ค๊ฐ ์ง์ํ๋ ๋ชจ๋ ๋์ฌ๋ฅผ ์ฐพ์ผ๋ ค๋ฉด kubectl api-resources --sort-by name -o wide
๋ฅผ ์คํํ์ธ์.
์๋ฅผ ๋ค์ด, ํน์ ์ฌ์ฉ์๊ฐ ๋ค์์ ์คํํ ์ ์๋๋ก ClusterRole์ ์ฌ์ฉํ ์ ์์ต๋๋ค:
๋ฌธ์์์: ์ญํ ๋ฐ์ธ๋ฉ์ ์ญํ ์ ์ ์๋ ๊ถํ์ ์ฌ์ฉ์ ๋๋ ์ฌ์ฉ์ ์งํฉ์ ๋ถ์ฌํฉ๋๋ค. ์ด๋ ์ฃผ์ฒด(์ฌ์ฉ์, ๊ทธ๋ฃน ๋๋ ์๋น์ค ๊ณ์ )์ ๋ชฉ๋ก๊ณผ ๋ถ์ฌ๋๋ ์ญํ ์ ๋ํ ์ฐธ์กฐ๋ฅผ ํฌํจํฉ๋๋ค. RoleBinding์ ํน์ ๋ค์์คํ์ด์ค ๋ด์์ ๊ถํ์ ๋ถ์ฌํ๋ ๋ฐ๋ฉด, ClusterRoleBinding์ ํด๋น ์ ๊ทผ์ ํด๋ฌ์คํฐ ์ ์ฒด์ ๋ถ์ฌํฉ๋๋ค.
๊ถํ์ ๋์ ๋ฉ๋๋ค. ๋ฐ๋ผ์ "list" ๋ฐ "delete" ๋น๋ฐ์ด ์๋ clusterRole์ด ์๋ ๊ฒฝ์ฐ "get"์ด ์๋ Role๊ณผ ํจ๊ป ์ถ๊ฐํ ์ ์์ต๋๋ค. ๋ฐ๋ผ์ ํญ์ ์ญํ ๊ณผ ๊ถํ์ ํ ์คํธํ๊ณ ํ์ฉ๋๋ ๊ฒ์ ๋ช ์ํ์ญ์์ค. ๊ธฐ๋ณธ์ ์ผ๋ก ๋ชจ๋ ๊ฒ์ ๊ฑฐ๋ถ๋ฉ๋๋ค.
HTTP ๋์ฌ | ์์ฒญ ๋์ฌ |
---|---|
AWS ํดํน ๋ฐฐ์ฐ๊ธฐ ๋ฐ ์ฐ์ตํ๊ธฐ:HackTricks Training AWS Red Team Expert (ARTE) GCP ํดํน ๋ฐฐ์ฐ๊ธฐ ๋ฐ ์ฐ์ตํ๊ธฐ: HackTricks Training GCP Red Team Expert (GRTE)
POST
create
GET, HEAD
get (๊ฐ๋ณ ๋ฆฌ์์ค์ ๋ํด), list (์ปฌ๋ ์ ์ ๋ํด, ์ ์ฒด ๊ฐ์ฒด ๋ด์ฉ ํฌํจ), watch (๊ฐ๋ณ ๋ฆฌ์์ค ๋๋ ๋ฆฌ์์ค ์ปฌ๋ ์ ์ ๊ฐ์ํ๊ธฐ ์ํด)
PUT
update
PATCH
patch
DELETE
delete (๊ฐ๋ณ ๋ฆฌ์์ค์ ๋ํด), deletecollection (์ปฌ๋ ์ ์ ๋ํด)