分享方式:


使用 AKS 受控 Microsoft Entra 整合來管理本機帳戶

當您部署 AKS 叢集時,預設會啟用本機帳戶。 即使啟用 RBAC 或 Microsoft Entra 整合,--admin 存取權仍然存在,以作為不可稽核的後門選項。 本文顯示如何停用現有叢集上的本機帳戶、建立已停用本機帳戶的新叢集,以及重新啟用現有叢集上的本機帳戶。

開始之前

停用本機帳戶

您可以使用 disable-local-accounts 參數來停用本機帳戶。 properties.disableLocalAccounts 欄位已新增至受控叢集 API,以指出是否在叢集上啟用此功能。

注意

  • 在已啟用 Microsoft Entra 整合的叢集上,指派給 aad-admin-group-object-ids 所指定 Microsoft Entra 系統管理員群組的使用者仍然可以使用非系統管理員認證來取得存取權。 在未啟用 Microsoft Entra 整合且 properties.disableLocalAccounts 設定為 true 的叢集上,任何嘗試使用使用者或系統管理員認證進行驗證都將失敗。

  • 在使用者可能已使用本機帳戶進行驗證的現有 AKS 叢集上停用本機使用者帳戶之後,系統管理員必須輪替叢集憑證,才能撤銷其可能具有存取權的憑證。 如果這是新的叢集,則不需要採取任何動作。

建立沒有本機帳戶的新叢集

  1. 搭配使用 az aks create 命令與 disable-local-accounts 旗標,以建立沒有任何本機帳戶的新 AKS 叢集。

    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. 在輸出中,檢查 properties.disableLocalAccounts 欄位設定為 true,確認已停用本機帳戶。

    "properties": {
        ...
        "disableLocalAccounts": true,
        ...
    }
    
  3. 執行 az aks get-credentials 命令,以確保叢集設定為停用本機帳戶。

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

    您的輸出應該顯示下列錯誤訊息,指出此功能無法存取:

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

停用現有叢集上的本機帳戶

  1. 搭配使用 az aks update 命令與 disable-local-accounts 參數,以停用現有 Microsoft Entra 整合已啟用 AKS 叢集上的本機帳戶。

    az aks update --resource-group <resource-group> --name <cluster-name> --disable-local-accounts
    
  2. 在輸出中,檢查 properties.disableLocalAccounts 欄位設定為 true,確認已停用本機帳戶。

    "properties": {
        ...
        "disableLocalAccounts": true,
        ...
    }
    
  3. 執行 az aks get-credentials 命令,以確保叢集設定為停用本機帳戶。

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

    您的輸出應該顯示下列錯誤訊息,指出此功能無法存取:

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

在現有叢集上重新啟用本機帳戶

  1. 搭配使用 az aks update 命令與 enable-local-accounts 參數,以在現有叢集上重新啟用已停用的本機帳戶。

    az aks update --resource-group <resource-group> --name <cluster-name> --enable-local-accounts
    
  2. 在輸出中,檢查 properties.disableLocalAccounts 欄位設定為 false,確認已重新啟用本機帳戶。

    "properties": {
        ...
        "disableLocalAccounts": false,
        ...
    }
    
  3. 執行 az aks get-credentials 命令,以確保叢集設定為啟用本機帳戶。

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

    您的輸出應該會顯示下列訊息,指出您已成功在叢集上啟用本機帳戶:

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

下一步