0Pricing
Kubernetes Basics · Lezione

Role-Based Access Control (RBAC)

Gestisca le autorizzazioni degli utenti e degli account di servizio nel cluster utilizzando i ruoli RBAC e i relativi binding.

Role-Based Access Control (RBAC) è una lezione Kubernetes Basics gratuita su CoddyKit. Questa è la lezione 1 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Kubernetes Basics, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Kubernetes Basics include 4 lezioni in totale.

Che cos'è RBAC in Kubernetes?

Benvenuto! In questa lezione approfondiremo il controllo degli accessi basato sui ruoli (RBAC), una funzionalità di sicurezza fondamentale di Kubernetes.

RBAC consente di gestire chi può fare cosa all'interno del cluster. È come un addetto alla sicurezza per le risorse Kubernetes: garantisce che solo gli utenti e le applicazioni autorizzati possano eseguire azioni specifiche.

Perché RBAC è essenziale

Senza RBAC, chiunque abbia accesso al cluster potrebbe potenzialmente eseguire qualsiasi azione, causando rischi per la sicurezza o danni accidentali.

  • Sicurezza: impedisce accessi e operazioni non autorizzati.
  • Conformità: aiuta a soddisfare i requisiti normativi per il controllo degli accessi.
  • Minimo privilegio: garantisce che utenti e applicazioni dispongano solo delle autorizzazioni di cui hanno effettivamente bisogno.

Concetti chiave di RBAC

RBAC in Kubernetes si basa su alcuni componenti fondamentali:

  • Subjects: il "chi" (utenti, account di servizio, gruppi).
  • Roles: il "cosa" (un insieme di autorizzazioni).
  • RoleBindings: il "come" (collega un Role a un Subject).
  • ClusterRoles e ClusterRoleBindings: versioni dei Roles e dei RoleBindings applicate all'intero cluster.

Subjects: utenti e account di servizio

Kubernetes deve sapere chi sta richiedendo un'azione. Questi soggetti sono chiamati Subjects:

  • Utenti: in genere amministratori o sviluppatori. Kubernetes non gestisce direttamente gli utenti, ma si affida all'autenticazione esterna.
  • Account di servizio: oggetti Kubernetes utilizzati dalle applicazioni o dai processi in esecuzione nei pod. Sono fondamentali per la comunicazione tra i pod e il server API.

Definizione delle autorizzazioni con i Roles

Un Role definisce un insieme di autorizzazioni all'interno di uno specifico namespace. Specifica quali azioni (verbi) possono essere eseguite e su quali risorse.

Ad esempio, un Role potrebbe consentire di "ottenere" ed "elencare" i pod nel namespace "default".

Esempio di Role: lettura dei pod

Ecco una definizione YAML per un Role denominato pod-reader. Questo Role concede l'autorizzazione a "get", "list" e "watch" (monitorare) i pod.

Noti apiGroups: [""], che fa riferimento al gruppo API Kubernetes principale.

apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
  name: pod-reader
  namespace: default
rules:
- apiGroups: [""]
  resources: ["pods"]
  verbs: ["get", "list", "watch"]

Concessione delle autorizzazioni con i RoleBindings

Un RoleBinding collega uno specifico Role a uno o più Subjects (utenti, account di servizio o gruppi) all'interno di uno specifico namespace.

È il collegamento che stabilisce: "Questo utente/questa applicazione può eseguire le azioni consentite da questo Role in questo namespace".

Esempio di RoleBinding: concessione dell'accesso

Questo RoleBinding collega il Role pod-reader a un account di servizio denominato my-app-sa nel namespace default. Ora my-app-sa può leggere i pod.

apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
  name: read-pods-binding
  namespace: default
subjects:
- kind: ServiceAccount
  name: my-app-sa # The service account getting permissions
  namespace: default
roleRef:
  kind: Role
  name: pod-reader # The Role being granted
  apiGroup: rbac.authorization.k8s.io

ClusterRoles e ClusterRoleBindings

A volte sono necessarie autorizzazioni applicabili all'intero cluster, non solo a un namespace. È qui che entrano in gioco ClusterRoles e ClusterRoleBindings.

  • ClusterRole: definisce le autorizzazioni per le risorse con ambito cluster (come i nodi e i volumi persistenti) o per le azioni eseguite in tutti i namespace (ad esempio, "elencare tutti i pod").
  • ClusterRoleBinding: collega un ClusterRole ai Subjects, concedendo autorizzazioni a livello di cluster.

Verifica rapida su RBAC

Uno sviluppatore deve distribuire nuove applicazioni esclusivamente nel namespace dev. Quali due risorse RBAC di Kubernetes utilizzerebbe principalmente per concedergli questa specifica autorizzazione?

Riepilogo: fondamenti di RBAC

Ottimo lavoro! Ha appreso i concetti fondamentali di RBAC in Kubernetes:

  • RBAC controlla chi può interagire con le risorse del cluster.
  • I Roles definiscono le autorizzazioni all'interno di un namespace.
  • I RoleBindings collegano i Roles ai Subjects (utenti, account di servizio).
  • I ClusterRoles e i ClusterRoleBindings gestiscono le autorizzazioni a livello di cluster.

Padroneggiare RBAC è fondamentale per proteggere l'ambiente Kubernetes.

Domande Frequenti

La lezione «Role-Based Access Control (RBAC)» è gratuita?

Sì — il testo completo di «Role-Based Access Control (RBAC)» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Kubernetes Basics, passa a CoddyKit PRO. Il corso Kubernetes Basics include 4 lezioni in totale.

Cosa imparerò in «Role-Based Access Control (RBAC)»?

Gestisca le autorizzazioni degli utenti e degli account di servizio nel cluster utilizzando i ruoli RBAC e i relativi binding. Eserciti Kubernetes Basics con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.

Ho bisogno di esperienza per iniziare Kubernetes Basics?

Non è richiesta alcuna esperienza precedente. Kubernetes Basics su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 1 di 4.

Quanto tempo richiede la lezione «Role-Based Access Control (RBAC)»?

La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.

Posso scrivere ed eseguire codice in questa lezione Kubernetes Basics?

Sì. Ogni lezione Kubernetes Basics include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.

Tutte le lezioni di questo corso

  1. Role-Based Access Control (RBAC)
  2. Network Policy per l'isolamento
  3. Standard di sicurezza dei Pod
  4. Account di servizio e identità dei workload
← Torna a Kubernetes Basics