Condividi tramite


Controllo degli accessi in base al ruolo kubernetes nel dispositivo AZURE Stack Edge Pro GPU

SI APPLICA A:Yes for Pro GPU SKUAzure Stack Edge Pro - GPUYes for Pro 2 SKUAzure Stack Edge Pro 2Yes for Pro R SKUAzure Stack Edge Pro RYes for Mini R SKUAzure Stack Edge Mini R

Nel dispositivo Azure Stack Edge Pro, quando si configura il ruolo di calcolo, viene creato un cluster Kubernetes. È possibile usare il controllo degli accessi in base al ruolo di Kubernetes per limitare l'accesso alle risorse del cluster nel dispositivo.

Questo articolo offre una panoramica del sistema di controllo degli accessi in base al ruolo di Kubernetes fornito da Kubernetes e come viene implementato il controllo degli accessi in base al ruolo di Kubernetes nel dispositivo Azure Stack Edge Pro.

Controllo degli accessi in base al ruolo di Kubernetes

Il controllo degli accessi in base al ruolo di Kubernetes consente di assegnare utenti o gruppi di utenti, l'autorizzazione per eseguire operazioni come creare o modificare risorse o visualizzare i log dall'esecuzione dei carichi di lavoro dell'applicazione. Queste autorizzazioni possono essere assegnate a un singolo spazio dei nomi o concesse nell'intero cluster.

Quando si configura il cluster Kubernetes, viene creato un singolo utente corrispondente a questo cluster e viene chiamato utente amministratore del cluster. Un kubeconfig file è associato all'utente amministratore del cluster. Il kubeconfig file è un file di testo che contiene tutte le informazioni di configurazione necessarie per connettersi al cluster per autenticare l'utente.

Tipi di spazi dei nomi

Le risorse Kubernetes, ad esempio pod e distribuzioni, vengono raggruppate logicamente in uno spazio dei nomi. Questi raggruppamenti consentono di dividere logicamente un cluster Kubernetes e limitare l'accesso per creare, visualizzare o gestire le risorse. Gli utenti possono interagire solo con le risorse all'interno degli spazi dei nomi assegnati.

Gli spazi dei nomi sono destinati all'uso in ambienti con molti utenti distribuiti in più team o progetti. Per altre informazioni, vedere Spazi dei nomi di Kubernetes.

Il dispositivo Azure Stack Edge Pro include gli spazi dei nomi seguenti:

  • Spazio dei nomi di sistema: questo spazio dei nomi è la posizione in cui sono presenti risorse principali, ad esempio funzionalità di rete come DNS e proxy o il dashboard di Kubernetes. In genere non si distribuiscono le proprie applicazioni in questo spazio dei nomi. Usare questo spazio dei nomi per eseguire il debug di eventuali problemi del cluster Kubernetes.

    Nel dispositivo sono presenti più spazi dei nomi di sistema e i nomi corrispondenti a questi spazi dei nomi di sistema sono riservati. Di seguito è riportato un elenco degli spazi dei nomi di sistema riservati:

    • kube-system
    • metallb-system
    • dbe-namespace
    • default
    • kubernetes-dashboard
    • kube-node-lease
    • kube-public

    Assicurarsi di non usare nomi riservati per gli spazi dei nomi utente creati.

  • Spazio dei nomi utente: si tratta degli spazi dei nomi che è possibile creare tramite kubectl o tramite l'interfaccia di PowerShell del dispositivo per distribuire localmente le applicazioni.

  • Spazio dei nomi IoT Edge: connettersi a questo iotedge spazio dei nomi per gestire le applicazioni distribuite tramite IoT Edge.

  • Spazio dei nomi di Azure Arc: connettersi a questo azure-arc spazio dei nomi per gestire le applicazioni distribuite tramite Azure Arc. Con Azure Arc è anche possibile distribuire applicazioni in altri spazi dei nomi utente.

Spazi dei nomi e utenti

Nel mondo reale è importante dividere il cluster in più spazi dei nomi.

  • Più utenti: se si hanno più utenti, più spazi dei nomi consentiranno agli utenti di distribuire le applicazioni e i servizi nei rispettivi spazi dei nomi specifici in isolamento uno dall'altro.
  • Utente singolo: anche se è presente un singolo utente, più spazi dei nomi consentono all'utente di eseguire più versioni delle applicazioni nello stesso cluster Kubernetes.

Roles e RoleBindings

