Kubernetes Role-Based Access Control(RBAC)
Role-Based Access Control (RBAC)
рдХреБрдмрд░рдиреЗрдЯреАрдЬрд╝ рдореЗрдВ рдПрдХ рдЕрдзрд┐рдХрд╛рд░ рдореЙрдбреНрдпреВрд▓ рд╣реИ рдЬрд┐рд╕рдХрд╛ рдирд╛рдо рд╣реИ Role-Based Access Control (RBAC) рдЬреЛ API рд╕рд░реНрд╡рд░ рдХреЛ рдЙрдкрдпреЛрдЧ рдЕрдиреБрдорддрд┐рдпреЛрдВ рдХреЛ рд╕реЗрдЯ рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░рддрд╛ рд╣реИред
RBAC рдХреА рдЕрдиреБрдорддрд┐ рдореЙрдбрд▓ рддреАрди рд╡реНрдпрдХреНрддрд┐рдЧрдд рд╣рд┐рд╕реНрд╕реЛрдВ рд╕реЗ рдмрдирд╛ рд╣реИ:
Role\ClusterRole ┬нтАУ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЕрдиреБрдорддрд┐ред рдЗрд╕рдореЗрдВ рдирд┐рдпрдо рд╣реЛрддреЗ рд╣реИрдВ рдЬреЛ рдПрдХ рд╕реЗрдЯ рдХреА рдЕрдиреБрдорддрд┐рдпреЛрдВ рдХреЛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рддреЗ рд╣реИрдВред рдкреНрд░рддреНрдпреЗрдХ рдирд┐рдпрдо рдореЗрдВ рд╕рдВрд╕рд╛рдзрди рдФрд░ рдХреНрд░рд┐рдпрд╛рдПрдБ рд╣реЛрддреА рд╣реИрдВред рдХреНрд░рд┐рдпрд╛ рд╡рд╣ рдХрд╛рд░реНрд░рд╡рд╛рдИ рд╣реИ рдЬреЛ рд╕рдВрд╕рд╛рдзрди рдкрд░ рд▓рд╛рдЧреВ рд╣реЛрдЧреАред
рд╡рд┐рд╖рдп (рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛, рд╕рдореВрд╣ рдпрд╛ рд╕реЗрд╡рд╛ рдЦрд╛рддрд╛) тАУ рд╡рд╣ рд╡рд╕реНрддреБ рдЬреЛ рдЕрдиреБрдорддрд┐рдпрд╛рдБ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдЧреАред
RoleBinding\ClusterRoleBinding тАУ Role\ClusterRole рдФрд░ рд╡рд┐рд╖рдп рдХреЗ рдмреАрдЪ рдХрдиреЗрдХреНрд╢рдиред
тАЬRolesтАЭ рдФрд░ тАЬClusterRolesтАЭ рдХреЗ рдмреАрдЪ рдЕрдВрддрд░ рдХреЗрд╡рд▓ рдпрд╣ рд╣реИ рдХрд┐ рднреВрдорд┐рдХрд╛ рдХрд╣рд╛рдБ рд▓рд╛рдЧреВ рдХреА рдЬрд╛рдПрдЧреА тАУ тАЬRoleтАЭ рдХреЗрд╡рд▓ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдиреЗрдорд╕реНрдкреЗрд╕ рдХреЛ рдкрд╣реБрдВрдЪ рджреЗрдЧреА, рдЬрдмрдХрд┐ тАЬClusterRoleтАЭ рдХреНрд▓рд╕реНрдЯрд░ рдореЗрдВ рд╕рднреА рдиреЗрдорд╕реНрдкреЗрд╕ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдЕрддрд┐рд░рд┐рдХреНрдд, ClusterRoles рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
рдХреНрд▓рд╕реНрдЯрд░-рд╕реНрдХреЛрдкреНрдб рд╕рдВрд╕рд╛рдзрди (рдЬреИрд╕реЗ рдиреЛрдбреНрд╕)ред
рдЧреИрд░-рд╕рдВрд╕рд╛рдзрди рдПрдВрдбрдкреЙрдЗрдВрдЯреНрд╕ (рдЬреИрд╕реЗ /healthz)ред
рдиреЗрдорд╕реНрдкреЗрд╕реНрдб рд╕рдВрд╕рд╛рдзрди (рдЬреИрд╕реЗ рдкреЙрдбреНрд╕), рд╕рднреА рдиреЗрдорд╕реНрдкреЗрд╕ рдХреЗ рдЕрдзрд┐рдХрд╛рд░ рдореЗрдВред
рдХреБрдмрд░рдиреЗрдЯреАрдЬрд╝ 1.6 рдХреЗ рдмрд╛рдж, RBAC рдиреАрддрд┐рдпрд╛рдБ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рд╕рдХреНрд╖рдо рд╣реИрдВред рд▓реЗрдХрд┐рди RBAC рдХреЛ рд╕рдХреНрд╖рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдк рдХреБрдЫ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
рдирдореВрдиреЗ
Role рдпрд╛ ClusterRole рдХреЗ рдЯреЗрдореНрдкрд▓реЗрдЯ рдореЗрдВ рдЖрдкрдХреЛ рд░реЛрд▓ рдХрд╛ рдирд╛рдо, рдиреЗрдорд╕реНрдкреЗрд╕ (рд░реЛрд▓ рдореЗрдВ) рдФрд░ рдлрд┐рд░ рд░реЛрд▓ рдХреЗ apiGroups, рд╕рдВрд╕рд╛рдзрди рдФрд░ рдХреНрд░рд┐рдпрд╛рдПрдБ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА:
apiGroups рдПрдХ рдРрд░реЗ рд╣реИ рдЬреЛ рдЗрд╕ рдирд┐рдпрдо рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рд╡рд┐рднрд┐рдиреНрди API рдиреЗрдорд╕реНрдкреЗрд╕ рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд░рддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рдкреЙрдб рдкрд░рд┐рднрд╛рд╖рдг apiVersion: v1 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рдЗрд╕рдореЗрдВ rbac.authorization.k8s.io рдпрд╛ [*] рдЬреИрд╕реЗ рдорд╛рди рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред
рд╕рдВрд╕рд╛рдзрди рдПрдХ рдРрд░реЗ рд╣реИ рдЬреЛ рдпрд╣ рдирд┐рдпрдо рдХрд┐рд╕ рд╕рдВрд╕рд╛рдзрди рдкрд░ рд▓рд╛рдЧреВ рд╣реЛрддрд╛ рд╣реИ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИред рдЖрдк рд╕рднреА рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЛ рдЦреЛрдЬ рд╕рдХрддреЗ рд╣реИрдВ:
kubectl api-resources --namespaced=true
рдХреНрд░рд┐рдпрд╛рдПрдБ рдПрдХ рдРрд░реЗ рд╣реИ рдЬреЛ рдЕрдиреБрдордд рдХреНрд░рд┐рдпрд╛рдПрдБ рд╢рд╛рдорд┐рд▓ рдХрд░рддрд╛ рд╣реИред Kubernetes рдореЗрдВ рдХреНрд░рд┐рдпрд╛ рд╕рдВрд╕рд╛рдзрди рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХрд╛ рдкреНрд░рдХрд╛рд░ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддреА рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╕реВрдЪреА рдХреНрд░рд┐рдпрд╛ рд╕рдВрдЧреНрд░рд╣реЛрдВ рдХреЗ рдЦрд┐рд▓рд╛рдл рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрдмрдХрд┐ "рдкреНрд░рд╛рдкреНрдд" рдПрдХ рдПрдХрд▓ рд╕рдВрд╕рд╛рдзрди рдХреЗ рдЦрд┐рд▓рд╛рдл рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдирд┐рдпрдо рдХреНрд░рд┐рдпрд╛рдПрдБ
(рдпрд╣ рдЬрд╛рдирдХрд╛рд░реА рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рд╕реЗ рд▓реА рдЧрдИ рдереА)
HTTP рдХреНрд░рд┐рдпрд╛ | рдЕрдиреБрд░реЛрдз рдХреНрд░рд┐рдпрд╛ |
---|---|
POST | рдмрдирд╛рдПрдБ |
GET, HEAD | рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ (рд╡реНрдпрдХреНрддрд┐рдЧрдд рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЗ рд▓рд┐рдП), рд╕реВрдЪреА (рд╕рдВрдЧреНрд░рд╣реЛрдВ рдХреЗ рд▓рд┐рдП, рдкреВрд░реЗ рд╡рд╕реНрддреБ рд╕рд╛рдордЧреНрд░реА рдХреЗ рд╕рд╛рде), рджреЗрдЦреЗрдВ (рдПрдХ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд╕рдВрд╕рд╛рдзрди рдпрд╛ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЗ рд╕рдВрдЧреНрд░рд╣ рдХреЗ рд▓рд┐рдП рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП) |
PUT | рдЕрдкрдбреЗрдЯ рдХрд░реЗрдВ |
PATCH | рдкреИрдЪ рдХрд░реЗрдВ |
DELETE | рд╣рдЯрд╛рдПрдБ (рд╡реНрдпрдХреНрддрд┐рдЧрдд рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЗ рд▓рд┐рдП), рд╣рдЯрд╛рдПрдБ (рд╕рдВрдЧреНрд░рд╣реЛрдВ рдХреЗ рд▓рд┐рдП) |
рдХрднреА-рдХрднреА Kubernetes рд╡рд┐рд╢реЗрд╖рдЬреНрдЮ рдХреНрд░рд┐рдпрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЕрддрд┐рд░рд┐рдХреНрдд рдЕрдиреБрдорддрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХрд╛рд░реАрдХрд░рдг рдХреА рдЬрд╛рдВрдЪ рдХрд░рддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:
policy
API рд╕рдореВрд╣ рдореЗрдВpodsecuritypolicies
рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдкрд░use
рдХреНрд░рд┐рдпрд╛редrbac.authorization.k8s.io
API рд╕рдореВрд╣ рдореЗрдВroles
рдФрд░clusterroles
рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдкрд░bind
рдФрд░escalate
рдХреНрд░рд┐рдпрд╛рдПрдБредauthentication.k8s.io
API рд╕рдореВрд╣ рдореЗрдВusers
,groups
, рдФрд░serviceaccounts
рдкрд░impersonate
рдХреНрд░рд┐рдпрд╛, рдФрд░authentication.k8s.io
API рд╕рдореВрд╣ рдореЗрдВuserextras
ред
рдЖрдк рдкреНрд░рддреНрдпреЗрдХ рд╕рдВрд╕рд╛рдзрди рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рд╡рд╛рд▓реА рд╕рднреА рдХреНрд░рд┐рдпрд╛рдПрдБ рдЦреЛрдЬ рд╕рдХрддреЗ рд╣реИрдВ kubectl api-resources --sort-by name -o wide
рдЙрджрд╛рд╣рд░рдг
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдЖрдк рдПрдХ ClusterRole рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рддрд╛рдХрд┐ рдХрд┐рд╕реА рд╡рд┐рд╢реЗрд╖ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЛ рдЪрд▓рд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреА рдЬрд╛ рд╕рдХреЗ:
RoleBinding рдФрд░ ClusterRoleBinding
рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рд╕реЗ: рдПрдХ role binding рдПрдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдпрд╛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕рдореВрд╣ рдХреЛ рдПрдХ рднреВрдорд┐рдХрд╛ рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдЕрдиреБрдорддрд┐рдпрд╛рдБ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред рдЗрд╕рдореЗрдВ рд╡рд┐рд╖рдпреЛрдВ (рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛, рд╕рдореВрд╣, рдпрд╛ рд╕реЗрд╡рд╛ рдЦрд╛рддреЗ) рдХреА рд╕реВрдЪреА рд╣реЛрддреА рд╣реИ, рдФрд░ рджреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рднреВрдорд┐рдХрд╛ рдХрд╛ рд╕рдВрджрд░реНрдн рд╣реЛрддрд╛ рд╣реИред рдПрдХ RoleBinding рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдиреЗрдорд╕реНрдкреЗрд╕ рдХреЗ рднреАрддрд░ рдЕрдиреБрдорддрд┐рдпрд╛рдБ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ рдЬрдмрдХрд┐ рдПрдХ ClusterRoleBinding рдЙрд╕ рдкрд╣реБрдВрдЪ рдХреЛ рдХреНрд▓рд╕реНрдЯрд░-рд╕реНрддрд░ рдкрд░ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред
рдЕрдиреБрдорддрд┐рдпрд╛рдБ рдЬреЛрдбрд╝рдиреЗ рд╡рд╛рд▓реА рд╣реЛрддреА рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдЕрдЧрд░ рдЖрдкрдХреЗ рдкрд╛рд╕ "рд╕реВрдЪреА" рдФрд░ "рд╣рдЯрд╛рдПрдВ" рд░рд╣рд╕реНрдп рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ clusterRole рд╣реИрдВ рддреЛ рдЖрдк рдЗрд╕реЗ "рдкреНрд░рд╛рдкреНрдд" рд░рд╣рд┐рдд Role рдХреЗ рд╕рд╛рде рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕рд▓рд┐рдП рд╕рд╛рд╡рдзрд╛рди рд░рд╣реЗрдВ рдФрд░ рд╣рдореЗрд╢рд╛ рдЕрдкрдиреА рднреВрдорд┐рдХрд╛рдУрдВ рдФрд░ рдЕрдиреБрдорддрд┐рдпреЛрдВ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░реЗрдВ рдФрд░ рд╡рд┐рд╢реЗрд╖ рдХрд░реЗрдВ рдХрд┐ рдХреНрдпрд╛ рдЕрдиреБрдордд рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд╕рднреА рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдирд┐рд╖реЗрдзрд┐рдд рд╣реИред
RBAC рдХреА рдЧрдгрдирд╛
рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░ рдмрдврд╝рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рднреВрдорд┐рдХрд╛/рдХреНрд▓рд╕реНрдЯрд░ рднреВрдорд┐рдХрд╛рдПрдБ рджреБрд░реБрдкрдпреЛрдЧ рдХрд░реЗрдВ
Abusing Roles/ClusterRoles in KubernetesLast updated