プロファイルの適用範囲:レベル1 - ワーカーノード
Kubeletサーバーへの匿名認証を無効にすることで、すべてのリクエストに認証が必要となり、不正アクセスのリスクを軽減し、Kubernetesワーカーノードのセキュリティを向上させることができます。
影響
匿名のリクエストは拒否されます。
監査
監査方法1:
重要Kubeletは、設定ファイルまたはコマンドライン引数を使用して構成できます。コマンドライン引数は、設定ファイルで設定された同じパラメーターに優先します。Kubeletの構成を監査する場合は、コマンドライン引数と設定ファイルのエントリーの両方を確認してください。
|
-
各ノードにSSH接続し、以下のコマンドを実行してアクティブなKubeletプロセスの詳細、コマンドライン引数を表示してください
ps -ef | grep kubelet
-
--config引数で指定された出力から設定ファイルの場所を特定します。以下を使用してファイルを表示します:
sudo less /path/to/kubelet-config.json
-
匿名認証が無効になっていることを確認してください
-
コマンドライン引数を確認してください
--anonymous-auth=false
-
Kubelet設定ファイルで、次の設定が存在することを確認してください:
{ "authentication": { "anonymous": { "enabled": false } } }
-
監査方法2:
kubectlを使用して、Kubernetes APIの"/configz"エンドポイントを介してKubeletの実行構成を確認してください
-
クラスター内のすべてのノードを検出します:
kubectl get nodes
-
ローカルポート(例:8080)でkubectlを使用してプロキシを開始します
kubectl proxy --port=8080
-
別のターミナルで、各ノードに対して以下のコマンドを実行してください
export NODE_NAME=my-node-name curl http://localhost:8080/api/v1/nodes/${NODE_NAME}/proxy/configz
-
API 対応において、匿名認証が無効になっていることを確認するには、以下をチェックしてください
{ "authentication": { "anonymous": { "enabled": false } } }
修復
方法1:
-
各ノードにSSH接続してください。
-
Kubelet 設定ファイルを使用する場合は、ファイルを検索してください
ps -ef | grep kubelet
-
設定ファイルを表示するには、次を使用してください:
sudo less /path/to/kubelet-config.json
-
構成ファイル内の以下のパラメータを設定することで、匿名認証を無効にできます
{ "authentication": { "anonymous": { "enabled": false } } }
-
kubeletサービスを再起動し、そのステータスを確認してください(systemdを使用するシステムの例):
systemctl daemon-reload systemctl restart kubelet.service systemctl status kubelet -l
メソッド2:
-
コマンドライン引数を使用する場合は、kubeletサービスファイルを編集して以下を含めてください:
--anonymous-auth=false
-
systemdを使用するシステムの場合、/ etc/systemd/system/kubelet .service.d / 10-kubelet-args.confにあるファイルを編集してください。
-
kubeletサービスを再起動し、そのステータスを確認してください(systemdを使用するシステムの例):
systemctl daemon-reload systemctl restart kubelet.service systemctl status kubelet -l