Få säker åtkomst för Azure-resurser i Azure Kubernetes Service med hjälp av betrodd åtkomst

Många Azure-tjänster som integreras med Azure Kubernetes Service (AKS) behöver åtkomst till Kubernetes API-servern. Om du vill undvika att bevilja dessa tjänster administratörsåtkomst eller göra dina AKS-kluster offentliga för nätverksåtkomst kan du använda funktionen för betrodd åtkomst i AKS.

Den här funktionen ger tjänster säker åtkomst till AKS API-servern med hjälp av Azure-serverdelen utan att kräva en privat slutpunkt. I stället för att förlita sig på identiteter som har Microsoft Entra-behörigheter kan den här funktionen använda din systemtilldelade hanterade identitet för att autentisera med de hanterade tjänster och program som du vill använda med dina AKS-kluster.

Den här artikeln visar hur du får säker åtkomst för dina Azure-tjänster till Kubernetes API-servern i AKS med hjälp av betrodd åtkomst.

Kommentar

API:et för betrodd åtkomst är allmänt tillgängligt. Vi tillhandahåller stöd för allmän tillgänglighet (GA) för Azure CLI, men det är fortfarande i förhandsversion och kräver att du använder aks-preview-tillägget.

Översikt över funktionen Betrodd åtkomst

Betrodd åtkomst hanterar följande scenarier:

  • Om ett auktoriserat IP-intervall har angetts eller i ett privat kluster kanske Azure-tjänsterna inte kan komma åt Kubernetes API-servern om du inte implementerar en privat slutpunktsåtkomstmodell.

  • Att ge en Azure-tjänstadministratör åtkomst till Kubernetes-API:et följer inte bästa praxis för åtkomst med minsta möjliga behörighet och kan leda till privilegiereskaleringar eller risk för läckage av autentiseringsuppgifter. Du kan till exempel behöva implementera högprivilegierade tjänst-till-tjänst-behörigheter och de är inte idealiska i en granskningsgranskning.

Du kan använda betrodd åtkomst för att ge uttryckligt medgivande till din systemtilldelade hanterade identitet för tillåtna resurser för åtkomst till dina AKS-kluster med hjälp av en Azure-resurs som kallas rollbindning. Dina Azure-resurser får åtkomst till AKS-kluster via den regionala AKS-gatewayen via systemtilldelad hanterad identitetsautentisering. Lämpliga Kubernetes-behörigheter tilldelas via en Azure-resurs som kallas roll. Via betrodd åtkomst kan du komma åt AKS-kluster med olika konfigurationer, inklusive men inte begränsat till privata kluster, kluster som har lokala konton inaktiverade, Microsoft Entra-kluster och auktoriserade IP-intervallkluster.

Förutsättningar

Skapa ett AKS-kluster

Skapa ett AKS-kluster i samma prenumeration som den Azure-resurs som du vill komma åt klustret.

Välj de nödvändiga rollerna för betrodd åtkomst

Vilka roller du väljer beror på vilka Azure-tjänster du vill komma åt AKS-klustret. Azure-tjänster hjälper dig att skapa roller och rollbindningar som skapar anslutningen från Azure-tjänsten till AKS.

Skapa en rollbindning för betrodd åtkomst

När du har bekräftat vilken roll du ska använda använder du Azure CLI för att skapa en rollbindning för betrodd åtkomst i AKS-klustret. Rollbindningen associerar din valda roll med Azure-tjänsten.

# Create a Trusted Access role binding in an AKS cluster

az aks trustedaccess rolebinding create  --resource-group <AKS resource group> --cluster-name <AKS cluster name> -n <role binding name> -s <connected service resource ID> --roles <roleName1, roleName2>

Här är ett exempel:

# Sample command

az aks trustedaccess rolebinding create \
-g myResourceGroup \
--cluster-name myAKSCluster -n test-binding \
--source-resource-id /subscriptions/000-000-000-000-000/resourceGroups/myResourceGroup/providers/Microsoft.MachineLearningServices/workspaces/MyMachineLearning \
--roles Microsoft.Compute/virtualMachineScaleSets/test-node-reader,Microsoft.Compute/virtualMachineScaleSets/test-admin

Uppdatera en befintlig rollbindning för betrodd åtkomst

För en befintlig rollbindning som har en associerad källtjänst kan du uppdatera rollbindningen med nya roller.

Kommentar

Tilläggshanteraren uppdaterar kluster var femte minut, så den nya rollbindningen kan ta upp till fem minuter att börja gälla. Innan den nya rollbindningen börjar gälla fungerar fortfarande den befintliga rollbindningen.

Du kan använda az aks trusted access rolebinding list --name <role binding name> --resource-group <resource group> för att kontrollera den aktuella rollbindningen.

# Update the RoleBinding command

az aks trustedaccess rolebinding update --resource-group <AKS resource group> --cluster-name <AKS cluster name> -n <existing role binding name>  --roles <newRoleName1, newRoleName2>

Här är ett exempel:

# Update the RoleBinding command with sample resource group, cluster, and roles

az aks trustedaccess rolebinding update \
--resource-group myResourceGroup \
--cluster-name myAKSCluster -n test-binding \
--roles Microsoft.Compute/virtualMachineScaleSets/test-node-reader,Microsoft.Compute/virtualMachineScaleSets/test-admin

Visa en rollbindning för betrodd åtkomst

Visa en specifik rollbindning för betrodd åtkomst med hjälp az aks trustedaccess rolebinding show av kommandot :

az aks trustedaccess rolebinding show --name <role binding name> --resource-group <AKS resource group> --cluster-name <AKS cluster name>

Visa en lista över alla rollbindningar för betrodd åtkomst för ett kluster

Visa en lista över alla rollbindningar för betrodd åtkomst för ett kluster med hjälp az aks trustedaccess rolebinding list av kommandot :

az aks trustedaccess rolebinding list --resource-group <AKS resource group> --cluster-name <AKS cluster name>

Ta bort en rollbindning för betrodd åtkomst för ett kluster

Varning

Om du tar bort en befintlig rollbindning för betrodd åtkomst kopplas Azure-tjänsten från AKS-klustret.

Ta bort en befintlig rollbindning för betrodd åtkomst med hjälp az aks trustedaccess rolebinding delete av kommandot :

az aks trustedaccess rolebinding delete --name <role binding name> --resource-group <AKS resource group> --cluster-name <AKS cluster name>