Condividi tramite


Uso del controllo degli accessi in base al ruolo di Azure con Azure Kubernetes Fleet Manager

Questo articolo offre una panoramica dei ruoli RBAC di Azure che è possibile utilizzare con Azure Kubernetes Fleet Manager.

Azure controllo degli accessi in base al ruolo (Azure RBAC) è un sistema di autorizzazione basato su Azure Resource Manager che fornisce una gestione degli accessi dettagliata alle risorse di Azure.

Azure Resource Manager

Questi ruoli concedono l'accesso alle risorse e alle sottorisorse della flotta di Azure Resource Manager (ARM) e sono applicabili a Fleet Manager con e senza un cluster hub.

Nome del ruolo Descrizione Uso
Collaboratore di Azure Kubernetes Fleet Manager Concede l'accesso in lettura e scrittura alle risorse Azure fornite da Azure Kubernetes Fleet Manager, tra cui flotta, membri della flotta, strategie di aggiornamento della flotta, esecuzioni di aggiornamento della flotta e altro ancora. Usare questo ruolo per concedere autorizzazioni di collaboratore che si applicano esclusivamente alle risorse ARM e alle sottorisorse di Fleet Manager. Ad esempio, questo ruolo può essere assegnato a un amministratore Azure con l'incarico di definire e gestire le risorse di Fleet Manager.
Ruolo utente del cluster hub di Azure Kubernetes Fleet Manager Concede l'accesso in sola lettura al cluster hub di Fleet Manager e al file kubeconfig per connettersi al cluster hub di Fleet Manager. Usare per visualizzare le risorse di Fleet Manager e scaricare un cluster kubeconfig hub di Fleet Manager per controllare le configurazioni e i carichi di lavoro senza apportare modifiche.

Piano dei dati di Kubernetes

È possibile assegnare i ruoli del piano dati di Fleet Manager nell'ambito della flotta o all'interno di uno specifico spazio dei nomi gestito della flotta.

Esistono due tipi di ruoli del piano dati: ruoli RBAC per il Gestore della Flotta e ruoli RBAC per i cluster membri. I ruoli RBAC per Fleet Manager concedono l'accesso solo agli oggetti Kubernetes all'interno del cluster hub gestito da Fleet. I ruoli RBAC per i cluster membri concedono l'accesso solo agli oggetti Kubernetes nei cluster membri di una fleet. L'applicazione di un ruolo RBAC per i cluster membri nell'ambito di uno spazio dei nomi gestito applica tale ruolo allo spazio dei nomi gestito su tutti i membri della Fleet principale, indipendentemente dalla propagazione di tale spazio dei nomi al singolo membro.

Quando un cluster viene aggiunto a una flotta come cluster membro, gli utenti ottengono tutte le autorizzazioni per il cluster che sono già state concesse nell'ambito della flotta padre. Quando un cluster membro lascia una flotta, l'utente perde tali autorizzazioni per tale cluster. Ad esempio, un utente a cui è stato assegnato il ruolo Azure Kubernetes Fleet Manager RBAC Cluster Admin for Member Clusters nell'ambito del fleet può creare namespace in tutti i cluster membri solo mentre tali cluster rimangono nel fleet.

Se un ruolo viene applicato a un ambito dello spazio dei nomi gestito e lo spazio dei nomi gestito viene eliminato, viene eliminata anche l'assegnazione di ruolo. Se lo spazio dei nomi gestito viene ricreato, l'assegnazione di ruolo non viene ricreata automaticamente e deve essere ricreata manualmente.

Annotazioni

Questi ruoli RBAC non sono attualmente supportati per i cluster membri abilitati per Arc all'interno di una flotta. Inoltre, il controllo di accesso per risorse personalizzate specifiche di Kubernetes non è supportato per questi ruoli Azure RBAC.

Cluster hub di Fleet Manager

I ruoli seguenti vengono usati per interagire con le risorse Kubernetes in un cluster hub di Fleet Manager.

