Condividi tramite


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

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 .