Ottenere l'accesso sicuro per le risorse di Azure nel servizio Azure Kubernetes usando Accesso attendibile
Questo articolo illustra come ottenere l'accesso sicuro per i servizi di Azure al server API Kubernetes in servizio Azure Kubernetes (AKS) usando Accesso attendibile.
La funzionalità Accesso attendibile offre ai servizi l'accesso 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.
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
- Un account Azure con una sottoscrizione attiva. Creare un account gratuitamente.
- Tipi di risorse che supportano l'identità gestita assegnata dal sistema.
- Interfaccia della riga di comando di Azure 2.53.0 o versione successiva. Eseguire
az --version
per trovare la versione in uso. Se è necessario eseguire l'installazione o l'aggiornamento, vedere Installare l'interfaccia della riga di comando di Azure. - Per informazioni sui ruoli da usare in scenari diversi, vedere gli articoli seguenti:
- Nella stessa sottoscrizione della risorsa di Azure a cui si vuole accedere al cluster, creare un cluster del servizio Azure Kubernetes.
Connettersi al cluster
Configurare kubectl
per connettersi al cluster usando il comando az aks get-credentials
.
export RESOURCE_GROUP_NAME="myResourceGroup"
export CLUSTER_NAME="myClusterName"
az aks get-credentials --resource-group ${RESOURCE_GROUP_NAME} --name ${CLUSTER_NAME} --overwrite-existing
Verificare la connessione al cluster usando il comando kubectl get
.
kubectl get nodes
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 usando il az aks trustedaccess role list --location <location>
comando .
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.
export ROLE_BINDING_NAME="myRoleBindingName"
export SOURCE_RESOURCE_ID="mySourceResourceID"
export ROLE_NAME_1="myRoleName1"
export ROLE_NAME_2="myRoleName2"
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}
Risultati:
{
"id": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/${RESOURCE_GROUP_NAME}/providers/Microsoft.ContainerService/managedClusters/${CLUSTER_NAME}/trustedAccessRoleBindings/${ROLE_BINDING_NAME}",
"name": "${ROLE_BINDING_NAME}",
"provisioningState": "Succeeded",
"resourceGroup": "${RESOURCE_GROUP_NAME}",
"roles": [
"${ROLE_NAME_1}",
"${ROLE_NAME_2}"
],
"sourceResourceId": "${SOURCE_RESOURCE_ID}",
"systemData": null,
"type": "Microsoft.ContainerService/managedClusters/trustedAccessRoleBindings"
}
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 i nuovi ruoli usando il 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
comando . Questo comando aggiorna l'associazione di ruoli con i nuovi ruoli specificati.
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.
Mostra un'associazione di ruoli accesso attendibile
Visualizzare un'associazione di ruoli di accesso attendibile specifica usando il az aks trustedaccess rolebinding show --name $ROLE_BINDING_NAME --resource-group $RESOURCE_GROUP_NAME --cluster-name $CLUSTER_NAME
comando .
Elencare tutte le associazioni di ruolo accesso attendibili per un cluster
Elencare tutte le associazioni di ruolo accesso attendibile per un cluster usando il az aks trustedaccess rolebinding list --resource-group $RESOURCE_GROUP_NAME --cluster-name $CLUSTER_NAME
comando .
Contenuto correlato
- Distribuire e gestire le estensioni del cluster per il servizio Azure Kubernetes
- Distribuire l'estensione Azure Machine Learning in un cluster Kubernetes abilitato per Azure Arc o azure Arc
- Distribuire Backup di Azure in un cluster del servizio Azure Kubernetes
- Impostare il comportamento del contenitore senza agente in Microsoft Defender for Cloud per un cluster del servizio Azure Kubernetes
Azure Kubernetes Service