Nome del ruolo Descrizione Uso
Amministratore del cluster RBAC di Azure Kubernetes Fleet Manager Concede l'accesso in lettura e scrittura alle risorse di Kubernetes all'interno di uno spazio del cluster hub gestito dalla flotta. Usare questo ruolo per concedere l'accesso a tutti gli oggetti Kubernetes (inclusi i CRD) a livello di spazio dei nomi o di cluster.
Admin di Controllo degli accessi in base al ruolo di Gestione flotta Kubernetes di Azure Concede l'accesso in lettura e scrittura alle risorse di Kubernetes all'interno di uno spazio dei nomi nel cluster hub gestito dalla flotta. Fornisce autorizzazioni di scrittura per la maggior parte degli oggetti all'interno di uno spazio dei nomi, ad eccezione dell'oggetto ResourceQuota e dello spazio dei nomi stesso. L'applicazione di questo ruolo nell'ambito del cluster consente l'accesso a tutti gli spazi dei nomi. Usare questo ruolo per concedere la possibilità di amministrare gli oggetti Kubernetes selezionati (inclusi ruoli e associazioni di ruolo) nello spazio dei nomi o nell'ambito del cluster. Ad esempio, per l'uso da parte di un team di progetto responsabile degli oggetti in uno spazio dei nomi specificato.
Azure Kubernetes Fleet Manager RBAC Writer Concede l'accesso in lettura e scrittura alla maggior parte delle risorse di Kubernetes all'interno di uno spazio dei nomi nel cluster hub gestito dalla flotta. Questo ruolo non consente la visualizzazione o la modifica di ruoli o associazioni di ruoli. Tuttavia, questo ruolo consente di accedere ai segreti come qualunque ServiceAccount nello spazio dei nomi, per cui può essere usato per ottenere i livelli di accesso alle API di qualsiasi ServiceAccount nello spazio dei nomi. L'applicazione di questo ruolo nell'ambito del cluster consente l'accesso a tutti gli spazi dei nomi. Usare questo ruolo per concedere la possibilità di scrivere oggetti Kubernetes specifici a livello di spazio dei nomi o di cluster. Ad esempio, per l'uso da parte di un team di progetto responsabile degli oggetti in uno spazio dei nomi specificato.
Reader di Controllo degli accessi in base al ruolo di Gestione flotta Kubernetes di Azure Concede l'accesso in sola lettura alla maggior parte delle risorse di Kubernetes all'interno di uno spazio dei nomi nel cluster hub gestito dalla flotta. Non consente la visualizzazione di ruoli o associazioni di ruolo. Questo ruolo non consente la visualizzazione di segreti poiché la lettura del contenuto dei segreti consente l'accesso alle credenziali ServiceAccount nello spazio dei nomi, che consentirebbe l'accesso all’API come qualsiasi ServiceAccount nello spazio dei nomi (una forma di escalation dei privilegi). L'applicazione di questo ruolo nell'ambito del cluster consente l'accesso a tutti gli spazi dei nomi. Utilizzare questo ruolo per concedere la possibilità di leggere oggetti Kubernetes selezionati non sensibili, sia a livello di spazio dei nomi che a livello di cluster. Ad esempio, è possibile concedere questo ruolo a scopi di revisione.

Cluster di membri di Fleet Manager

I ruoli seguenti vengono usati per interagire con le risorse Kubernetes nei cluster membri di Fleet Manager quando si usano Namespace di Flotta Gestiti.

