Share via


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

  1. 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.
  2. 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 .

Amministrazione istrator accesso 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 Nexus Kubernetes, 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 il cluster connect 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 ovunque, anche all'esterno del firewall che lo circonda.

  1. Impostare CLUSTER_NAMEle variabili e RESOURCE_GROUPSUBSCRIPTION_ID .

    CLUSTER_NAME="myNexusK8sCluster"
    RESOURCE_GROUP="myResourceGroup"
    SUBSCRIPTION_ID=<set the correct subscription_id>
    
  2. Eseguire query sul gruppo di risorse gestite con az e archiviare in MANAGED_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)
    
  3. Il comando seguente avvia un proxy connectedk8s che consente di connettersi al server API Kubernetes per il cluster Nexus Kubernetes specificato.

    az connectedk8s proxy -n $CLUSTER_NAME  -g $MANAGED_RESOURCE_GROUP &
    
  4. 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".

  1. 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).

  2. Prendere nota dell'ID oggetto gruppo Microsoft Entra generato al momento della creazione.

  3. 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 il view ruolo ai membri del gruppo Microsoft Entra specificato.

  4. Verificare che l'associazione di ruoli sia stata creata correttamente.

    kubectl get clusterrolebinding nexus-read-only-users
    
  5. 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.