説明
--basic-auth-file は、ローカルファイルのユーザー名とパスワードで認証する kube-apiserver の旧オプションです。長期間使用するパスワードとファイル権限の管理が必要で、漏えいした認証情報を API アクセスに悪用されるおそれがあります。この認証方式は Kubernetes 1.19 で削除されました。
想定される影響
- パスワードファイルやクライアントの認証情報が漏えいすると、該当ユーザーの権限で API にアクセスされる可能性があります。
- 古い認証構成は、認証情報の無効化・更新や、サポートされる Kubernetes への移行を難しくする場合があります。
対処方法
- OIDC などサポートされる認証方式と必要なユーザー権限を先に設定し、実際のログインを確認してください。
- 既存クライアントを移行してから
--basic-auth-fileを削除し、不要になったパスワードとファイルを安全に廃止してください。 - サポートされる Kubernetes へ移行し、TLS、最小権限の認可、監査記録も確認してください。
例
Kubernetes 1.6 の過去の起動オプションを説明する抜粋であり、現在のデプロイ用の例ではありません。証明書、代替認証、残りの制御プレーン設定は別途必要です。
変更前
yaml
apiVersion: v1
kind: Pod
metadata:
name: api-server
spec:
containers:
- name: kube-apiserver
image: gcr.io/google_containers/kube-apiserver-amd64:v1.6.0
command:
- "kube-apiserver"
- "--basic-auth-file=/path/to/auth.csv"
API サーバーが指定された静的パスワードファイルを使用します。ファイルと認証情報を漏えいから保護する必要があります。
変更後
yaml
apiVersion: v1
kind: Pod
metadata:
name: api-server
spec:
containers:
- name: kube-apiserver
image: gcr.io/google_containers/kube-apiserver-amd64:v1.6.0
command:
- "kube-apiserver"
基本認証ファイルの使用を停止します。フラグの削除だけでは代替認証は設定されないため、既存クライアントを先に移行してください。