AKS マネージド Microsoft Entra 統合を使用してローカル アカウントを管理する

AKS クラスターをデプロイすると、既定でローカル アカウントが有効になります。 RBAC または Microsoft Entra 統合を有効にしている場合でも、監査できないバックドア オプションとして --admin アクセスがまだ存在します。 この記事では、既存のクラスターでローカル アカウントを無効にし、ローカル アカウントを無効にして新しいクラスターを作成し、既存のクラスターでローカル アカウントを再度有効にする方法について説明します。

開始する前に

ローカル アカウントを無効にする

パラメーター disable-local-accounts を使用してローカル アカウントを無効にできます。 この機能がクラスターで有効になっているかどうかを示すために、マネージド クラスター API に properties.disableLocalAccounts フィールドが追加されています。

Note

  • Microsoft Entra 統合が有効になっているクラスターでは、aad-admin-group-object-ids で指定された Microsoft Entra 管理者グループに割り当てられたユーザーは、管理者以外の資格情報を使用して引き続きアクセスできます。 Microsoft Entra 統合が有効になっておらず、properties.disableLocalAccountstrue に設定されているクラスターでは、ユーザーまたは管理者の資格情報で認証しようとしても失敗します。

  • ユーザーがローカル アカウントで認証していた可能性がある既存の AKS クラスターでローカル ユーザー アカウントを無効にした後は、管理者はクラスター証明書のローテーションを行って、彼らがアクセス権を持っている可能性のある証明書を失効させる必要があります。 これが新しいクラスターである場合は、何もする必要はありません。

ローカル アカウントを使用せずに新しいクラスターを作成する

  1. az aks create コマンドと disable-local-accounts フラグを使用して、ローカル アカウントを使用せずに新しい AKS クラスターを作成します。

    az aks create -g <resource-group> -n <cluster-name> --enable-aad --aad-admin-group-object-ids <aad-group-id> --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 コマンドと disable-local-accounts パラメーターを使用して、Microsoft Entra 統合が有効な既存の AKS クラスターでローカル アカウントを無効にします。

    az aks update -g <resource-group> -n <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 -g <resource-group> -n <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
    

次のステップ