Zarządzanie kontami lokalnymi przy użyciu integracji usługi Microsoft Entra zarządzanej przez usługę AKS

Podczas wdrażania klastra usługi AKS konta lokalne są domyślnie włączone. Nawet jeśli włączysz integrację RBAC lub Microsoft Entra, dostęp nadal istnieje jako opcja backdoor bez --admin inspekcji. W tym artykule pokazano, jak wyłączyć konta lokalne w istniejącym klastrze, utworzyć nowy klaster z wyłączonymi kontami lokalnymi i ponownie włączyć konta lokalne w istniejących klastrach.

Zanim rozpoczniesz

  • Aby zapoznać się z omówieniem i instrukcjami konfiguracji, zobacz Integracja z usługą Microsoft Entra zarządzana przez usługę AKS.

Wyłączanie kont lokalnych

Konta lokalne można wyłączyć przy użyciu parametru disable-local-accounts. Pole properties.disableLocalAccounts zostało dodane do interfejsu API klastra zarządzanego, aby wskazać, czy funkcja jest włączona, czy nie w klastrze.

Uwaga

  • W klastrach z włączoną integracją firmy Microsoft Entra użytkownicy przypisani do grupy administratorów firmy Microsoft Entra określonej przez aad-admin-group-object-ids program mogą nadal uzyskiwać dostęp przy użyciu poświadczeń innych niż administrator. W klastrach bez włączonej integracji z firmą Microsoft Entra i properties.disableLocalAccounts ustawić na truewartość , próba uwierzytelnienia przy użyciu poświadczeń użytkownika lub administratora zakończy się niepowodzeniem.

  • Po wyłączeniu kont użytkowników lokalnych w istniejącym klastrze usługi AKS, w którym użytkownicy mogli uwierzytelniać się przy użyciu kont lokalnych, administrator musi wymienić certyfikaty klastra, aby odwołać certyfikaty , do których mógł mieć dostęp. Jeśli jest to nowy klaster, nie jest wymagana żadna akcja.

Tworzenie nowego klastra bez kont lokalnych

  1. Utwórz nowy klaster usługi AKS bez kont lokalnych przy użyciu az aks create polecenia z flagą disable-local-accounts .

    az aks create -g <resource-group> -n <cluster-name> --enable-aad --aad-admin-group-object-ids <aad-group-id> --disable-local-accounts
    
  2. W danych wyjściowych potwierdź, że konta lokalne są wyłączone, sprawdzając, czy pole properties.disableLocalAccounts ma wartość true.

    "properties": {
        ...
        "disableLocalAccounts": true,
        ...
    }
    
  3. Uruchom polecenie , az aks get-credentials aby upewnić się, że klaster został ustawiony, aby wyłączyć konta lokalne.

    az aks get-credentials --resource-group <resource-group> --name <cluster-name> --admin
    

    Dane wyjściowe powinny wyświetlić następujący komunikat o błędzie wskazujący, że funkcja uniemożliwia dostęp:

    Operation failed with status: 'Bad Request'. Details: Getting static credential isn't allowed because this cluster is set to disable local accounts.
    

Wyłączanie kont lokalnych w istniejącym klastrze

  1. Wyłącz konta lokalne w istniejącym klastrze usługi AKS z włączoną integracją firmy Microsoft przy użyciu az aks update polecenia z parametrem disable-local-accounts .

    az aks update -g <resource-group> -n <cluster-name> --disable-local-accounts
    
  2. W danych wyjściowych potwierdź, że konta lokalne są wyłączone, sprawdzając, czy pole properties.disableLocalAccounts ma wartość true.

    "properties": {
        ...
        "disableLocalAccounts": true,
        ...
    }
    
  3. Uruchom polecenie , az aks get-credentials aby upewnić się, że klaster został ustawiony, aby wyłączyć konta lokalne.

    az aks get-credentials --resource-group <resource-group> --name <cluster-name> --admin
    

    Dane wyjściowe powinny wyświetlić następujący komunikat o błędzie wskazujący, że funkcja uniemożliwia dostęp:

    Operation failed with status: 'Bad Request'. Details: Getting static credential isn't allowed because this cluster is set to disable local accounts.
    

Ponowne włączanie kont lokalnych w istniejącym klastrze

  1. Ponownie włącz wyłączone konto lokalne w istniejącym klastrze przy użyciu az aks update polecenia z parametrem enable-local-accounts .

    az aks update -g <resource-group> -n <cluster-name> --enable-local-accounts
    
  2. W danych wyjściowych potwierdź, że konta lokalne są ponownie włączone, sprawdzając, czy pole properties.disableLocalAccounts jest ustawione na false.

    "properties": {
        ...
        "disableLocalAccounts": false,
        ...
    }
    
  3. Uruchom polecenie , az aks get-credentials aby upewnić się, że klaster jest ustawiony w celu włączenia kont lokalnych.

    az aks get-credentials --resource-group <resource-group> --name <cluster-name> --admin
    

    Dane wyjściowe powinny wyświetlić następujący komunikat informujący o pomyślnym włączeniu kont lokalnych w klastrze:

    Merged "<cluster-name>-admin" as current context in C:\Users\<username>\.kube\config
    

Następne kroki