プロファイル適用性: レベル1 - マスターノード
各コントローラーに対して個別のサービスアカウント認証情報を使用してください。
コントローラーマネージャは、
kube-system名前空間内の各コントローラーに対してサービスアカウントを作成し、そのための認証情報を生成し、各コントローラーループが使用する専用のAPIクライアントをそのサービスアカウント認証情報で構築します。--use-service-account-credentialsをtrueに設定すると、コントローラーマネージャ内の各コントロールループが別々のサービスアカウント認証情報を使用して実行されます。RBACと組み合わせて使用することで、コントロールループがその目的のタスクを実行するために必要な最小限の権限で実行されることを保証します。
注意デフォルトでは、
--use-service-account-credentialsはfalseに設定されています。 |
影響
クラスターに設定されているいかなる認可者であっても、サービスアカウントが意図したタスクを実行するために十分な権限を付与する必要があります。RBAC認可者を使用する場合、これらのロールは
kube-systemネームスペース内の適切なサービスアカウントに自動的に作成され、デフォルトのロールとロールバインディングが起動時に自動調整されます。他の認証方法 (ABAC、Webhookなど) を使用する場合、クラスタデプロイヤーはサービスアカウントに適切な権限を付与する責任があります (必要な権限は、RBACロールの
controller-roles.yamlファイルとcontroller-role-bindings.yamlファイルを確認することで確認できます)。監査
Control Planeノードで次のコマンドを実行します。
ps -ef | grep kube-controller-manager
--use-service-account-credentials 引数が true に設定されていることを確認してください。修復
コントロールプレーンノード上のコントローラーマネージャーポッド仕様ファイル
/etc/kubernetes/manifests/kube-controller-manager.yamlを編集して、以下のパラメータを設定してください。--use-service-account-credentials=true
