Správa místních účtů pomocí integrace Microsoft Entra spravovaného službou AKS

Když nasadíte cluster AKS, místní účty se ve výchozím nastavení povolí. I když povolíte integraci RBAC nebo Microsoft Entra, --admin přístup stále existuje jako možnost ne auditovatelného backdooru. V tomto článku se dozvíte, jak zakázat místní účty v existujícím clusteru, vytvořit nový cluster se zakázanými místními účty a znovu povolit místní účty v existujících clusterech.

Než začnete

Zakázání místních účtů

Místní účty můžete zakázat pomocí parametru disable-local-accounts. Pole properties.disableLocalAccounts bylo přidáno do rozhraní API spravovaného clusteru, aby bylo možné určit, jestli je tato funkce v clusteru povolená nebo ne.

Poznámka:

  • V clusterech s povolenou integrací Microsoft Entra můžou uživatelé přiřazení skupině správců Microsoft Entra určenou aad-admin-group-object-ids pomocí přihlašovacích údajů bez oprávnění správce získat přístup. V clusterech bez povolené integrace Microsoft Entra a properties.disableLocalAccounts nastavené na true, všechny pokusy o ověření pomocí přihlašovacích údajů uživatele nebo správce selžou.

  • Po zakázání místních uživatelských účtů v existujícím clusteru AKS, kde se uživatelé mohli ověřit pomocí místních účtů, musí správce otočit certifikáty clusteru, aby mohl odvolat certifikáty, ke kterým měli přístup. Pokud se jedná o nový cluster, nevyžaduje se žádná akce.

Vytvoření nového clusteru bez místních účtů

  1. Vytvořte nový cluster AKS bez místních účtů pomocí az aks create příkazu s příznakem disable-local-accounts .

    az aks create \
        --resource-group <resource-group> \
        --name <cluster-name> \
        --enable-aad \
        --aad-admin-group-object-ids <aad-group-id> \
        --disable-local-accounts \
        --generate-ssh-keys
    
  2. Ve výstupu ověřte, že jsou místní účty zakázané. Zkontrolujte, jestli je pole properties.disableLocalAccounts nastavené na true.

    "properties": {
        ...
        "disableLocalAccounts": true,
        ...
    }
    
  3. Spuštěním az aks get-credentials příkazu se ujistěte, že je cluster nastavený tak, aby zakázal místní účty.

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

    Ve výstupu by se měla zobrazit následující chybová zpráva označující, že funkce brání přístupu:

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

Zakázání místních účtů v existujícím clusteru

  1. Pomocí příkazu s az aks update disable-local-accounts parametrem zakažte místní účty v existujícím clusteru AKS s podporou integrace Microsoft Entra.

    az aks update --resource-group <resource-group> --name <cluster-name> --disable-local-accounts
    
  2. Ve výstupu ověřte, že jsou místní účty zakázané. Zkontrolujte, jestli je pole properties.disableLocalAccounts nastavené na true.

    "properties": {
        ...
        "disableLocalAccounts": true,
        ...
    }
    
  3. Spuštěním az aks get-credentials příkazu se ujistěte, že je cluster nastavený tak, aby zakázal místní účty.

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

    Ve výstupu by se měla zobrazit následující chybová zpráva označující, že funkce brání přístupu:

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

Opětovné povolení místních účtů v existujícím clusteru

  1. Znovu povolte zakázaný místní účet v existujícím clusteru pomocí az aks update příkazu s parametrem enable-local-accounts .

    az aks update --resource-group <resource-group> --name <cluster-name> --enable-local-accounts
    
  2. Ve výstupu zkontrolujte, jestli jsou místní účty znovu povolené. Zkontrolujte, jestli je pole properties.disableLocalAccounts nastavené na false.

    "properties": {
        ...
        "disableLocalAccounts": false,
        ...
    }
    
  3. Spuštěním az aks get-credentials příkazu se ujistěte, že je cluster nastavený tak, aby povolil místní účty.

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

    Výstup by měl zobrazit následující zprávu, že jste v clusteru úspěšně povolili místní účty:

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

Další kroky