Kubernetes ha il concetto di ruolo e associazione di ruoli che consente di concedere autorizzazioni a livello di utente o risorse a livello di spazio dei nomi e a livello di cluster.

  • Ruoli: è possibile definire le autorizzazioni per gli utenti come ruolo e quindi usare Ruoli per concedere le autorizzazioni all'interno di uno spazio dei nomi.
  • RoleBindings: dopo aver definito i ruoli, è possibile usare RoleBindings per assegnare ruoli per uno spazio dei nomi specificato.

Questo approccio consente di separare logicamente un singolo cluster Kubernetes, con gli utenti in grado di accedere solo alle risorse dell'applicazione nello spazio dei nomi assegnato.

Controllo degli accessi in base al ruolo di Kubernetes in Azure Stack Edge Pro

Nell'implementazione corrente del controllo degli accessi in base al ruolo di Kubernetes, Azure Stack Edge Pro consente di eseguire le azioni seguenti da uno spazio di esecuzione di PowerShell limitato:

  • Creare spazi dei nomi.
  • Creare altri utenti.
  • Concedere all'amministratore l'accesso agli spazi dei nomi creati. Tenere presente che non si avrà accesso al ruolo di amministratore del cluster o a una visualizzazione delle risorse a livello di cluster.
  • Ottenere kubeconfig un file con informazioni per accedere al cluster Kubernetes.

Il dispositivo Azure Stack Edge Pro include più spazi dei nomi di sistema ed è possibile creare spazi dei nomi utente con kubeconfig file per accedere a tali spazi dei nomi. Gli utenti hanno il controllo completo su questi spazi dei nomi e possono creare o modificare gli utenti o concedere l'accesso agli utenti. Solo l'amministratore del cluster ha accesso completo agli spazi dei nomi di sistema e alle risorse a livello di cluster. Un oggetto aseuser ha accesso in sola lettura agli spazi dei nomi di sistema.

Di seguito è riportato un diagramma che illustra l'implementazione del controllo degli accessi in base al ruolo di Kubernetes nel dispositivo Azure Stack Edge Pro.

Kubernetes RBAC on Azure Stack Edge Pro device

In questo diagramma Alice, Bob e Chuck hanno accesso solo agli spazi dei nomi utente assegnati, che in questo caso sono ns1rispettivamente , ns2e ns3 . All'interno di questi spazi dei nomi, hanno accesso amministratore. L'amministratore del cluster ha invece accesso amministratore agli spazi dei nomi di sistema e alle risorse a livello di cluster.

Gli utenti possono creare spazi dei nomi e utenti, assegnare utenti agli spazi dei nomi o scaricare kubeconfig file. Per istruzioni dettagliate, vedere Accedere al cluster Kubernetes tramite kuebctl in Azure Stack Edge Pro.

Quando si lavora con spazi dei nomi e utenti nei dispositivi Azure Stack Edge Pro, si applicano le avvertenze seguenti:

  • Non è consentito eseguire alcuna operazione, ad esempio creare utenti, concedere o revocare l'accesso allo spazio dei nomi all'utente, per uno qualsiasi degli spazi dei nomi di sistema. Esempi di spazi dei nomi di sistema includono kube-system, metallb-system, kubernetes-dashboard, default, kube-node-lease, kube-public. Gli spazi dei nomi di sistema includono anche gli spazi dei nomi riservati per i tipi di distribuzione, ad iotedge esempio (spazio dei nomi IoT Edge) e azure-arc (spazio dei nomi Di Azure Arc).
  • È possibile creare spazi dei nomi utente e all'interno di tali spazi dei nomi creare altri utenti e concedere o revocare l'accesso allo spazio dei nomi a tali utenti.
  • Non è consentito creare spazi dei nomi con nomi identici a quelli per qualsiasi spazio dei nomi di sistema. I nomi per gli spazi dei nomi di sistema sono riservati.
  • Non è consentito creare spazi dei nomi utente con nomi già in uso da altri spazi dei nomi utente. Ad esempio, se è stato creato un oggetto test-ns , non è possibile creare un altro test-ns spazio dei nomi.
  • Non è consentito creare utenti con nomi già riservati. Ad esempio, aseuser è un utente riservato e non può essere usato.

Passaggi successivi

Per informazioni su come creare un utente, creare uno spazio dei nomi e concedere all'utente l'accesso allo spazio dei nomi, vedere Accedere a un cluster Kubernetes tramite kubectl.