Azure Managed Identity Authentication inschakelen voor Kubernetes-clusters met kubelogin
De door AKS beheerde Microsoft Entra-integratie vereenvoudigt het integratieproces van Microsoft Entra. Voorheen moest u een client- en server-app maken en moest de Microsoft Entra-tenant rolmachtigingen toewijzen aan directorylezers . De AKS-resourceprovider beheert nu de client- en server-apps voor u.
Clusterbeheerders kunnen Kubernetes op rollen gebaseerd toegangsbeheer (Kubernetes RBAC) configureren op basis van de identiteit of het lidmaatschap van een directorygroep van een gebruiker. Microsoft Entra-verificatie wordt geleverd aan AKS-clusters met OpenID Connect. OpenID Connect is een identiteitslaag die is gebouwd boven op het OAuth 2.0-protocol. Zie de OpenID Connect-documentatie voor meer informatie over OpenID Connect.
Meer informatie over de Microsoft Entra-integratiestroom vindt u in de Microsoft Entra-documentatie.
Dit artikel bevat informatie over het inschakelen en gebruiken van beheerde identiteiten voor Azure-resources met uw AKS-cluster.
Beperkingen
Hier volgen beperkingen voor het integreren van verificatie van beheerde azure-identiteiten in AKS.
- Integratie kan niet worden uitgeschakeld zodra deze is toegevoegd.
- Downgraden van een geïntegreerd cluster naar de verouderde Microsoft Entra ID-clusters worden niet ondersteund.
- Clusters zonder Kubernetes RBAC-ondersteuning kunnen de integratie niet toevoegen.
Voordat u begint
Aan de volgende vereisten moet worden voldaan om de AKS-invoegtoepassing voor beheerde identiteit correct te installeren.
- U hebt Azure CLI versie 2.29.0 of hoger geïnstalleerd en geconfigureerd. Voer
az --version
uit om de versie te bekijken. Als u Azure CLI 2.0 wilt installeren of upgraden, raadpleegt u Azure CLI 2.0 installeren. - U hebt
kubectl
minimaal versie 1.18.1 ofkubelogin
. Met de Azure CLI en de Azure PowerShell-module worden deze twee opdrachten opgenomen en automatisch beheerd. Dit betekent dat ze standaard worden bijgewerkt en uitgevoerdaz aks install-cli
, is niet vereist of aanbevolen. Als u een geautomatiseerde pijplijn gebruikt, moet u upgrades voor de juiste of nieuwste versie beheren. Het verschil tussen de secundaire versies van Kubernetes enkubectl
mag niet meer dan één versie zijn. Anders treden verificatieproblemen op bij de verkeerde versie. - Als u Helm gebruikt, hebt u een minimumversie van Helm 3.3 nodig.
- Voor deze configuratie moet u een Microsoft Entra-groep voor uw cluster hebben. Deze groep is geregistreerd als een beheergroep op het cluster om beheerdersmachtigingen te verlenen. Als u geen bestaande Microsoft Entra-groep hebt, kunt u er een maken met behulp van de
az ad group create
opdracht.
Notitie
Geïntegreerde Microsoft Entra-clusters met een nieuwere Kubernetes-versie dan versie 1.24 gebruiken automatisch de kubelogin
indeling. Vanaf Kubernetes versie 1.24 is exec
de standaardindeling van de clusterUser-referentie voor Microsoft Entra ID-clusters, die binair in het uitvoeringsPAD vereist kubelogin
. Er is geen gedragswijziging voor niet-Microsoft Entra-clusters of Microsoft Entra ID-clusters met een versie ouder dan 1.24.
Het bestaande gedownloade kubeconfig
bestand blijft werken. Er wordt een optionele queryparameterindeling opgenomen bij het ophalen van de referentie clusterUser om de standaardgedragswijziging te overschrijven. U kunt expliciet indeling opgeven in Azure als u de oude kubeconfig
indeling wilt behouden.
De integratie inschakelen op uw AKS-cluster
Een nieuw cluster maken
Maak een Azure-resourcegroep met behulp van de
az group create
opdracht.az group create --name myResourceGroup --location centralus
Maak een AKS-cluster en schakel beheertoegang in voor uw Microsoft Entra-groep met behulp van de
az aks create
opdracht.az aks create \ --resource-group myResourceGroup \ --name myManagedCluster \ --enable-aad \ --aad-admin-group-object-ids <id> [--aad-tenant-id <id>] \ --generate-ssh-keys
Een geslaagde creatie van een door AKS beheerd Microsoft Entra ID-cluster heeft de volgende sectie in de hoofdtekst van het antwoord:
"AADProfile": { "adminGroupObjectIds": [ "5d24****-****-****-****-****afa27aed" ], "clientAppId": null, "managed": true, "serverAppId": null, "serverAppSecret": null, "tenantId": "72f9****-****-****-****-****d011db47" }
Een bestaand cluster gebruiken
Schakel door AKS beheerde Microsoft Entra-integratie in op uw bestaande Kubernetes RBAC-cluster met behulp van de az aks update
opdracht. Zorg ervoor dat u de beheergroep zo instelt dat de toegang op uw cluster behouden blijft.
az aks update --resource-group MyResourceGroup --name myManagedCluster --enable-aad --aad-admin-group-object-ids <id-1>,<id-2> [--aad-tenant-id <id>]
Een geslaagde activering van een door AKS beheerd Microsoft Entra ID-cluster heeft de volgende sectie in de hoofdtekst van het antwoord:
"AADProfile": {
"adminGroupObjectIds": [
"5d24****-****-****-****-****afa27aed"
],
"clientAppId": null,
"managed": true,
"serverAppId": null,
"serverAppSecret": null,
"tenantId": "72f9****-****-****-****-****d011db47"
}
Verouderd cluster migreren naar integratie
Als uw cluster gebruikmaakt van verouderde Microsoft Entra-integratie, kunt u upgraden naar door AKS beheerde Microsoft Entra-integratie via de az aks update
opdracht.
Waarschuwing
Clusters in de gratis laag kunnen downtime van api-servers ondervinden tijdens de upgrade. We raden u aan om tijdens uw kantooruren een upgrade uit te voeren.
Na de upgrade wordt de kubeconfig-inhoud gewijzigd. U moet worden uitgevoerd az aks get-credentials --resource-group <AKS resource group name> --name <AKS cluster name>
om de nieuwe referenties samen te voegen in het kubeconfig-bestand.
az aks update --resource-group myResourceGroup --name myManagedCluster --enable-aad --aad-admin-group-object-ids <id> [--aad-tenant-id <id>]
Een geslaagde migratie van een door AKS beheerd Microsoft Entra ID-cluster heeft de volgende sectie in de hoofdtekst van het antwoord:
"AADProfile": {
"adminGroupObjectIds": [
"5d24****-****-****-****-****afa27aed"
],
"clientAppId": null,
"managed": true,
"serverAppId": null,
"serverAppSecret": null,
"tenantId": "72f9****-****-****-****-****d011db47"
}
Toegang tot uw ingeschakelde cluster
Haal de gebruikersreferenties op om toegang te krijgen tot uw cluster met behulp van de
az aks get-credentials
opdracht.az aks get-credentials --resource-group myResourceGroup --name myManagedCluster
Volg uw instructies om u aan te melden.
Ingesteld
kubelogin
op het gebruik van de Azure CLI.kubelogin convert-kubeconfig -l azurecli
Bekijk de knooppunten in het cluster met de
kubectl get nodes
opdracht.kubectl get nodes
Niet-interactieve aanmelding met kubelogin
Er zijn enkele niet-interactieve scenario's die geen ondersteuning bieden kubectl
. In deze gevallen gebruikt kubelogin
u om verbinding te maken met het cluster met een niet-interactieve service-principalreferentie om pijplijnen voor continue integratie uit te voeren.
Notitie
Geïntegreerde Microsoft Entra-clusters met een nieuwere Kubernetes-versie dan versie 1.24 gebruiken automatisch de kubelogin
indeling. Vanaf Kubernetes versie 1.24 is exec
de standaardindeling van de clusterUser-referentie voor Microsoft Entra ID-clusters, die binair in het uitvoeringsPAD vereist kubelogin
. Er is geen gedragswijziging voor niet-Microsoft Entra-clusters of Microsoft Entra ID-clusters met een versie ouder dan 1.24.
Het bestaande gedownloade kubeconfig
bestand blijft werken. Er wordt een optionele queryparameterindeling opgenomen bij het ophalen van de referentie clusterUser om de standaardgedragswijziging te overschrijven. U kunt expliciet indeling opgeven in Azure als u de oude kubeconfig
indeling wilt behouden.
Wanneer u de clusterUser-referentie ophaalt, kunt u de
format
queryparameter gebruiken om het standaardgedrag te overschrijven. U kunt de waarde instellen opazure
het gebruik van de oorspronkelijke kubeconfig-indeling:az aks get-credentials --format azure
Als voor uw geïntegreerde Microsoft Entra-cluster Kubernetes versie 1.24 of lager wordt gebruikt, moet u de kubeconfig-indeling handmatig converteren.
export KUBECONFIG=/path/to/kubeconfig kubelogin convert-kubeconfig
Notitie
Als u de foutmelding krijgt: de Azure-auth-invoegtoepassing is verwijderd., moet u de opdracht kubelogin convert-kubeconfig
uitvoeren om de kubeconfig-indeling handmatig te converteren.
Raadpleeg bekende problemen met Azure Kubelogin voor meer informatie.
Toegangsproblemen oplossen
Belangrijk
De stap die in deze sectie wordt beschreven, stelt een alternatieve verificatiemethode voor vergeleken met de normale Microsoft Entra-groepsverificatie. Gebruik deze optie alleen in noodgevallen.
Als u geen beheerderstoegang hebt tot een geldige Microsoft Entra-groep, kunt u deze tijdelijke oplossing volgen. Meld u aan met een account dat lid is van de rol Azure Kubernetes Service-clusterbeheerder en ververleent uw groep- of tenantbeheerdersreferenties voor toegang tot uw cluster.
Volgende stappen
- Meer informatie over Microsoft Entra-integratie met Kubernetes RBAC.
- Meer informatie over AKS- en Kubernetes-identiteitsconcepten.
- Meer informatie over het gebruik van kubelogin voor alle ondersteunde Microsoft Entra-verificatiemethoden in AKS.
- Gebruik ARM-sjablonen (Azure Resource Manager) om clusters met AKS-beheerde Microsoft Entra ID te maken.
Azure Kubernetes Service