Rollebasert tilgangskontroll (RBAC)
Konfigurer RBAC for å administrere tillatelser for brukere og tjenestekontoer på en sikker måte i Kubernetes-klyngen.
Rollebasert tilgangskontroll (RBAC) er en gratis leksjon i Docker og Kubernetes for utviklere på CoddyKit. Dette er leksjon 1 av 4. Du kan lese hele leksjonen gratis nedenfor – og deretter øve praktisk i nettleseren med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i Docker og Kubernetes for utviklere, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i Docker og Kubernetes for utviklere inneholder totalt 4 leksjoner.
Hva er Kubernetes RBAC?
Velkommen til rollebasert tilgangskontroll (RBAC)! I Kubernetes er RBAC en metode for å regulere tilgang til datamaskin- eller nettverksressurser basert på rollene til enkeltbrukere i organisasjonen Deres.
Tenk på det som sikkerhetsvakten for klyngen: Den avgjør hvem som kan gjøre hva.
Hvorfor RBAC er avgjørende
RBAC er avgjørende for klyngesikkerhet og driftsintegritet. Uten RBAC kan enhver bruker eller prosess med tilgang potensielt utføre enhver handling, noe som kan føre til sikkerhetssårbarheter eller utilsiktede feilkonfigurasjoner.
- Sikkerhet: Hindrer uautorisert tilgang.
- Minste privilegium: Sørger for at brukere og applikasjoner bare har nødvendige tillatelser.
- Samsvar: Bidrar til å oppfylle regulatoriske krav til tilgangskontroll.
RBAC-kjernekonsepter: Subjekter
I RBAC er et Subject «hvem» som utfører en handling. Kubernetes identifiserer tre typer subjekter:
- Brukere: Menneskelige brukere, ofte administrert eksternt.
- Service Accounts: Identiteter for prosesser som kjører i Pod-er. Disse er innebygd i Kubernetes.
- Grupper: Samlinger av brukere eller Service Accounts.
Vi fokuserer på Service Accounts, siden de står sentralt i applikasjonssikkerhet i Kubernetes.
RBAC-kjernekonsepter: Roller
En Role definerer «hvilke» handlinger som kan utføres. Roller er alltid namespace-avgrenset, noe som betyr at tillatelsene de gir, bare gjelder i et bestemt namespace.
En Role inneholder rules, som er sett med tillatelser. Hver regel angir:
apiGroups: API-gruppen ressursen tilhører, for eksempel""for core ogappsfor deployments.resources: De spesifikke ressurs-typene, for eksempelpodsogdeployments.verbs: Handlingene som er tillatt, for eksempelget,list,createogdelete.
RBAC-kjernekonsepter: ClusterRoles
I likhet med Roles definerer en ClusterRole også «hvilke» handlinger som kan utføres, men den er klyngeavgrenset. Det betyr at tillatelsene gjelder i hele klyngen.
ClusterRoles brukes til:
- Å gi tilgang til klyngeavgrensede ressurser, for eksempel noder.
- Å gi tilgang til ressurser i alle namespaces.
- Å gi tilgang til endepunkter som ikke er ressurser, for eksempel
/healthz.
RBAC-kjernekonsepter: RoleBindings
En RoleBinding beskriver «hvordan» tillatelser gis. Den kobler et Subject (User, ServiceAccount eller Group) til en Role.
I likhet med Roles er RoleBindings namespace-avgrenset. Det betyr at bindingen gir Subject tillatelsene som er definert i Role, men bare i det aktuelle namespacet.
RBAC-kjernekonsepter: ClusterRoleBindings
En ClusterRoleBinding kobler et Subject til en ClusterRole. Siden ClusterRoles er klyngeavgrensede, gir en ClusterRoleBinding tillatelser i hele klyngen.
Bruk ClusterRoleBindings med forsiktighet, siden de gir omfattende tilgang. De brukes vanligvis for klyngeadministratorer eller komponenter på systemnivå.
Eksempel: Opprette en Service Account
La oss opprette en Service Account med navnet my-app-sa i namespacet default. Denne Service Account-en skal være identiteten til en fremtidig applikasjonspod.
Kjør denne kommandoen i terminalen:
kubectl create serviceaccount my-app-sa -n defaultEksempel: Definere en Pod Reader-rolle
La oss nå definere en Role kalt pod-reader i namespacet default. Denne rollen gir subjekter tillatelse til å get, list og watch pod-er.
Lagre denne YAML-filen som pod-reader-role.yaml, og ta den i bruk med kubectl apply -f pod-reader-role.yaml:
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
name: pod-reader
namespace: default
rules:
- apiGroups: [""] # Core API group
resources: ["pods", "pods/log"]
verbs: ["get", "list", "watch"]Eksempel: Knytte rollen
Til slutt oppretter vi en RoleBinding med navnet read-pods-binding som kobler Service Account-en my-app-sa til rollen pod-reader i namespacet default.
Lagre denne YAML-filen som pod-reader-binding.yaml, og ta den i bruk:
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
name: read-pods-binding
namespace: default
subjects:
- kind: ServiceAccount
name: my-app-sa
namespace: default
roleRef:
kind: Role
name: pod-reader
apiGroup: rbac.authorization.k8s.ioKjapp kontroll: RBAC-ressurser
Hvilken Kubernetes-ressurs brukes til å gi en Service Account tillatelser i hele klyngen?
RBAC: Viktige punkter
De har lært det grunnleggende om Kubernetes RBAC!
- Subjekter: Hvem som handler (Users, Service Accounts og Groups).
- Roles/ClusterRoles: Hvilke handlinger som er tillatt (namespace-avgrenset kontra klyngeavgrenset).
- RoleBindings/ClusterRoleBindings: Hvordan subjekter kobles til tillatelser (namespace-avgrenset kontra klyngeavgrenset).
Det er avgjørende å beherske RBAC for å sikre Kubernetes-applikasjonene og infrastrukturen Deres. Fortsett å øve med ulike sett med tillatelser!
Lær deg Docker og Kubernetes for utviklere med en AI-veileder – gratis
Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.
- Kurs
- 12
- Leksjoner
- 48
Ofte stilte spørsmål
Er leksjonen «Rollebasert tilgangskontroll (RBAC)» gratis?
Ja – hele teksten i «Rollebasert tilgangskontroll (RBAC)» er gratis å lese her på nettet. For å øve interaktivt med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt, og for å låse opp resten av Docker og Kubernetes for utviklere-kurset, kan du oppgradere til CoddyKit PRO. Kurset i Docker og Kubernetes for utviklere inneholder totalt 4 leksjoner.
Hva lærer jeg i «Rollebasert tilgangskontroll (RBAC)»?
Konfigurer RBAC for å administrere tillatelser for brukere og tjenestekontoer på en sikker måte i Kubernetes-klyngen. Du øver på Docker og Kubernetes for utviklere med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.
Trenger jeg erfaring for å begynne med Docker og Kubernetes for utviklere?
Ingen tidligere erfaring er nødvendig. Docker og Kubernetes for utviklere på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 1 av 4.
Hvor lang tid tar leksjonen «Rollebasert tilgangskontroll (RBAC)»?
De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.
Kan jeg skrive og kjøre kode i denne Docker og Kubernetes for utviklere-leksjonen?
Ja. Alle Docker og Kubernetes for utviklere-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.
Alle leksjonene i dette kurset
- Rollebasert tilgangskontroll (RBAC)
- Pod-sikkerhet og image-skanning
- Sikre Kubernetes-nettverkstrafikk
- Sikker håndtering av Secrets med eksterne Secret Stores