Controllo degli accessi in base al ruolo nei cluster Nexus Kubernetes dell'operatore di Azure
Questo articolo fornisce una guida completa su come gestire l'accesso ai cluster Nexus Kubernetes usando Microsoft Entra ID. In particolare, ci concentriamo sul controllo degli accessi in base al ruolo, che consente di concedere autorizzazioni agli utenti in base ai propri ruoli o responsabilità all'interno dell'organizzazione.
Operazioni preliminari
- Per iniziare, creare un gruppo Microsoft Entra per gli amministratori del cluster e assegnarvi membri. Microsoft Entra ID consente di concedere l'accesso al gruppo nel suo complesso, anziché gestire le autorizzazioni per ogni utente singolarmente.
- Usare l'ID gruppo creato come valore per "adminGroupObjectIds" durante la creazione del cluster Nexus Kubernetes per assicurarsi che i membri del gruppo ottengano le autorizzazioni per gestire il cluster. Per istruzioni su come creare e accedere al cluster Nexus Kubernetes, vedere la Guida introduttiva .
Accesso amministratore al cluster
Nexus crea un'associazione di ruoli del cluster Kubernetes con il ruolo cluster-admin
Kubernetes predefinito e i gruppi di Microsoft Entra specificati come adminGroupObjectIds
. Gli amministratori del cluster hanno accesso completo al cluster e possono eseguire tutte le operazioni nel cluster. Gli amministratori del cluster possono anche concedere l'accesso ad altri utenti assegnandoli al gruppo Microsoft Entra appropriato.
Nota
Quando si crea un cluster Kubernetes Nexus, Nexus crea automaticamente un gruppo di risorse gestito dedicato all'archiviazione delle risorse del cluster, all'interno di questo gruppo, viene stabilita la risorsa cluster connessa Arc.
Per accedere al cluster, è necessario configurare la connessione del cluster kubeconfig
. Dopo aver eseguito l'accesso all'interfaccia della riga di comando di Azure con l'entità Microsoft Entra pertinente, è possibile ottenere il kubeconfig
necessario per comunicare con il cluster da qualsiasi posizione, anche all'esterno del firewall che lo circonda.
Impostare le variabili
CLUSTER_NAME
,RESOURCE_GROUP
eSUBSCRIPTION_ID
.CLUSTER_NAME="myNexusK8sCluster" RESOURCE_GROUP="myResourceGroup" SUBSCRIPTION_ID=<set the correct subscription_id>
Eseguire query sul gruppo di risorse gestite con
az
e archiviare inMANAGED_RESOURCE_GROUP
az account set -s $SUBSCRIPTION_ID MANAGED_RESOURCE_GROUP=$(az networkcloud kubernetescluster show -n $CLUSTER_NAME -g $RESOURCE_GROUP --output tsv --query managedResourceGroupConfiguration.name)
Il comando seguente avvia un proxy connectedk8s che consente di connettersi al server API Kubernetes per il cluster Kubernetes Nexus specificato.
az connectedk8s proxy -n $CLUSTER_NAME -g $MANAGED_RESOURCE_GROUP &
Usare
kubectl
per inviare richieste al cluster:kubectl get pods -A
Verrà visualizzata una risposta dal cluster contenente l'elenco di tutti i nodi.
Nota
Se viene visualizzato il messaggio di errore "Failed to post access token to client proxyFailed to connect to MSI", potrebbe essere necessario eseguire un az login
per eseguire di nuovo l'autenticazione con Azure.
Controllo degli accessi in base al ruolo
In qualità di amministratore, è possibile fornire il controllo degli accessi in base al ruolo al cluster creando un'associazione di ruoli con l'ID oggetto gruppo Microsoft Entra. Per gli utenti che necessitano solo di autorizzazioni di visualizzazione, è possibile eseguire l'attività aggiungendole a un gruppo Microsoft Entra associato al ruolo "visualizzazione".
Creare un gruppo Microsoft Entra per gli utenti che necessitano dell'accesso 'view', facendo riferimento al ruolo Kubernetes predefinito denominato
view
. Questo ruolo è solo un esempio e, se necessario, è possibile creare ruoli personalizzati e usarli. Per altre informazioni sui ruoli rivolti agli utenti in Kubernetes, è possibile fare riferimento alla documentazione ufficiale in Kubernetes roll-based access roles (Ruoli di accesso in base al roll-based di Kubernetes).Prendere nota dell'ID oggetto gruppo Microsoft Entra generato al momento della creazione.
Usare il comando kubectl per creare un clusterrolebinding con il ruolo "view" e associarlo al gruppo Microsoft Entra. Sostituire
AZURE_AD_GROUP_OBJECT_ID
con l'ID oggetto del gruppo Microsoft Entra.kubectl create clusterrolebinding nexus-read-only-users --clusterrole view --group=AZURE_AD_GROUP_OBJECT_ID
Questo comando crea un'associazione di ruoli cluster denominata
nexus-read-only-users
che assegna ilview
ruolo ai membri del gruppo Microsoft Entra specificato.Verificare che l'associazione di ruoli sia stata creata correttamente.
kubectl get clusterrolebinding nexus-read-only-users
Ora gli utenti del gruppo Microsoft Entra hanno accesso "view" al cluster. Possono accedere al cluster usando
az connectedk8s proxy
per visualizzare le risorse, ma non possono apportare modifiche
Passaggi successivi
È possibile ottimizzare ulteriormente il controllo di accesso creando ruoli personalizzati con autorizzazioni specifiche. La creazione di questi ruoli comporta risorse RoleBinding native di Kubernetes o ClusterRoleBinding. È possibile consultare la documentazione ufficiale di Kubernetes per indicazioni dettagliate sulla creazione di più ruoli personalizzati e associazioni di ruolo in base ai requisiti.