Deux actions du plan de management vous livrent le cluster. listClusterAdminCredential renvoie un kubeconfig cluster-admin qui contourne entièrement le RBAC Azure, et managedClusters runCommand exécute kubectl (ou n'importe quelle commande) à l'intérieur du cluster depuis le côté Azure, ce qui fonctionne même lorsque l'API server est privé.
Récupérer le kubeconfig admin#
# admin creds ignore Azure AD / RBAC integration
az aks get-credentials -g <rg> -n <cluster> --admin
kubectl get secrets -A
Exécuter des commandes via le plan de management#
az aks command invoke -g <rg> -n <cluster> \
-c "kubectl get secrets -A -o json"
Notes d'exploitation#
--adminnécessite l'actionlistClusterAdminCredential; c'est le droit AKS le plus précieux, car il contourne tout RBAC de cluster basé sur Azure AD.command invokeatteint un cluster privé sans aucune visibilité réseau, puisqu'il passe par le plan de contrôle Azure.- Les secrets du cluster incluent régulièrement d'autres identifiants cloud et des jetons de compte de service pour le déplacement latéral.
Outils#
- Azure CLI (
az aks get-credentials --admin,az aks command invoke). - kubectl / Peirates : énumération et déplacement dans le cluster une fois le kubeconfig obtenu.