RBAC ja palvelutilit
Klusterin käytön rajoittaminen
RBAC ja palvelutilit on ilmainen Cyber Security Academy-oppitunti CoddyKitissä. Tämä on oppitunti 2/4. Voit lukea tästä oppimispolusta kokonaan mitkä tahansa 3 oppituntia ilmaiseksi — sen jälkeen CoddyKit PRO avaa kaikki oppitunnit sekä käytännön harjoittelun sisäänrakennetulla koodieditorilla ja ympäri vuorokauden toimivalla tekoälytuutorilla. Oppitunti kuuluu Cyber Security Academy-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. Cyber Security Academy-kurssilla on yhteensä 4 oppituntia.
RBAC hallitsee kaikkea
Roolipohjainen käyttöoikeuksien hallinta (RBAC) määrittää, mitkä identiteetit voivat suorittaa mitä toimia mihin resursseihin klusterissa. Jokainen API-kutsu valtuutetaan RBAC:n perusteella. Virheellisesti määritetty RBAC on yleisin klusterin sisäisen oikeuksien eskaloinnin syy.
- Subjektit: käyttäjät, ryhmät ja palvelutilit.
- Roolit yhdistävät verbit resursseihin.
- Sidonnat yhdistävät subjektit rooleihin.
Role ja ClusterRole
Käyttöoikeuksilla on kaksi laajuutta.
- Role + RoleBinding: nimiavaruuteen rajatut käyttöoikeudet.
- ClusterRole + ClusterRoleBinding: koko klusterin kattavat käyttöoikeudet.
ClusterRoleBinding-arvon liittäminen kohteeseen cluster-admin antaa täydellisen hallinnan. Sen myöntäminen palvelutilille on yleinen ja vaarallinen virhe.
Palvelutilien tokenit
Jokainen podi suoritetaan palvelutilin nimissä ja siihen liitetään oletusarvoisesti palvelutilin token. Token on haltijatunniste, joka sisältää tilin RBAC-oikeudet. Jos podi vaarantuu, myös token vaarantuu.
Nykyaikaiset klusterit myöntävät lyhytikäisiä, kohdeyleisöön sidottuja projected-tokeneita, mutta vanhoja pitkäikäisiä Secret-tokeneita on edelleen käytössä.
# Inspect which service account a pod uses
kubectl get pod web -o jsonpath='{.spec.serviceAccountName}'Käyttöoikeuksien luettelointi
Kun token on saatu haltuun, ensimmäinen vaihe on selvittää, mitä sillä voi tehdä. Kubernetes tarjoaa tätä varten itsearvioinnin API:n.
# What can this token do?
kubectl auth can-i --list
# Specific checks
kubectl auth can-i create pods
kubectl auth can-i create clusterrolebindingsVaaralliset käyttöoikeusyhdistelmät
Tietyt verbit ovat oikeuksien eskaloinnin peruskeinoja jopa ilman cluster-admin-oikeuksia.
create pods: ajoittakaa etuoikeutettu tai hostPath-podi, jotta voitte poistua kontista.create pods/exec: suorittakaa komentoja olemassa olevissa podeissa.get/list secrets: lukekaa tunnistetietoja koko klusterin laajuudelta.create rolebindings/clusterrolebindings: sitokaa itsenne ylläpitäjän rooliin.escalate/bind-verbit: myöntäkää oikeuksia, joita teillä ei ole.- impersonate: toimikaa toisena, oikeuksiltaan etuoikeutettuna subjektina.
Eskalointi podeja luomalla
Jos palvelutili voi luoda podeja, se voi usein ottaa solmun hallintaansa. Hyökkääjä ajoittaa podin, joka liittää isännän tiedostojärjestelmän tai suoritetaan etuoikeutettuna, ja lukee sitten solmun tunnistetiedot tai poistuu kontista.
# Pod spec snippet that mounts the host root
# volumes: hostPath path: / ; container mounts it at /host
kubectl apply -f evil-pod.yaml
kubectl exec -it evil -- chroot /host bashEskalointi sidonnalla
Jos voitte luoda (cluster)rolebinding-sidontoja, voitte ehkä sitoa palvelutilinne suoraan cluster-admin-rooliin. Kubernetes suojaa tätä bind- ja escalate-verbeillä, mutta virheellisesti määritetyt roolit sallivat sen joskus.
# Bind a service account to cluster-admin (if permitted)
kubectl create clusterrolebinding pwn \
--clusterrole=cluster-admin \
--serviceaccount=default:webImpersonate-oikeuden väärinkäyttö
impersonate-verbi sallii subjektin toimia minkä tahansa käyttäjän, ryhmän tai palvelutilin nimissä. Laajat impersonate-oikeudet omaavalla principalilla on käytännössä kaikki klusterin käyttöoikeudet.
# Act as a privileged user via impersonation
kubectl get secrets --as=admin-user --as-group=system:mastersRBAC:n auditointi
Puolustajien tulee tarkistaa RBAC jatkuvasti riskialttiiden myöntöjen varalta.
- Etsikää subjektit, jotka on sidottu cluster-admin-rooliin.
- Merkitkää jokerimerkkiä käyttäviä verbejä tai resursseja sisältävät myönnöt (
*). - Havaitkaa salaisuuksien luku- ja podien luontioikeudet muilla kuin ylläpitäjätileillä.
# Tools to audit RBAC
kubectl-who-can create pods
rbac-tool analysis
rakkess --as=system:serviceaccount:default:webPalvelutilien koventaminen
Soveltakaa identiteetteihin vähimpien oikeuksien periaatetta.
- Asettakaa
automountServiceAccountToken: false, kun podi ei tarvitse API-käyttöoikeutta. - Antakaa jokaiselle työkuormalle oma, mahdollisimman suppeasti rajattu palvelutili.
- Välttäkää
default-palvelutiliä oikeissa työkuormissa. - Käyttäkää lyhytikäisiä, audience-määritteellä varustettuja projected-tokeneita; kierrättäkää ja sitokaa ne.
- Älkää koskaan sitoko työkuormia cluster-admin-rooliin.
RBAC:n eettinen testaaminen
RBAC:ta arvioitaessa suosikaa tuhoamattomia tarkistuksia (auth can-i, dry-run) sen sijaan, että loisititte cluster-admin-sidontoja tuotantoon. Jos eskalointi on välttämätöntä todistaa, rajatkaa testi testinimiavaruuteen ja poistakaa kaikki luomanne sidonnat ja podit.
Raportoikaa täsmälliset roolit ja sidonnat, jotka mahdollistivat eskaloinnin, jotta niitä voidaan rajoittaa.
Pikatarkistus
Varmistakaa RBAC-osaamisenne.
Kertaus
Opitte, miten RBAC ja palvelutilit hallitsevat klusterin käyttöä ja muodostavat siihen kohdistuvia uhkia.
- RBAC sitoo subjektit resursseihin kohdistuviin verbeihin; cluster-admin antaa täydellisen hallinnan.
- Podit liittävät SA-tokenit;
auth can-ipaljastaa niiden käyttöoikeuksien laajuuden. - create-pods, sidonnat, secret-read ja impersonate ovat eskaloinnin peruskeinoja.
- Vähimpien oikeuksien mukaiset tilit ja käytöstä poistettu automaattinen liittäminen koventavat klusteria.
Seuraavaksi: podien suojaus ja verkkokäytännöt.
Opi Cyber Security Academy tekoälytuutorin avulla — ilmaiseksi
Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.
- Kurssit
- 76
- Oppitunnit
- 303
Usein kysytyt kysymykset
Onko oppitunti ”RBAC ja palvelutilit” ilmainen?
Kyllä — voit lukea täällä verkossa kokonaan ilmaiseksi mitkä tahansa Cyber Security Academy-oppimispolun 3 oppituntia, myös oppitunnin “RBAC ja palvelutilit”. Sen jälkeen CoddyKit PRO avaa kaikki oppitunnit sekä interaktiiviset harjoitukset sisäänrakennetulla koodieditorilla ja ympäri vuorokauden toimivalla tekoälytuutorilla. Cyber Security Academy-kurssilla on yhteensä 4 oppituntia.
Mitä opin oppitunnilla ”RBAC ja palvelutilit”?
Klusterin käytön rajoittaminen Harjoittelet Cyber Security Academy-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.
Tarvitsenko kokemusta aloittaakseni Cyber Security Academy-opiskelun?
Aiempi kokemus ei ole tarpeen. CoddyKitin Cyber Security Academy-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 2/4.
Kuinka kauan ”RBAC ja palvelutilit”-oppitunnin suorittaminen kestää?
Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.
Voinko kirjoittaa ja suorittaa koodia tällä Cyber Security Academy-oppitunnilla?
Kyllä. Jokainen Cyber Security Academy-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.
Kaikki tämän kurssin oppitunnit
- Kubernetesin uhkamalli
- RBAC ja palvelutilit
- Podien tietoturva ja verkkokäytännöt
- Toimitusketjun ja salaisuuksien suojaaminen