AKS マネージド Microsoft Entra 統合を使用してローカル アカウントを管理する
AKS クラスターをデプロイすると、既定でローカル アカウントが有効になります。 RBAC または Microsoft Entra 統合を有効にしている場合でも、監査できないバックドア オプションとして --admin
アクセスがまだ存在します。 この記事では、既存のクラスターでローカル アカウントを無効にし、ローカル アカウントを無効にして新しいクラスターを作成し、既存のクラスターでローカル アカウントを再度有効にする方法について説明します。
開始する前に
- 概要とセットアップ手順については、AKS マネージド Microsoft Entra の統合に関するページを参照してください。
ローカル アカウントを無効にする
パラメーター disable-local-accounts
を使用してローカル アカウントを無効にできます。 この機能がクラスターで有効になっているかどうかを示すために、マネージド クラスター API に properties.disableLocalAccounts
フィールドが追加されています。
Note
Microsoft Entra 統合が有効になっているクラスターでは、
aad-admin-group-object-ids
で指定された Microsoft Entra 管理者グループに割り当てられたユーザーは、管理者以外の資格情報を使用して引き続きアクセスできます。 Microsoft Entra 統合が有効になっておらず、properties.disableLocalAccounts
がtrue
に設定されているクラスターでは、ユーザーまたは管理者の資格情報で認証しようとしても失敗します。ユーザーがローカル アカウントで認証していた可能性がある既存の AKS クラスターでローカル ユーザー アカウントを無効にした後は、管理者はクラスター証明書のローテーションを行って、彼らがアクセス権を持っている可能性のある証明書を失効させる必要があります。 これが新しいクラスターである場合は、何もする必要はありません。
ローカル アカウントを使用せずに新しいクラスターを作成する
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
出力で、
properties.disableLocalAccounts
フィールドがtrue
に設定されていることをチェックして、ローカル アカウントが無効になっていることを確認します。"properties": { ... "disableLocalAccounts": true, ... }
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.
既存のクラスターでローカル アカウントを無効にする
az aks update
コマンドとdisable-local-accounts
パラメーターを使用して、Microsoft Entra 統合が有効な既存の AKS クラスターでローカル アカウントを無効にします。az aks update --resource-group <resource-group> --name <cluster-name> --disable-local-accounts
出力で、
properties.disableLocalAccounts
フィールドがtrue
に設定されていることをチェックして、ローカル アカウントが無効になっていることを確認します。"properties": { ... "disableLocalAccounts": true, ... }
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.
既存のクラスターでローカル アカウントを再度有効にする
az aks update
コマンドとenable-local-accounts
パラメーターを使用して、既存のクラスターの無効なローカル アカウントを再度有効にします。az aks update --resource-group <resource-group> --name <cluster-name> --enable-local-accounts
出力で、
properties.disableLocalAccounts
フィールドがfalse
に設定されていることをチェックして、ローカル アカウントが再度有効になっていることを確認します。"properties": { ... "disableLocalAccounts": false, ... }
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
次のステップ
- Kubernetes 承認用の Azure RBAC 統合について学習する。
Azure Kubernetes Service