Nome del ruolo Descrizione Uso
Amministratore del cluster RBAC di Azure Kubernetes Fleet Manager per i cluster membri Accesso in lettura/scrittura completo a tutte le risorse Kubernetes nei cluster membri in una flotta. Usare questo ruolo per concedere l'accesso completo a tutte le risorse nei cluster membri. Un amministratore della piattaforma che deve accedere a più namespace nei cluster membri.
Amministratore RBAC di Azure Kubernetes Fleet Manager per i cluster membri Accesso in lettura e scrittura alle risorse di Kubernetes nel namespace del cluster membro. Usare questo ruolo per concedere la capacità di amministrare gli oggetti Kubernetes selezionati (inclusi ruoli e associazioni di ruolo) a livello di spazio dei nomi nei singoli membri della flotta. Ad esempio, per l'uso da parte di un team di progetto responsabile degli oggetti in uno spazio dei nomi specificato.
Writer Controllo degli accessi in base al ruolo (RBAC) per Gestione flotta Kubernetes di Azure per cluster membri Accesso in lettura e scrittura alla maggior parte delle risorse Kubernetes nel namespace. Non è possibile visualizzare o modificare ruoli o associazioni di ruolo. Può leggere i segreti (pertanto può presupporre qualsiasi ServiceAccount nello spazio dei nomi). Usare questo ruolo per permettere la scrittura di oggetti Kubernetes selezionati in un namespace su un membro della flotta. Ad esempio, per l'uso da parte di un team di progetto responsabile degli oggetti in uno spazio dei nomi specificato.
Lettore controllo degli accessi in base al ruolo di Gestione flotta Kubernetes di Azure per cluster membro Accesso in sola lettura alla maggior parte degli oggetti nello spazio dei nomi nel cluster membro. Non è possibile visualizzare ruoli o associazioni di ruolo. Non è possibile visualizzare i segreti (impedisce l'escalation dei privilegi tramite ServiceAccount credenziali). Usare questo ruolo per concedere la possibilità di leggere gli oggetti Kubernetes non sensibili selezionati nell'ambito del namespace nei membri della flotta.

cluster di hub privato

Quando si usa Fleet Manager con un cluster hub privato, è necessario aggiungere la seguente configurazione Azure RBAC in modo che Fleet Manager possa controllare la configurazione e applicare gli aggiornamenti al cluster hub gestito.

I cluster hub privati richiedono un'assegnazione di ruolo Collaboratore di rete sulla subnet della rete virtuale configurata come subnet dell'agente (nodo). L'assegnazione di ruolo utilizza il principale del servizio Azure di Fleet Manager, il cui ID oggetto varia tra i diversi tenant Entra.

Annotazioni

Questa assegnazione di ruolo non è necessaria quando si crea un Fleet Manager con un cluster hub privato usando il comando az fleet create interfaccia della riga di comando di Azure perché il interfaccia della riga di comando di Azure crea automaticamente l'assegnazione di ruolo.

  1. Ottenere l'identificatore di risorsa Azure della subnet Rete virtuale di Azure a cui è collegato il cluster hub Fleet Manager. Usare i valori appropriati per i segnaposto.

    SUBNET_ID=$(az network vnet subnet show --subscription <subscription-id> --resource-group <virtual-network-rg> --vnet-name <virtual-network> -n <subnet-name> -o tsv --query id)
    
  2. Recuperare l'ID dell'oggetto dell'entità servizio Azure di Fleet Manager per il proprio ambiente.

    FLEET_RP_ID=$(az ad sp list --display-name "Azure Kubernetes Service - Fleet RP" --query "[].{id:id}" --output tsv)
    
  3. Assegnare il ruolo di Collaboratore di rete al provider di risorse della flotta, impostando l'ambito sull'identificatore di risorsa della subnet.

    az role assignment create --assignee "${FLEET_RP_ID}" --role "Network Contributor" --scope "${SUBNET_ID}"
    
  4. Confermare l'assegnazione usando il comando seguente.

    az role assignment list --assignee "${FLEET_RP_ID}" --scope "${SUBNET_ID}"
    

Assegnazioni di ruolo di esempio

È possibile concedere ruoli di Azure RBAC utilizzando il interfaccia della riga di comando di Azure. Ad esempio, per creare un'assegnazione di ruolo nell'ambito di gestione della flotta:

IDENTITY=$(az ad signed-in-user show --output tsv --query id)
FLEET_ID=$(az fleet show --resource-group $GROUP --name $FLEET --output tsv --query id)

az role assignment create \
    --role 'Azure Kubernetes Fleet Manager RBAC Reader' \
    --assignee "$IDENTITY" \
    --scope "$FLEET_ID"

È anche possibile definire l'ambito delle assegnazioni dei ruoli a un singolo namespace gestito aggiungendo /managedNamespaces/<managed-namespace> all'ambito Fleet ID. Ad esempio, per creare un'assegnazione di ruolo a livello di spazio dei nomi gestito per lo spazio dei nomi example-ns:

IDENTITY=$(az ad signed-in-user show --output tsv --query id)
FLEET_ID=$(az fleet show --resource-group $GROUP --name $FLEET --output tsv --query id)
MANAGED_NAMESPACE_NAME="example-ns"

az role assignment create --role 'Azure Kubernetes Fleet Manager RBAC Reader' --assignee "$IDENTITY" --scope "$FLEET_ID"/managedNamespaces/"$MANAGED_NAMESPACE_NAME"