Povolení ověřování spravovaných identit Azure pro clustery Kubernetes pomocí kubeloginu

Integrace Microsoft Entra spravovaná službou AKS zjednodušuje proces integrace Microsoft Entra. Dříve jste museli vytvořit klientskou a serverovou aplikaci a tenant Microsoft Entra musel přiřadit oprávnění role Čtenáři adresáře. Teď za vás poskytovatel prostředků AKS spravuje klientské a serverové aplikace.

Správci clusteru můžou nakonfigurovat řízení přístupu na základě role Kubernetes (Kubernetes RBAC) na základě identity uživatele nebo členství ve skupině adresářů. Ověřování Microsoft Entra se poskytuje clusterům AKS s openID Připojení. OpenID Připojení je vrstva identit založená na protokolu OAuth 2.0. Další informace o Připojení OpenID najdete v dokumentaci k Připojení OpenID.

Další informace o toku integrace Microsoft Entra najdete v dokumentaci k Microsoft Entra.

Tento článek obsahuje podrobnosti o povolení a používání spravovaných identit pro prostředky Azure s clusterem AKS.

Omezení

Následuje omezení integrace ověřování spravovaných identit Azure v AKS.

  • Po přidání není možné integraci zakázat.
  • Downgrady z integrovaného clusteru na starší clustery Microsoft Entra ID se nepodporují.
  • Clustery bez podpory RBAC Kubernetes nemůžou přidat integraci.

Než začnete

Aby bylo možné správně nainstalovat doplněk AKS pro spravovanou identitu, je potřeba splnit následující požadavky.

  • Máte nainstalované a nakonfigurované Azure CLI verze 2.29.0 nebo novější. Verzi zjistíte spuštěním příkazu az --version. Pokud potřebujete instalaci nebo upgrade, přečtěte si téma Instalace Azure CLI.
  • Potřebujete kubectl minimálně verzi 1.18.1 nebo kubelogin. Pomocí Azure CLI a modulu Azure PowerShellu se tyto dva příkazy zahrnou a automaticky spravují. To znamená, že se upgradují ve výchozím nastavení a nejsou az aks install-cli povinné ani doporučené. Pokud používáte automatizovaný kanál, musíte spravovat upgrady pro správnou nebo nejnovější verzi. Rozdíl mezi podverzemi Kubernetes a kubectl neměl by být více než jedna verze. V opačném případě dochází k problémům s ověřováním v nesprávné verzi.
  • Pokud používáte helm, potřebujete minimální verzi helmu 3.3.
  • Tato konfigurace vyžaduje, abyste pro cluster měli skupinu Microsoft Entra. Tato skupina je v clusteru zaregistrovaná jako skupina pro správu, aby udělila oprávnění správce. Pokud nemáte existující skupinu Microsoft Entra, můžete ji vytvořit pomocí az ad group create příkazu.

Poznámka:

Integrované clustery Microsoft Entra používající novější verzi Kubernetes než verze 1.24 automaticky používají kubelogin formát. Počínaje Kubernetes verze 1.24 je execvýchozí formát přihlašovacích údajů clusterUser pro clustery Microsoft Entra ID , který vyžaduje kubelogin binární soubor v cestě PATH spuštění. U clusterů Microsoft Entra nebo clusterů Microsoft Entra s verzí starší než 1.24 nedošlo ke změně chování. Stávající stažené soubory kubeconfig nadále fungují. Volitelný formát parametru dotazu je zahrnutý při získávání přihlašovacích údajů clusterUser k přepsání výchozí změny chování. Pokud potřebujete zachovat starý kubeconfig formát, můžete explicitně zadat formát do Azure.

Povolení integrace v clusteru AKS

Vytvoření nového clusteru

  1. Pomocí příkazu vytvořte skupinu az group create prostředků Azure.

    az group create --name myResourceGroup --location centralus
    
  2. Vytvořte cluster AKS a pomocí příkazu povolte přístup pro správu pro vaši skupinu az aks create Microsoft Entra.

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

    Úspěšné vytvoření clusteru Microsoft Entra ID spravovaného službou AKS obsahuje následující část v textu odpovědi:

    "AADProfile": {
        "adminGroupObjectIds": [
        "5d24****-****-****-****-****afa27aed"
        ],
        "clientAppId": null,
        "managed": true,
        "serverAppId": null,
        "serverAppSecret": null,
        "tenantId": "72f9****-****-****-****-****d011db47"
    }
    

Použití existujícího clusteru

Povolte integraci Microsoft Entra spravovanou službou AKS ve stávajícím clusteru s podporou RBAC Kubernetes pomocí az aks update příkazu. Nezapomeňte nastavit skupinu správců, aby zachovala přístup ke clusteru.

az aks update -g MyResourceGroup -n myManagedCluster --enable-aad --aad-admin-group-object-ids <id-1>,<id-2> [--aad-tenant-id <id>]

