Microsoft Entra ID-verificatie inschakelen voor het AKS-besturingsvlak

De Integratie van Microsoft Entra vereenvoudigt het Integratieproces van Microsoft Entra. Voorheen moest u een client- en server-app maken en moest de Microsoft Entra-tenant rolmachtigingen toewijzen aan Directory-lezers. De AKS-resourceprovider (Azure Kubernetes Service) 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.

Meer informatie over de Microsoft Entra-integratiestroom vindt u in de Microsoft Entra-documentatie.

Limitations

Microsoft Entra-integratie kan niet worden uitgeschakeld nadat deze is ingeschakeld op een cluster.

Voordat u begint

Controleer of u de volgende items hebt om de AKS-invoegtoepassing te installeren:

  • U hebt Azure CLI versie 2.29.0 of hoger geïnstalleerd en geconfigureerd. Voer de az --version opdracht uit om de versie te vinden. Als u Azure CLI wilt installeren of upgraden, raadpleegt u Azure CLI installeren.
  • U heeft kubectl met minimaal versie 1.18.1 of kubelogin nodig. 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 dat het uitvoeren van az aks install-cli niet vereist of aanbevolen is. 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.
  • 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.

De integratie inschakelen op uw AKS-cluster

Stel eerst omgevingsvariabelen in voor de resourcegroep, de clusternaam, de object-id's van de Microsoft Entra-beheergroep en de tenant-id. Gebruik deze variabelen opnieuw in de opdrachten die volgen.

export RESOURCE_GROUP="myResourceGroup"
export CLUSTER_NAME="myManagedCluster"
export AAD_ADMIN_GROUP_OBJECT_IDS="<group-object-id>"  # comma-separated for multiple groups
export AAD_TENANT_ID="<tenant-id>"
export LOCATION="centralus"

Een nieuw cluster maken

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

    az group create --name $RESOURCE_GROUP --location $LOCATION
    
  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 \
      --resource-group $RESOURCE_GROUP \
      --name $CLUSTER_NAME \
      --enable-aad \
      --aad-admin-group-object-ids $AAD_ADMIN_GROUP_OBJECT_IDS \
      --aad-tenant-id $AAD_TENANT_ID \
      --generate-ssh-keys
    

    Een succesvolle creatie van een Microsoft Entra ID-cluster heeft de volgende sectie in de responsebody.

    "AADProfile": {
      "adminGroupObjectIds": [
      "aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb"
      ],
      "clientAppId": null,
      "managed": true,
      "serverAppId": null,
      "serverAppSecret": null,
      "tenantId": "aaaabbbb-0000-cccc-1111-dddd2222eeee"
    }
    

Een bestaand cluster gebruiken

Schakel 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 $RESOURCE_GROUP \
  --name $CLUSTER_NAME \
  --enable-aad \
  --aad-admin-group-object-ids $AAD_ADMIN_GROUP_OBJECT_IDS \
  --aad-tenant-id $AAD_TENANT_ID

Een geslaagde activering van een Microsoft Entra ID-cluster bevat de volgende sectie in de hoofdtekst van het antwoord:

"AADProfile": {
  "adminGroupObjectIds": [
      "aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb"
  ],
  "clientAppId": null,
  "managed": true,
  "serverAppId": null,
  "serverAppSecret": null,
  "tenantId": "aaaabbbb-0000-cccc-1111-dddd2222eeee"
}

Verouderd cluster migreren naar integratie

Als uw cluster gebruikmaakt van verouderde Microsoft Entra-integratie, kunt u upgraden naar Microsoft Entra-integratie via de az aks update opdracht.

Warning

Clusters in de gratis laag kunnen downtime van api-servers ondervinden tijdens de upgrade. We raden u aan om buiten uw kantooruren een upgrade uit te voeren. Na de upgrade wordt de kubeconfig inhoud gewijzigd. U moet az aks get-credentials --resource-group <AKS resource group name> --name <AKS cluster name> uitvoeren om de nieuwe referenties samen te voegen in het kubeconfig bestand.

