Aktivace ověřování Microsoft Entra ID pro řídicí plochu AKS

Integrace Microsoft Entra zjednodušuje proces umožnění ověřování pomocí Entra pro AKS. 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. Poskytovatel prostředků Azure Kubernetes Service (AKS) teď spravuje klientské a serverové aplikace za vás.

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ářů.

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

Omezení

Integraci Microsoft Entra není možné zakázat po povolení v clusteru.

Než začnete

Pokud chcete nainstalovat doplněk AKS, ověřte, že máte následující položky:

  • Máte nainstalované a nakonfigurované Azure CLI verze 2.29.0 nebo novější. Verzi najdete spuštěním az --version příkazu. Pokud potřebujete instalovat nebo upgradovat, podívejte se na Install Azure CLI.
  • Potřebujete kubectl minimálně verzi 1.18.1 nebo kubelogin. S modulem Azure CLI a Azure PowerShell se kubectl a kubelogin zahrnou a automaticky spravují. To znamená, že se ve výchozím nastavení upgradují a spouštění az aks install-cli není 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.
  • 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.

Povolení integrace v clusteru AKS

Nejprve nastavte proměnné prostředí pro skupinu prostředků, název clusteru, ID objektů skupiny správců Microsoft Entra a ID tenanta. Znovu použijte tyto proměnné v následujících příkazech.

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"

Vytvoření nového clusteru

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

    az group create --name $RESOURCE_GROUP --location $LOCATION
    
  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 \
      --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
    

    Úspěšné vytvoření clusteru Microsoft Entra ID obsahuje následující část v textu odpovědi.

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

Použití existujícího clusteru

Povolte integraci Microsoft Entra v existují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 \
  --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

Úspěšná aktivace clusteru Microsoft Entra ID obsahuje v textu odpovědi následující část:

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

Migrace starého clusteru do integračního prostředí

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

Warning

Clustery úrovně Free můžou během upgradu zaznamenat výpadky serveru API. Doporučujeme upgradovat během mimopracovní doby. Po upgradu se kubeconfig obsah 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 kubeconfig souboru.

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

Úspěšná migrace clusteru Microsoft Entra ID obsahuje následující část v textu odpovědi:

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

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 $RESOURCE_GROUP --name $CLUSTER_NAME
    
  2. Postupujte podle pokynů pro přihlášení.

  3. Pomocí příkazu zobrazte uzly v clusteru kubectl get nodes .

    kubectl get nodes
    

Clustery s Kubernetes 1.24 nebo novější automaticky používají formát exec plugin, takže pro interaktivní přihlášení k Azure CLI není potřeba žádný ruční převod. Neinteraktivní scénáře, jako jsou kanály CI nebo použití jiné metody ověřování (instanční objekt, spravovaná identita, identita úloh nebo kód zařízení), najdete v tématu Použití kubeloginu k ověřování uživatelů v AKS.

Přístup ke sklárce

V ojedinělých případech, kdy přihlášení pomocí Microsoft Entra ID ke Kubernetes API serveru vašeho clusteru nefunguje – například během širšího incidentu služby Microsoft Entra – můžete se vrátit k účtu místního správce clusteru, abyste udrželi cluster v provozu, dokud nebude obnoveno přihlášení pomocí Entra.

Note

Tato náhradní funkce je nutná pouze v případě, že není k dispozici samotné přihlašování založené na entra. Pokud je váš problém chybně nakonfigurovanou skupinou pro správu (například skupina byla odstraněna nebo byla nastavena nesprávná ID objektu), nepotřebujete ji – aktualizujte skupinu správců přímo pomocí az aks update --aad-admin-group-object-ids účtu, který má Microsoft.ContainerService/managedClusters/write oprávnění.

Important

Tento pracovní postup obchází ověřování Microsoft Entra. Používejte ho jenom jako dočasnou náhradní aplikaci a znovu zakažte místní účty, jakmile se obnoví přihlášení Microsoft Entra.

Pokud chcete použít nouzovou cestu, potřebujete roli Přispěvatel služby Azure Kubernetes Service pro prostředek clusteru. Tato role uděluje Microsoft.ContainerService/managedClusters/write oprávnění vyžadovaná k opětovnému povolení místních účtů a přístup k přihlašovacím údajům místního správce clusteru. Vyhodnocuje ho Azure Resource Manager, takže funguje nezávisle na přihlašovací cestě Microsoft Entra k serveru rozhraní API Kubernetes.

  1. Pokud jsou místní účty v clusteru zakázané, dočasně je znovu povolte.

    az aks update --resource-group $RESOURCE_GROUP --name $CLUSTER_NAME --enable-local-accounts
    
  2. Pomocí příkazu s příznakem az aks get-credentials načtěte přihlašovací údaje místního správce clusteru --admin . Toto pověření je kubeconfig certifikátového typu, který obchází Microsoft Entra.

    az aks get-credentials --resource-group $RESOURCE_GROUP --name $CLUSTER_NAME --admin
    
  3. Slouží kubectl k provozování clusteru, zatímco Microsoft Entra není k dispozici. Poté, co bude opět funkční přihlašování do Microsoft Entra, zakažte místní účty, aby se cluster vrátil na svou zabezpečenou základní konfiguraci.

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

Další kroky