プロファイル適用性: レベル1
デフォルトのサービスアカウントは使用しないでください。これにより、アプリケーションに付与された権限をより簡単に監査およびレビューすることができます。
Kubernetesは、特定のサービスアカウントがポッドに割り当てられていない場合にクラスターのワークロードで使用されるデフォルトのサービスアカウントを提供します。ポッドからKubernetes
APIへのアクセスが必要な場合、そのポッド用に特定のサービスアカウントを作成し、そのサービスアカウントに権限を付与する必要があります。
デフォルトのサービスアカウントは、サービスアカウントトークンを提供せず、明示的な権限の割り当てがないように構成する必要があります。
注意デフォルトでは、デフォルトのサービスアカウントは、そのサービスアカウントトークンがその名前空間内のポッドにマウントされることを許可します。
|
影響
KubernetesAPIへのアクセスを必要とするすべてのワークロードには、明示的なサービスアカウントを作成する必要があります。
監査
クラスター内の各ネームスペースについて、デフォルトのサービスアカウントに割り当てられた権限を確認し、デフォルト以外のロールやクラスターロールがバインドされていないことを確認してください。
さらに、各デフォルトサービスアカウントに対して
automountServiceAccountToken: false設定が適用されていることを確認してください。kubectl get serviceaccounts/default -o yaml
サンプル出力:
apiVersion: v1 automountServiceAccountToken: false kind: ServiceAccount metadata: creationTimestamp: "2025-10-18T16:11:09Z" name: default namespace: default ...
修復
Kubernetesのワークロードが特定のKubernetes APIサーバへのアクセスを必要とする場合は、明示的なサービスアカウントを作成してください。各デフォルトのサービスアカウントの設定を変更してこの値を含めてください。
automountServiceAccountToken: false