az aks update \
  --resource-group $RESOURCE_GROUP \
  --name $CLUSTER_NAME \
  --enable-aad \
  --aad-admin-group-object-ids $AAD_ADMIN_GROUP_OBJECT_IDS \
  --aad-tenant-id $AAD_TENANT_ID

Een geslaagde migratie van een Microsoft Entra ID-cluster heeft de volgende sectie in de hoofdtekst van het antwoord:

"AADProfile": {
  "adminGroupObjectIds": [
      "aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb"
  ],
  "clientAppId": null,
  "managed": true,
  "serverAppId": null,
  "serverAppSecret": null,
  "tenantId": "aaaabbbb-0000-cccc-1111-dddd2222eeee"
}

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 $RESOURCE_GROUP --name $CLUSTER_NAME
    
  2. Volg de aanmeldingsinstructies.

  3. Bekijk de knooppunten in het cluster met de kubectl get nodes opdracht.

    kubectl get nodes
    

Clusters met Kubernetes 1.24 of hoger gebruiken automatisch de kubelogin exec-plugin indeling, dus er is geen handmatige kubeconfig conversie nodig voor interactieve Azure CLI-aanmelding. Zie Kubelogin gebruiken om gebruikers in AKS te verifiëren voor niet-interactieve scenario's, zoals CI-pijplijnen of voor het gebruik van een andere verificatiemethode (service-principal, beheerde identiteit, workloadidentiteit of apparaatcode).

Toegang tot break-glass

In het zeldzame geval dat Microsoft Entra ID-aanmelding bij de Kubernetes-API-server van uw cluster niet werkt, bijvoorbeeld tijdens een breder Microsoft Entra-service-incident, kunt u terugkeren naar het lokale beheerdersaccount van het cluster om het cluster te blijven gebruiken totdat aanmelding op basis van Entra is hersteld.

Note

Deze noodoplossing is alleen nodig wanneer de Entra-gebaseerde aanmelding niet beschikbaar is. Als uw probleem een onjuist geconfigureerde beheergroep is (bijvoorbeeld de groep is verwijderd of de verkeerde object-id is ingesteld), hoeft u deze niet te gebruiken. Werk de beheergroep rechtstreeks bij met az aks update --aad-admin-group-object-ids een account met de Microsoft.ContainerService/managedClusters/write machtiging.

Important

Deze werkstroom omzeilt Microsoft Entra-verificatie. Gebruik dit alleen als tijdelijke terugval en schakel lokale accounts opnieuw uit zodra de aanmelding van Microsoft Entra is hersteld.

Als u het break-glass-pad wilt gebruiken, hebt u de rol Azure Kubernetes Service-inzender voor de clusterresource nodig. Deze rol verleent de Microsoft.ContainerService/managedClusters/write vereiste machtiging voor het opnieuw inschakelen van lokale accounts, plus toegang tot de clusterbeheerreferentie van de lokale omgeving. Het wordt geëvalueerd door Azure Resource Manager, dus het werkt onafhankelijk van het aanmeldingspad van Microsoft Entra naar de Kubernetes API-server.

  1. Als lokale accounts zijn uitgeschakeld op het cluster, schakelt u ze tijdelijk opnieuw in.

    az aks update --resource-group $RESOURCE_GROUP --name $CLUSTER_NAME --enable-local-accounts
    
  2. Haal de cluster-admin referentie van het lokale cluster op met behulp van de az aks get-credentials opdracht met de --admin parameter. Deze inloggegevens zijn een certificaatgebaseerde kubeconfig die Microsoft Entra omzeilt.

    az aks get-credentials --resource-group $RESOURCE_GROUP --name $CLUSTER_NAME --admin
    
  3. Gebruik kubectl dit om het cluster te gebruiken terwijl Microsoft Entra niet beschikbaar is. Zodra Microsoft Entra-aanmelding opnieuw werkt, schakelt u lokale accounts uit om het cluster terug te zetten naar de beveiligde basislijn.

    az aks update --resource-group $RESOURCE_GROUP --name $CLUSTER_NAME --disable-local-accounts
    

Volgende stappen