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-Verbinding maken. OpenID Verbinding maken is een identiteitslaag die is gebouwd boven op het OAuth 2.0-protocol. Zie de documentatie over OpenID Verbinding maken voor meer informatie over OpenID-Verbinding maken.

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 of kubelogin. 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 uitgevoerd az 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 en kubectl 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 execde 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

  1. Maak een Azure-resourcegroep met behulp van de az group create opdracht.

    az group create --name myResourceGroup --location centralus
    
  2. Maak een AKS-cluster en schakel beheertoegang in voor uw Microsoft Entra-groep met behulp van de az aks create opdracht.

    az aks create -g myResourceGroup -n myManagedCluster --enable-aad --aad-admin-group-object-ids <id> [--aad-tenant-id <id>]
    

    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 -g MyResourceGroup -n 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 -g myResourceGroup -n 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

  1. 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
    
  2. Volg uw instructies om u aan te melden.

  3. Ingesteld kubelogin op het gebruik van de Azure CLI.

    kubelogin convert-kubeconfig -l azurecli
    
  4. 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 execde 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 op azure 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 het Azure Kubernetes Service-cluster Beheer rol en ververleent uw groep- of tenantbeheerdersreferenties voor toegang tot uw cluster.

Volgende stappen