Dela via


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

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 .