説明
--profiling は kube-apiserver や kube-controller-manager などの性能プロファイリングを制御します。診断には有用ですが、不要な有効化と過剰なアクセス権限が重なると、運用情報が露出する場合があります。省略の有無だけで判断せず、実行バージョンのデフォルト値と実際の設定を確認する必要があります。
想定される影響
- 診断用エンドポイントにアクセスできる主体が、内部の実行情報を取得する場合があります。
- 不要な診断機能により、運用で管理するアクセス経路が増える場合があります。
対処方法
- 性能分析が不要なら、kube-apiserver と kube-controller-manager に --profiling=false を設定してください。KubeSchedulerConfiguration を使う場合は、そのバージョンの enableProfiling: false を適用してください。
- 必要な診断機能には認証・認可とネットワーク制限を適用してください。一時的に有効にした場合は、分析後に元の設定へ戻し、実際の設定を確認してください。
例
v1.30.0 のプロファイリング引数だけを比較する既存の抜粋です。API サーバーの認証・ストレージ・ネットワークなどの他の設定は省略しています。
変更前
yaml
apiVersion: v1
kind: Pod
metadata:
name: kube-apiserver
spec:
containers:
- name: kube-apiserver
image: registry.k8s.io/kube-apiserver:v1.30.0
command:
- kube-apiserver
args:
- --profiling=true
プロファイリングを有効にします。実際の公開範囲は診断用エンドポイントのアクセス制御によります。
変更後
yaml
apiVersion: v1
kind: Pod
metadata:
name: kube-apiserver
spec:
containers:
- name: kube-apiserver
image: registry.k8s.io/kube-apiserver:v1.30.0
command:
- kube-apiserver
args:
- --profiling=false
プロファイリングを無効にします。他の API サーバーへのアクセス保護を代替するものではありません。