Úspěšná aktivace clusteru Microsoft Entra ID spravovaného službou AKS obsahuje následující část v textu odpovědi:

"AADProfile": {
    "adminGroupObjectIds": [
        "5d24****-****-****-****-****afa27aed"
    ],
    "clientAppId": null,
    "managed": true,
    "serverAppId": null,
    "serverAppSecret": null,
    "tenantId": "72f9****-****-****-****-****d011db47"
    }

Migrace starší verze clusteru do integrace

Pokud váš cluster používá starší integraci Microsoft Entra, můžete pomocí příkazu upgradovat na integraci Microsoft Entra spravovanou službou az aks update AKS.

Upozorňující

Clustery úrovně Free můžou během upgradu zaznamenat výpadek serveru rozhraní API. Doporučujeme upgradovat během mimopracovní doby. Po upgradu se obsah kubeconfig změní. Je potřeba spustit, az aks get-credentials --resource-group <AKS resource group name> --name <AKS cluster name> aby se nové přihlašovací údaje sloučily do souboru kubeconfig.

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

Úspěšná migrace clusteru Microsoft Entra ID spravovaného službou AKS obsahuje v textu odpovědi následující část:

"AADProfile": {
    "adminGroupObjectIds": [
        "5d24****-****-****-****-****afa27aed"
    ],
    "clientAppId": null,
    "managed": true,
    "serverAppId": null,
    "serverAppSecret": null,
    "tenantId": "72f9****-****-****-****-****d011db47"
    }

Přístup k povolenému clusteru

  1. Pomocí příkazu získejte přihlašovací údaje uživatele pro přístup ke clusteru az aks get-credentials .

    az aks get-credentials --resource-group myResourceGroup --name myManagedCluster
    
  2. Podle pokynů se přihlaste.

  3. Nastavte kubelogin použití Azure CLI.

    kubelogin convert-kubeconfig -l azurecli
    
  4. Pomocí příkazu zobrazte uzly v clusteru kubectl get nodes .

    kubectl get nodes
    

Neinteraktivní přihlášení pomocí kubeloginu

Existují některé neinteraktivní scénáře, které nepodporují kubectl. V těchto případech se pomocí kubelogin připojení ke clusteru pomocí neinteraktivních přihlašovacích údajů instančního objektu pro provádění kanálů kontinuální integrace.

Poznámka:

Integrované clustery Microsoft Entra používající novější verzi Kubernetes než verze 1.24 automaticky používají kubelogin formát. Počínaje Kubernetes verze 1.24 je execvýchozí formát přihlašovacích údajů clusterUser pro clustery Microsoft Entra ID , který vyžaduje kubelogin binární soubor v cestě PATH spuštění. U clusterů Microsoft Entra nebo clusterů Microsoft Entra s verzí starší než 1.24 nedošlo ke změně chování. Stávající stažené soubory kubeconfig nadále fungují. Volitelný formát parametru dotazu je zahrnutý při získávání přihlašovacích údajů clusterUser k přepsání výchozí změny chování. Pokud potřebujete zachovat starý kubeconfig formát, můžete explicitně zadat formát do Azure.

  • Při získávání přihlašovacích údajů clusterUser můžete použít format parametr dotazu k přepsání výchozího chování. Hodnotu můžete nastavit tak, aby azure používala původní formát kubeconfig:

    az aks get-credentials --format azure
    
  • Pokud váš integrovaný cluster Microsoft Entra používá Kubernetes verze 1.24 nebo nižší, musíte ručně převést formát kubeconfig.

    export KUBECONFIG=/path/to/kubeconfig
    kubelogin convert-kubeconfig
    

Poznámka:

Pokud se zobrazí chybová zpráva : Modul plug-in Ověřování Azure byl odebrán., musíte spustit příkaz kubelogin convert-kubeconfig , který převede formát kubeconfig ručně.

Další informace najdete v tématu o známých problémech Azure Kubelogin.

Řešení potíží s přístupem

Důležité

Krok popsaný v této části navrhuje alternativní metodu ověřování v porovnání s normálním ověřováním skupiny Microsoft Entra. Tuto možnost použijte pouze v případě tísňového volání.

Pokud nemáte přístup správce k platné skupině Microsoft Entra, můžete postupovat podle tohoto alternativního řešení. Přihlaste se pomocí účtu, který je členem role clusteru Azure Kubernetes Service Správa a udělte přihlašovací údaje správce skupiny nebo tenanta pro přístup ke clusteru.

Další kroky

  • Přečtěte si o integraci Microsoft Entra s RBAC Kubernetes.
  • Přečtěte si další informace o konceptech identit AKS a Kubernetes.
  • Zjistěte, jak používat kubelogin pro všechny podporované metody ověřování Microsoft Entra v AKS.
  • Šablony Azure Resource Manageru (ARM) slouží k vytvoření clusterů s podporou AKS spravovaného Microsoft Entra ID.