ビュー:
プロファイル適用性: レベル1
defaultサービスアカウントは使用しないでください。これにより、アプリケーションに付与された権限をより簡単に監査および確認できます。
Kubernetesは、特定のサービスアカウントがポッドに割り当てられていない場合にクラスターのワークロードで使用されるdefaultサービスアカウントを提供します。
ポッドからKubernetes APIへのアクセスが必要な場合、そのポッド専用のサービスアカウントを作成し、そのサービスアカウントに権限を付与する必要があります。
デフォルトのサービスアカウントは、サービスアカウントトークンを提供せず、明示的な権限の割り当てがないように構成する必要があります。
注意
注意
デフォルトでは、defaultサービスアカウントは、そのサービスアカウントトークンがそのネームスペース内のポッドにマウントされることを許可します。

影響

KubernetesAPIへのアクセスを必要とするすべてのワークロードには、明示的なサービスアカウントの作成が必要です。

監査

クラスター内の各ネームスペースについて、デフォルトのサービスアカウントに割り当てられた権限を確認し、デフォルト以外のロールやクラスターロールがバインドされていないことを確認してください。
さらに、各デフォルトサービスアカウントに対してautomountServiceAccountToken: false設定が適用されていることを確認してください。

修復

Kubernetesのワークロードが特定のKubernetesAPIサーバへのアクセスを必要とする場合は、明示的なサービスアカウントを作成してください。
各デフォルトサービスアカウントの設定を変更して、この値を含めてください。
automountServiceAccountToken: false
デフォルトアカウントの自動修復:
kubectl patch serviceaccount default -p
$'automountServiceAccountToken: false'