Condividi tramite


Ottenere l'accesso sicuro per le risorse di Azure nel servizio Azure Kubernetes usando Accesso attendibile

Molti servizi di Azure che si integrano con il servizio Azure Kubernetes devono accedere al server API Kubernetes. Per evitare di concedere a questi servizi l'accesso amministratore o rendere pubblici i cluster del servizio Azure Kubernetes per l'accesso alla rete, è possibile usare la funzionalità Accesso attendibile del servizio Azure Kubernetes.

Questa funzionalità consente ai servizi di accedere in modo sicuro al server API del servizio Azure Kubernetes usando il back-end di Azure senza richiedere un endpoint privato. Invece di basarsi sulle identità che dispongono di autorizzazioni Microsoft Entra, questa funzionalità può usare l'identità gestita assegnata dal sistema per eseguire l'autenticazione con i servizi gestiti e le applicazioni che si desidera usare con i cluster del servizio Azure Kubernetes.

Questo articolo illustra come ottenere l'accesso sicuro per i servizi di Azure al server API Kubernetes nel servizio Azure Kubernetes usando Accesso attendibile.

Nota

L'API Accesso attendibile è disponibile a livello generale. È disponibile il supporto della disponibilità generale per l'interfaccia della riga di comando di Azure, ma è ancora in anteprima e richiede l'uso dell'estensione aks-preview.

Panoramica della funzionalità Accesso attendibile

Accesso attendibile risolve gli scenari seguenti:

  • Se un intervallo IP autorizzato è impostato o si trova in un cluster privato, i servizi di Azure potrebbero non essere in grado di accedere al server API Kubernetes, a meno che non si implementi un modello di accesso endpoint privato.

  • Concedere a un amministratore del servizio di Azure l'accesso all'API Kubernetes non segue la procedura consigliata per l'accesso con privilegi minimi e può causare l'escalation dei privilegi o il rischio di perdita di credenziali. Ad esempio, potrebbe essere necessario implementare autorizzazioni con privilegi elevati da servizio a servizio, che non sono l'ideale per una verifica di controllo.

È possibile usare l'accesso attendibile per concedere il consenso esplicito all'identità gestita assegnata dal sistema delle risorse consentite per accedere ai cluster del servizio Azure Kubernetes usando una risorsa di Azure denominata associazione di ruoli. Le risorse di Azure accedono ai cluster servizio Azure Kubernetes tramite il gateway a livello di area del servizio Azure Kubernetes tramite l'autenticazione dell'identità gestita assegnata dal sistema. Le autorizzazioni Kubernetes appropriate vengono assegnate tramite una risorsa di Azure denominata ruolo. Tramite l'accesso attendibile è possibile accedere ai cluster del servizio Azure Kubernetes con configurazioni diverse, tra cui cluster privati, cluster con account locali disattivati, cluster Microsoft Entra e cluster di intervalli IP autorizzati.

Prerequisiti

Creare un cluster del servizio Azure Kubernetes

Nella stessa sottoscrizione della risorsa di Azure a cui si vuole accedere al cluster, creare un cluster del servizio Azure Kubernetes.

Selezionare i ruoli di accesso attendibili necessari

I ruoli selezionati dipendono dai servizi di Azure a cui si vuole accedere al cluster del servizio Azure Kubernetes. I servizi di Azure consentono di creare ruoli e associazioni di ruolo che creano la connessione dal servizio di Azure al servizio Azure Kubernetes.

Per trovare i ruoli necessari, vedere la documentazione per il servizio di Azure che si desidera connettere al servizio Azure Kubernetes. È anche possibile usare l'interfaccia della riga di comando di Azure per elencare i ruoli disponibili per il servizio di Azure. Ad esempio, per elencare i ruoli per Azure Machine Learning, usare il comando seguente:

az aks trustedaccess role list --location $LOCATION

Creare un'associazione di ruoli di accesso attendibile

Dopo aver verificato il ruolo da usare, usare l'interfaccia della riga di comando di Azure per creare un'associazione di ruoli di accesso attendibile nel cluster del servizio Azure Kubernetes. L'associazione di ruoli associa il ruolo selezionato al servizio di Azure.

# Create a Trusted Access role binding in an AKS cluster

az aks trustedaccess rolebinding create  --resource-group $RESOURCE_GROUP_NAME --cluster-name $CLUSTER_NAME --name $ROLE_BINDING_NAME --source-resource-id $SOURCE_RESOURCE_ID --roles $ROLE_NAME_1,$ROLE_NAME_2

Ecco un esempio:

# Sample command

az aks trustedaccess rolebinding create --resource-group myResourceGroup --cluster-name myAKSCluster --name test-binding --source-resource-id /subscriptions/000-000-000-000-000/resourceGroups/myResourceGroup/providers/Microsoft.MachineLearningServices/workspaces/MyMachineLearning --roles Microsoft.MachineLearningServices/workspaces/mlworkload

Aggiornare un'associazione di ruoli di accesso attendibile esistente

Per un'associazione di ruoli esistente con un servizio di origine associato, è possibile aggiornare l'associazione di ruoli con nuovi ruoli.

Nota

Il gestore componenti aggiuntivi aggiorna i cluster ogni cinque minuti, quindi l'applicazione della nuova associazione di ruoli potrebbe richiedere fino a cinque minuti. Prima dell'applicazione del nuovo binding di ruoli, l'associazione di ruoli esistente funziona ancora.

È possibile usare il comando az aks trusted access rolebinding list per controllare l'associazione di ruoli corrente.

az aks trustedaccess rolebinding update --resource-group $RESOURCE_GROUP_NAME --cluster-name $CLUSTER_NAME --name $ROLE_BINDING_NAME --roles $ROLE_NAME_3,$ROLE_NAME_4

Mostra un'associazione di ruoli accesso attendibile

Visualizzare un'associazione di ruolo accesso attendibile specifica usando il comando az aks trustedaccess rolebinding show:

az aks trustedaccess rolebinding show --name $ROLE_BINDING_NAME --resource-group $RESOURCE_GROUP_NAME --cluster-name $CLUSTER_NAME

Elencare tutte le associazioni di ruolo accesso attendibili per un cluster

Elencare tutte le associazioni di ruolo accesso attendibile per un cluster usando il comando az aks trustedaccess rolebinding list:

az aks trustedaccess rolebinding list --resource-group $RESOURCE_GROUP_NAME --cluster-name $CLUSTER_NAME

Eliminare un'associazione di ruoli di accesso attendibile per un cluster

Avviso

L'eliminazione di un'associazione di ruolo accesso attendibile esistente disconnette il servizio Azure dal cluster del servizio Azure Kubernetes.

Eliminare un'associazione di ruolo accesso attendibile esistente usando il comando az aks trustedaccess rolebinding delete:

az aks trustedaccess rolebinding delete --name $ROLE_BINDING_NAME --resource-group $RESOURCE_GROUP_NAME --cluster-name $CLUSTER_NAME