Få säker åtkomst för Azure-resurser i Azure Kubernetes Service med hjälp av betrodd åtkomst
Den här artikeln visar hur du får säker åtkomst för dina Azure-tjänster till Kubernetes API-servern i Azure Kubernetes Service (AKS) med hjälp av betrodd åtkomst.
Funktionen Betrodd åtkomst 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.
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
- Ett Azure-konto med en aktiv prenumeration. Skapa ett konto utan kostnad.
- Resurstyper som stöder systemtilldelad hanterad identitet.
- Azure CLI version 2.53.0 eller senare. Kör
az --version
för att hitta din version. Om du behöver installera eller uppgradera kan du läsa Installera Azure CLI. - Information om vilka roller som ska användas i olika scenarier finns i följande artiklar:
- Skapa ett AKS-kluster i samma prenumeration som den Azure-resurs som du vill komma åt klustret.
Ansluta till klustret
Konfigurera kubectl
för att ansluta till klustret med hjälp av az aks get-credentials
kommandot .
export RESOURCE_GROUP_NAME="myResourceGroup"
export CLUSTER_NAME="myClusterName"
az aks get-credentials --resource-group ${RESOURCE_GROUP_NAME} --name ${CLUSTER_NAME} --overwrite-existing
Kontrollera anslutningen till klustret med hjälp av kubectl get
kommandot .
kubectl get nodes
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.
Information om hur du hittar de roller du behöver finns i dokumentationen för den Azure-tjänst som du vill ansluta till AKS. Du kan också använda Azure CLI för att lista de roller som är tillgängliga för Azure-tjänsten med hjälp av az aks trustedaccess role list --location <location>
kommandot .
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.
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}
Resultat:
{
"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"
}
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 med kommandot 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
. Det här kommandot uppdaterar rollbindningen med de nya roller som du anger.
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
kommandot för att kontrollera den aktuella rollbindningen.
Visa en rollbindning för betrodd åtkomst
Visa en specifik rollbindning för betrodd åtkomst med kommandot az aks trustedaccess rolebinding show --name $ROLE_BINDING_NAME --resource-group $RESOURCE_GROUP_NAME --cluster-name $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 kommandot az aks trustedaccess rolebinding list --resource-group $RESOURCE_GROUP_NAME --cluster-name $CLUSTER_NAME
.
Relaterat innehåll
Azure Kubernetes Service