Kubernetes Role-Based Access Control(RBAC)
Udhibiti wa Upatikanaji kulingana na Majukumu (RBAC)
Kubernetes ina moduli ya idhini inayoitwa Udhibiti wa Upatikanaji kulingana na Majukumu (RBAC) ambayo husaidia kuweka ruhusa za matumizi kwa seva ya API.
Modeli ya ruhusa ya RBAC imejengwa kutoka kwa sehemu tatu tofauti:
Jukumu/Jukumu la Kikundi – Ruhusa halisi. Ina mipangilio inayowakilisha seti ya ruhusa. Kila maelekezo yanajumuisha rasilimali na vitendo. Kitendo ni hatua itakayotekelezwa kwenye rasilimali.
Mada (Mtumiaji, Kikundi au Akaunti ya Huduma) – Kitu ambacho kitapokea ruhusa.
Kufunga Jukumu/Jukumu la Kikundi – Uhusiano kati ya Jukumu/Jukumu la Kikundi na mada.
Tofauti kati ya "Jukumu" na "Jukumu la Kikundi" ni mahali tu ambapo jukumu litatumika – "Jukumu" litatoa upatikanaji kwa eneo moja tu maalum, wakati "Jukumu la Kikundi" linaweza kutumika katika eneo zote kwenye kikundi. Zaidi ya hayo, Jukumu la Kikundi pia linaweza kutoa upatikanaji kwa:
rasilimali za kikundi (kama vile nodi).
vituo vya bila rasilimali (kama vile /healthz).
rasilimali za eneo (kama vile Pods), katika maeneo yote.
Kuanzia Kubernetes 1.6 na kuendelea, sera za RBAC zimekuwa zimeamilishwa kwa chaguo-msingi. Lakini ili kuwezesha RBAC unaweza kutumia kitu kama:
Mifano
Katika kiolezo cha Role au ClusterRole utahitaji kuonyesha jina la jukumu, eneo (katika majukumu) na kisha apiGroups, rasilimali na maneno ya jukumu:
apiGroups ni safu inayojumuisha nafasi tofauti za API ambazo sheria hii inatumika. Kwa mfano, ufafanuzi wa Pod hutumia apiVersion: v1. Inaweza kuwa na thamani kama rbac.authorization.k8s.io au [*].
resources ni safu inayotaja rasilimali zipi sheria hii inatumika. Unaweza kupata rasilimali zote kwa:
kubectl api-resources --namespaced=true
maneno ni safu inayojumuisha maneno yanayoruhusiwa. Kitenzi katika Kubernetes hufafanua aina ya hatua unayohitaji kutumia kwa rasilimali. Kwa mfano, kitenzi cha orodha hutumiwa dhidi ya makusanyo wakati "pata" hutumiwa dhidi ya rasilimali moja.
Maneno ya Sheria
(Maelezo haya yalichukuliwa kutoka nyaraka)
Kitenzi cha HTTP | kitenzi cha ombi |
---|---|
POST | umba |
GET, HEAD | pata (kwa rasilimali binafsi), orodha (kwa makusanyo, ikiwa ni pamoja na maudhui kamili ya kitu), angalia (kwa kufuatilia rasilimali binafsi au mkusanyiko wa rasilimali) |
PUT | sasisha |
PATCH | kipande |
DELETE | futa (kwa rasilimali binafsi), futa mkusanyo (kwa makusanyo) |
Kubernetes mara kwa mara huchunguza idhini kwa ruhusa za ziada kwa kutumia maneno maalum. Kwa mfano:
kitenzi cha
tumia
kwenye rasilimali zapodsecuritypolicies
katika kikundi cha API chasera
.maneno ya
unganisha
nakukuza
kwenye rasilimali zaroles
naclusterroles
katika kikundi cha API charbac.authorization.k8s.io
.kitenzi cha
jifanya
kwenyewatumiaji
,makundi
, naakaunti za huduma
katika kikundi cha msingi cha API, nauserextras
katika kikundi cha API chauthibitishaji.k8s.io
.
Unaweza kupata maneno yote ambayo kila rasilimali inasaidia kwa kutekeleza kubectl api-resources --sort-by name -o wide
Mifano
Kwa mfano, unaweza kutumia ClusterRole kuruhusu mtumiaji fulani kuendesha:
RoleBinding na ClusterRoleBinding
Kutoka kwa nyaraka: RoleBinding inatoa ruhusa zilizoelezwa katika jukumu kwa mtumiaji au kikundi cha watumiaji. Inashikilia orodha ya wahusika (watumiaji, vikundi, au akaunti za huduma), na kumbukumbu ya jukumu linalopewa. RoleBinding inatoa ruhusa ndani ya namespace maalum wakati ClusterRoleBinding inatoa ufikiaji huo kwa kiwango cha kikundi.
Ruhusa zinaongezeka kwa hivyo ikiwa una jukumu la kikundi na "orodha" na "futa" siri unaweza kuiongeza na Jukumu na "pata". Kwa hivyo kuwa mwangalifu na jaribu mara kwa mara majukumu na ruhusa zako na taja ni NINI KURUHUSIWA, kwa sababu kila kitu ni KUKATALIWA kwa chaguo-msingi.
Kutambua RBAC
Matumizi ya Majukumu/ Majukumu ya Kikundi kwa Ajili ya Kuongeza Mamlaka
pageAbusing Roles/ClusterRoles in KubernetesLast updated